当前位置:网站首页>TensorFlow求梯度时提示TypeError: unsupported operand type(s) for *: ‘float‘ and ‘NoneType‘

TensorFlow求梯度时提示TypeError: unsupported operand type(s) for *: ‘float‘ and ‘NoneType‘

2022-06-12 17:14:00 老油条666

报错代码如下:

变量声明如下:

这是因为使用的张量类型不对,在TensorFlow中的tensor一旦涉及到求梯度和梯度更新问题时,需要使用特殊的tensor:Variable,即将原来的tensor直接强转为Variable即可。

另外,如果是手动实现梯度下降算法,tensorflow中不能使用第一张截图的那种直接相减方式,而是应该使用TensorFlow中的assign_sub()函数,原因见下图中的注释:

参考链接:龙良曲老师的《深度学习与TensorFlow2入门实战》课时39前向传播-4,B站链接:https://www.bilibili.com/video/BV165411j7ro?from=search&seid=4255840397349822501

这个问题可能对于早已经熟悉TensorFlow的大佬们来说不是什么问题,但是对于我像我这种新手来说第一次遇到的时候是一头雾水,所以写下这篇博文记录一下

 

原网站

版权声明
本文为[老油条666]所创,转载请带上原文链接,感谢
https://blog.csdn.net/qq_15054345/article/details/112778996