1. 程式人生 > >TensorFlow錯誤ValueError: No gradients provided for any variable

TensorFlow錯誤ValueError: No gradients provided for any variable

使用TensorFlow訓練神經網路的時候,出現以下報錯資訊:

Traceback (most recent call last):   File "gan.py", line 147, in     var_list=G_PARAMS   File "C:\Python35\lib\site-packages\tensorflow\python\training\optimizer.py", line 322, in minimize     ([str(v) for _, v in grads_and_vars], loss)) ValueError: No gradients provided for any variable, check your graph for ops that do not support gradients, between variables ["", "", "", "", "", ""] and loss Tensor("Mean_2:0", shape=(), dtype=float32). 報錯資訊的意思是,提供給minimize函式的var_list引數中的變數沒有梯度,需要檢查你的圖的操作是否在這些變數中支援梯度。 經過檢查,發現優化器指定的loss引數中,與var_list引數中的變數無任何關係導致了上述錯誤,因此, 需要檢查loss和var_list兩個引數的關聯性,確保loss由指定的var_list中的變數來計算
      ----------------------------------------------------   實驗問題暫記: 使用DDPG的Actor輸出action,包含兩個act: act1.VM位置,是離散的,範圍為[0, n],n為網路節點數; act2:能量使用率,是連續的,範圍為[0, 1] 但使用DDPG沒能訓練出結果,個人猜測是DDPG輸出的act1都是連續的,很難收斂, 於是考慮用DQN來學習act1,但DDPG的critic(s,a1,a2)來指導DQN的引數(a1_loss = -q) 如果DQN只傳a1給critic的話會造成以上error,