TensorFlow 2.0:使用GradientTape手动更新参数

时间:2019-03-23 05:16:21

标签: python tensorflow eager

我正在尝试使用TensorFlow 2.0中的GradientTape做一个简单的单层神经网络,并手动更新所有参数,但这似乎不起作用。

这里是训练循环的一次迭代:

W = tf.Variable(tf.random.normal([784,10], dtype = tf.float64, stddev=1))
b = tf.Variable(tf.random.normal([10], dtype = tf.float64))

X = x_train[0:mini_batch_size]
Y = y_train[0:mini_batch_size]

with tf.GradientTape() as tape:
    Y_pred = tf.sigmoid(tf.matmul(X,W)+b)
    loss = tf.reduce_mean(tf.reduce_sum((Y-Y_pred)**2, axis = 1))
dW, db = tape.gradient(loss, [W,b])

如果我打印出dW,则全为零。 手动更新W = W-1.0 * dW给出*的不受支持的操作数类型:“ float”和“ NoneType”错误。

0 个答案:

没有答案