python - TensorFlow 的打印不打印
问题描述
我试图从强化学习算法中理解一些代码。为了做到这一点,我试图打印张量的值。
我做了一段简单的代码来说明我的意思。
import tensorflow as tf
from keras import backend as K
x = K.abs(-2.0)
tf.Print(x,[x], 'x')
目标是打印值“2”(-2 的绝对值)。但我只得到以下内容:
Using TensorFlow backend.
Process finished with exit code 0
没什么,我怎样才能像 print('...') 语句那样打印值 '2' 呢?
解决方案
如果您使用的是 Jupyter Notebook,那么tf.Print()
到目前为止不兼容,并且会将输出打印到 Notebook 的服务器输出,如文档中所述
在 tensorflow 文档中,以下是 Tensor 的描述方式:
在编写 TensorFlow 程序时,您操作和传递的主要对象是 tf.Tensor。一个 tf.Tensor 对象代表一个部分定义的计算,它最终会产生一个值。
因此,您必须用 a 初始化它们tf.Session()
才能获得它们的值。要打印该值,您eval()
这是您想要的代码:
import tensorflow as tf
from keras import backend as K
x= K.abs(-2.0)
with tf.Session() as sess:
init = tf.global_variables_initializer()
sess.run(init)
print(x.eval())
初始化器对于实际初始化 x 很重要。
推荐阅读
- odbc - Visual FoxPro DB - 使用 ODBC 创建/更新/删除表
- java - SQLite:更新不起作用
- python - 根据列表中的特定值从列表中创建 DataFrame
- bash - Bash:从变量中删除文件中存在的值
- python - 获得 RandomizedSearchCV 最佳模型的概率
- spring - Spring Boot 应用程序无法注入 CDI bean。
- escaping - 如何离开这个编辑器?
- marklogic - 拼写:建议错误的顺序?
- user-interface - 在位置类 GUI 中找不到变量“搜索”
- c++ - TCP套接字上子进程之间的通信