tf之ValueError: Tried to convert ‘values‘ to a tensor and failed. Error: None values not supported
生活随笔
收集整理的這篇文章主要介紹了
tf之ValueError: Tried to convert ‘values‘ to a tensor and failed. Error: None values not supported
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在實驗中遇到這個問題:ValueError: None values not supported.
經查閱資料發現,是因為有的變量沒有被求梯度,因此在計算利用梯度反向更新時會造成這種錯誤。這里,我的代碼是:
代碼出錯的位置:
for g, v in grads_and_vars:tf.summary.histogram(v.name[:-2] + '_hist', v)tf.summary.histogram(v.name[:-2] + '_grad_hist', g)在繪制梯度分布直方圖時,報錯。
后經排查,是我的total_loss由兩部分組成,然而,由于我的大意,在計算total_loss時只包含進了一部分,因此在計算梯度時自然有一部分變量無法計算得到其梯度值,這一部分的梯度為None。因此在繪制直方圖時會報values為None的錯誤。
總之在遇到此類問題時,應該考慮到是否是自己的計算圖中某些值無法計算梯度而導致整個圖產生梯度撕裂。然后可以使用下面這種方法來排查哪個變量沒有被計算梯度:
for g, v in grads_and_vars:print("*****", v.name, g)梯度打印值為None的變量即為問題所在。
總結
以上是生活随笔為你收集整理的tf之ValueError: Tried to convert ‘values‘ to a tensor and failed. Error: None values not supported的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 坑 之 TypeError: Canno
- 下一篇: tf记录 之 tf.boolean_ma