我在Keras
后端使用tensorflow
功能。我试图理解我注意到的行为:
版本A输出:
[[ 1.]]
[[ 2.]]
[[ 3.]]
[[ 4.]]
但是, 版本B输出不同的结果,如线程(值可以不同):
Using TensorFlow backend.
[array([[ 0.]], dtype=float32)]
[array([[ 2.]], dtype=float32)]
[array([[ 3.]], dtype=float32)]
[array([[ 4.]], dtype=float32)]
K.eval
做了什么使这种情况有所不同?
感谢
def inc():
updates = []
counter = K.zeros((1,1))
ones = K.ones(K.get_variable_shape(counter))
updates.append(K.update_add(counter,ones))
return updates,counter
updates, output = inc()
f_inc = K.function([],[output],updates=updates)
for i in range(1,5):
f_inc([])
print(K.eval(output))
for i in range(1,5):
print(f_inc([]))