通过bool喂dict

时间:2017-01-05 16:42:16

标签: tensorflow

因此,这是在1-D输入向量上使用批量标准化的示例。批量标准化在100个训练样例xTr上执行。然后,我想稍后在xTe上说一个例子。

import tensorflow as tf
import numpy as np
from tensorflow.contrib.layers import layers

if __name__ == "__main__":
    bn = layers.batch_norm
    nFeats = 3 
    nObs = 100 
    xTr = np.random.rand(nObs,nFeats) # Train
    xTe = np.random.rand(1,nFeats) # Test
    bnTrain = tf.placeholder(tf.bool) 
    X = tf.placeholder(tf.float32,[None,nFeats])
    Y = bn(X,nFeats,is_training=bnTrain) # want to be able to change is_training via a feed_dict.
    init_op = tf.initialize_all_variables()
    with tf.Session() as sess:
        sess.run(init_op)
        yTr_ = Y.eval(feed_dict={X:xTr,bnTrain:True})
        yTe_ = Y.eval(feed_dict={X:xTe,bnTrain:False})

但我无法将tf.Tensor传递给期望普通python bool的函数。解决这个问题的最佳方法是什么,这样我就可以在会话期间改变布尔。

1 个答案:

答案 0 :(得分:2)

tf.contrib.layers.batch_norm()函数的当前实现旨在接受With ws2.Range("R3", "S" & LR3) .Value = .Value End With 作为tf.Tensor参数(虽然这个事实似乎没有记录),并查看修订版历史,它被添加到TensorFlow 0.10版本中。如果您使用的是旧版本,请尝试升级到最新版本(目前为0.12),现有代码应该可以使用。除了其他改进之外,它还包含批量规范化的融合实现,可以显着提高性能。