我用手电筒做了一些实验,我发现:
( 5,7,3) and ( 5,7,3) -> ( 5,7,3)
-相等(5,3,4,1) and (5,3,1,1) -> (5,3,4,1)
-一个维度是1(5,3,4,1) and ( 3,4,1) -> (5,3,4,1)
-一个dim不存在(5,3,4,1) and ( 3,1,1) -> (5,3,4,1)
-一个dim是1,一个dim不存在( 4,3,2) and (5,4,1,1) -> (5,4,3,2)
( 4,1) and (5,3,1,1) -> (5,3,4,1)
-一个维度是1,两个维度不存在( 1) and (5,3,4,2) -> (5,3,4,2)
-一个dim是1,其他dim不存在( ) and (5,3,4,2) -> (5,3,4,2)
-标量与张量( 0) and (5,3,2,1) -> (5,3,2,0)
-空张量与张量( 4,1) and ( 4) -> ( 4,4)
-缺少的dim是1( 4,2) and ( 4)
->;不可广播( 5,2,1) and (5,3,2,1)
->;不可广播(5,3,2,1) and ( 5,3,2)
->;不可广播Pytorch文件中说:
Many PyTorch operations support NumPy Broadcasting Semantics.
这是否意味着Pytork遵循numpy的广播规则,它们是相同的还是我也应该尝试numpy?你知道吗
numpy的文档没有列出pytourch的具体规则。甚至pytorch的文档也不完全准确,例如,它说每个张量应该至少有一个维度,但是torch.empty(3,4) + torch.tensor(42)
工作良好(标量没有维度)。你知道吗
我发现的规则是:
这似乎是最合理的广播方式,我不明白为什么对numpy来说会有所不同。但也许有一些特点。你知道吗
如果有人能提供证据或者至少能证明numpy和pytorch有相同的规则,那么我会很感激,因为我不必研究numpy的广播行为。你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐