一.安装
见前面我的博客
https://editor.csdn.net/md/?articleId=101542485
https://editor.csdn.net/md/?articleId=107192706
二.notes
- tf.placeholder类型变量的输出
调代码过程中,总会需要print一些变量看中间值,但是每次print到tf.placeholder变量时,总是很莫名,直接输出是这样的格式:
tensor(“td_loss/sub:0”, shape=(?, ?), dtype=float32)
没有办法看具体值。
然后一查,发现不能这样直接输出。对应可以参考博客https://blog.csdn.net/Felaim/article/details/83790205`
尝试了这两种方法,出现两种错误:
- tensorflow.python.framework.errors_impl.InvalidArgumentError: You must feed a value for placeholder
- Cannot evaluate tensor using
eval()
: No default session is registered
先说第二种,第二种是因为增加session的定义,添加with tf.Session() as sess
就好了。但是当时一直报第一个错误,就删掉了。
然后回到解决第一个错误,其实这个就是没有给要输出的placeholder变量赋值,如果直接用sess.run(变量)输出,就会这样报错。为什么可以参考这篇博文https://blog.csdn.net/chengyq116/article/details/98355499,即,这种类型变量的值必须使用 feed_dict 可选参数提供给 Session.run()、Tensor.eval() 或 Operation.run(),要不就会报错,然后给其赋值,成功输出。
给一个我自己的例子,一开始直接输出print(self.sess.run(self.r))
就一直报第一个错误,后来改成print(self.sess.run(self.r, feed_dict={self.r: r}))
就成功输出r的具体值了。