作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有 2 个张量,A 和 B:
A = torch.randn([32,128,64,12],dtype=torch.float64)
B = torch.randn([64,12,64,12],dtype=torch.float64)
C = torch.tensordot(A,B,([2,3],[0,1]))
D = C.permute(0,2,1,3) # shape:[32,64,128,12]
张量 D 来自操作“tensordot -> permute”。如何在 f() 之后实现新操作 f() 以进行 tensordot 操作,例如:
A_2 = f(A)
B_2 = f(B)
D = torch.tensordot(A_2,B_2)
最佳答案
您是否考虑过使用 torch.einsum
这是非常灵活的?
D = torch.einsum('ijab,abkl->ikjl', A, B)
tensordot
的问题是它输出
A
的所有维度在
B
之前并且您正在寻找的(在排列时)是从
A
中“交错”维度和
B
.
关于pytorch - 排列后如何进行张量点运算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65716540/
我目前正在阅读使用 Python 进行深度学习,我不确定作者在第 42 页上想说什么。链接是 here More generally, you can take the dot product bet
我是一名优秀的程序员,十分优秀!