首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与tensorflow张拉点混淆的结果

与tensorflow张拉点混淆的结果
EN

Stack Overflow用户
提问于 2017-10-02 09:11:16
回答 1查看 218关注 0票数 2

在使用tensorflow的tf.tensordot时,我遇到了一些奇怪的结果。运行以下代码块

代码语言:javascript
复制
import tensorflow as tf
import numpy as np
a = np.arange(6, dtype=np.int32).reshape(3,2)
b = np.arange(1,7, dtype=np.int32).reshape(2,3)
sess = tf.Session()
print(sess.run(tf.tensordot(a, b, [[0,1],[0,1]])))
print(sess.run(tf.tensordot(a, b, [[0,1],[1,0]])))
print(sess.run(tf.tensordot(a, b, [[1,0],[0,1]])))
print(sess.run(tf.tensordot(a, b, [[1,0],[1,0]])))

产生

代码语言:javascript
复制
70
65
65
60

我不知道这里发生了什么收缩。另一件有趣的事情是,尝试用numpy的tensordot来做这件事将返回几个尝试轴的错误。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-20 15:25:37

你在tensorflow发现了一个窃听器。

根据tf.tensordot的文档,

a_axes[i] of a必须具有与bb_axes[i]相同的维度,用于range(0, len(a_axes))中的所有i

例如,tf.tensordot(a, b, [[0,1],[0,1]]))应该返回一个错误,因为a3x2b2x3。但这不是.那是虫子。

相反,它继续进行,好像张量是相容的。如果ab兼容,那么tf.tensordot(a, b, [[0,1],[0,1]]))将是一个简单的点产品。tf.tensordot内部所做的是,它基本上将ab压平,并计算点积。

在您的例子中,ab有相同数量的元素,因此,尽管它们的形状不兼容,但点积的计算仍然成功。

您可以向TF团队这里提交一个bug。

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

https://stackoverflow.com/questions/46522622

复制
相关文章

相似问题

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