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