||
一、
二、报错解决方法
1.错误TypeError: Cannot iterate over a scalar tensor.
源代码:
with tf.GradientTape( ) as tape:
w = tf.Variable(tf.constant(3.0))
loss = tf.pow(w,2) #loss=w2 ,loss’=2w
grad = tape.gradient(loss,w)
print(grad)
optimizer=tf.keras.optimizers.SGD(0.1)
optimizer.apply_gradients(zip(grad,[w]))
执行到代码“optimizer.apply_gradients(zip(grad,[w]))”出现如标题的错误。
原因分析:w只是一个标量,不是可迭代对象。
解决方案:grad = tape.gradient(loss,w)修改为grad = tape.gradient(loss,[w])。这样w就由标量转换为可迭代的数组。
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-9-27 06:38
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社