有人可以帮助我解释以下TensorFlow代码吗?我定义了一个简单的函数test_loss,它将输入作为一个numpy数组;当我将此函数称为test_loss(out1)
时,输入为TensorFlow张量; python如何识别输入张量并将其作为numpy数组?我真的很困惑。
test1 = tf.placeholder(tf.float32,(1,4))
out1 = tf.layers.dense(inputs = test1, units = 3)
print(out1.shape)
def test_loss(a):
label = np.ones((3,1))
err = (a[0,0]-label[0,0])**2+(a[0,1]-label[1,0])**2+(a[0,2]-label[2,0])**2
return err
err = test_loss(out1)
print(err.shape)
# add an optimiser
optimiser = tf.train.AdamOptimizer(learning_rate= 0.0001).minimize(err)
init_op = tf.global_variables_initializer()
with tf.Session() as sess:
init_op.run()
for i in range(0,10):
err_,_ = sess.run([err, optimiser],feed_dict = {test1: np.ones((1,4)) })
答案 0 :(得分:0)
您可以在损失函数中使用张量而不是np.array。尝试使用tf.constant
代替label = np.ones((3,1))
。