网站开发者模式,义乌高端网站建设,新版wordpress头像,ui外包网站WARNING:tensorflow:Gradients do not exist for variables when minimizing the loss. 情况一 该变量没有参与最后loss的计算 #xff08;1#xff09;如果直接没有参与计算#xff0c;其实很好就能找出来#xff0c;删掉无用变量即可#xff1b; #xff08;2#xff…WARNING:tensorflow:Gradients do not exist for variables when minimizing the loss. 情况一 该变量没有参与最后loss的计算 1如果直接没有参与计算其实很好就能找出来删掉无用变量即可 2有时直接参与计算了但是由于程序中的 if 等条件语句在某个batch的数据恰巧不适用某个变量而其他batch可能就是使用了该变量这种情况下忽略该警告即可。  情况二 该变量在 model 的 call 之前就进行了运算或者在 tf.GradientTape() 之外进行了运算比如concatdense之类的都不行。  情况三 错误写法 创建一个变量或者常量将计算出的结果一行一行 assign 进去 修改后的写法 创建一个空 list每次将计算出的结果 append 加入最后使用 tf.stack() 操作  
import tensorflow as tfoptimizer  tf.keras.optimizers.Adam(learning_rate0.001)
w1  tf.Variable([[1.0]])
w2  tf.Variable([[3.0]])w  tf.concat([w1, w2], 0)  # 变量在tf.GradientTape()范围之外就进行了计算x  tf.random.normal((1,2))
y  tf.reduce_sum(x,1)
with tf.GradientTape() as tape:# w  tf.concat([w1, w2], 0)  # 这里使用就不会报错了r  tf.matmul(w,x)loss  tf.metrics.mse(y, r)gradients  tape.gradient(loss, [w1,w2])print(gradients)  # [None, None]optimizer.apply_gradients(zip(gradients, [w1,w2]))  # 没有梯度这行就会报错最后这类型问题百度没什么解答github上讨论的人很多。