2017-09-02 538 views
-1

这个问题是关于访问张量中的单个元素,比如[1,2,3]。我需要访问内部元素[1]。因为我正在调用另一个不是来自tensorflow的api库。这个api需要一个int值作为参数。我在将[1]放入该api时遇到了问题,因为[1]显示为张量,而不是int。有没有办法将像[1]这样的单张张转换为int 1?如何从tensor中提取一个值作为tensorflow中的int值?

+0

你可以粘贴你用来创建张量的代码吗? – Tejaswi

回答

0

您需要启动会话,加载/初始化变量,然后运行会话。

# build graph 
target_tensor = bigger_tensor[1, 2] # whichever index you want 
with tf.Session() as sess: 
    sess.run(tf.global_variables_initializer()) # or load from file 
    target_value = sess.run(target_tensor) #may need a feed_dict if your model uses placeholders 
+0

谢谢。我不知道它是否完全是我想要的方法,因为我正在为tensorflow中的损失函数添加一个术语,但额外术语必须通过外部包计算。我希望在会话中计算它,但我会尝试这种方法。非常感谢你。 – Joy

+0

如果您的目标是在训练步骤的中途将自定义操作添加到丢失功能,您可能需要尝试其他选择。 'sess.run()'只对获取步骤的输出非常有用,而不是在同一步骤中混合TensorFlow和非TensorFlow代码。您可能需要考虑首先使用TensorFlow操作符来表达您的计算,或者如果这不起作用,则使用'tf.py_func'。没有更多细节,很难说什么是正确的。 –