在 Tensorflow Estimator API ( tf.estimator
) 中,有没有办法使用当前会话model_fn
来评估张量并将值传递给 python?我想在 dropout 中有一个种子,取决于 的值global_step
,但由于前者要求int
后者是tensor
.
问问题
83 次
1 回答
1
我看不到任何方法可以访问session
内部model_fn
以获取global_step
.
即使有可能,在每一步更改种子tf.nn.dropout
也会在每一步使用不同的种子创建一个新的 Graph 操作,这将使图变得越来越大。即使没有tf.estimator
,我也不知道您如何实现这一点?
我认为您想要的是确保在两次运行之间获得相同的随机性。tf.set_random_seed()
在 dropout 中使用法线或仅使用法线设置图级随机种子seed
应该创建可重现的掩码序列。这是一个带有代码的示例:
x = tf.ones(10)
y = tf.nn.dropout(x, 0.5, seed=42)
sess1 = tf.Session()
y1 = sess1.run(y)
y2 = sess1.run(y)
sess2 = tf.Session()
y3 = sess2.run(y)
y4 = sess2.run(y)
assert (y1 == y3).all() # y1 and y3 are the same
assert (y2 == y4).all() # y2 and y4 are the same
此处的答案提供了有关如何使图形随机性可重现的更多详细信息。
于 2018-01-04T18:43:17.270 回答