找遍了都找不到解决方案,自己解决
问题起源:搭建了一个深度模型,其中需要用到一个系数矩阵作为参数,于是想到用tf.Variable,但是
op = keras.optimizers.Adam()
a = tf.Variable([[1.,2.,3.],
[1.,2.,4.],
[5.,5.,4.]])
with tf.GradientTape(persistent=True) as t:
loss1 = a**2
loss2 = 2*a
gr1 = t.gradient(loss1, a)
gr2 = t.gradient(loss2, a)
print(gr1,gr2)
op.apply_gradients(zip(gr1,a))
op.apply_gradients(zip(gr2,a))
print(a)
报错,显示variable是non-iterable的
到variable.py源文件里去看有这么一段代码:
突然有灵感,把它包成一个模型,然后里面的变量设置成自己的:
op = keras.optimizers.A