任何人都可以解释以下Tensorflow代码吗?函数如何识别输入并将其作为numpy数组?

时间:2019-05-22 06:26:39

标签: python numpy tensorflow

有人可以帮助我解释以下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)) })

1 个答案:

答案 0 :(得分:0)

您可以在损失函数中使用张量而不是np.array。尝试使用tf.constant代替label = np.ones((3,1))