首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tensorflow运算与张量运算的区别?

Tensorflow运算与张量运算的区别?
EN

Stack Overflow用户
提问于 2018-07-10 06:18:22
回答 1查看 1K关注 0票数 2

我对Tensorflow操作和张量对象之间的区别感到困惑。更具体地说,它们之间的关系是什么,它们背后的设计哲学是什么。

代码语言:javascript
复制
x = tf.constant([[37.0, -23.0], [1.0, 4.0]])
w = tf.Variable(tf.random_uniform([2, 2]))
y = tf.matmul(x, w)
output = tf.nn.softmax(y, name="output")

output
<tf.Tensor 'output_7:0' shape=(2, 2) dtype=float32>

output2 = tf.get_default_graph().get_operation_by_name("output")
output2
<tf.Operation 'output' type=Softmax>

如果我想将output2传递给sess.run(output2),我将不会得到任何结果。有没有一种方法可以把output2转换成输出?

我是一个PyTorch用户,PyTorch中的运算和张量有什么相似之处?

EN

回答 1

Stack Overflow用户

发布于 2018-07-10 06:36:48

我没有使用过PyTorch,但您可以假设它是Layer类的一个方法和变量。所以操作是一种方法,而张量就像是可以存储数据的变量。因此,当您运行sess.run([output2])时,您尝试访问的是方法的值,而不是变量。

要从层的名称访问张量,可以使用如下函数:

output2 = tf.get_default_graph().get_tensor_by_name("output:0")

使用:0是因为它是张量的第一个实例。如果创建同一层的更多实例,则会将其索引为:1, :2,依此类推。

编辑:另一件需要注意的事情是,在tensorflow中,sess.run([output])提取输出值,而不是将其提供给图形。通过使用feed_dict或Feed Dictionary将值提供给图形。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51254771

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档