如何在Kaggle kernel的后续cell中抵消global/operation level seed的影响?

问题描述 投票:0回答:0

上下文

我正在尝试编写一个涉及设置全局/操作级种子的主题的 Kaggle 内核。为此,我在不同的单元格中分别编写每个案例。但我遇到的问题是,我在之前的单元格中设置的种子会影响我后续单元格的输出。

例如,查看以下描述其中一个案例的片段:

"""
Case:
    Setup: When only operation level seed is set -
           - Since operation level seed is set, the sequence will start from same number after restarts, 
            and sequence will be same

"""

import tensorflow as tf

print(tf.random.uniform([1], seed=1))  # generates 'A1'
print(tf.random.uniform([1], seed=1))  # generates 'A2'
print(tf.random.uniform([1], seed=1))  # generates 'A3'
print(tf.random.uniform([1], seed=1))  # generates 'A4'

如果我重新运行上面的代码(作为单独的 python 文件的一部分),我会得到相同的序列(如预期的那样)。

但是当我在我的 Kaggle 内核的一个单独的单元格中重新运行相同的代码时,我得到了一个不同的序列。这可能是由于我必须在之前的单元格中设置的全局/操作级种子。

我尝试了什么?

为了消除先前单元格对当前单元格的影响,我使用了一些已经可用的技术来重启内核:

import IPython.display as display
import time

# Restart the cell
display.Javascript('Jupyter.notebook.kernel.restart()')

# Wait for the kernel to restart
time.sleep(20)

"""
Case:
    Setup: When only operation level seed is set -
           - Since operation level seed is set, the sequence will start from same number after restarts, 
            and sequence will be same

"""

import tensorflow as tf

print(tf.random.uniform([1], seed=1))  # generates 'A1'
print(tf.random.uniform([1], seed=1))  # generates 'A2'
print(tf.random.uniform([1], seed=1))  # generates 'A3'
print(tf.random.uniform([1], seed=1))  # generates 'A4'

或者这个:

from IPython.core.display import HTML
HTML("<script>Jupyter.notebook.kernel.restart()</script>")

"""
Case:
    Setup: When only operation level seed is set -
           - Since operation level seed is set, the sequence will start from same number after restarts, 
            and sequence will be same

"""

import tensorflow as tf

print(tf.random.uniform([1], seed=1))  # generates 'A1'
print(tf.random.uniform([1], seed=1))  # generates 'A2'
print(tf.random.uniform([1], seed=1))  # generates 'A3'
print(tf.random.uniform([1], seed=1))  # generates 'A4'

但我仍然没有得到相同的序列。

我的问题

我还应该尝试什么还是我在这里做错了什么?

random jupyter-notebook tensorflow2.0 kaggle random-seed
© www.soinside.com 2019 - 2024. All rights reserved.