2017-06-13 134 views
0

这是一种pytorch初学者问题。在pytorch中,我试图用尺寸为[5,5,3]的两个张量进行元素明智的划分。在numpy中,它使用np.divide()很好地工作,但不知何故我在这里得到一个错误。我使用Python 3.5的PyTorch版本0.1.12。pytorch张量分裂。断言错误

C = [大小5x5x3的torch.DoubleTensor]

input_patch =

input_patch是torch.autograd变量的切片,和c是由做Ç制成[大小5x5x3的torch.FloatTensor] = torch.from_numpy(self.patch_filt [:,:,:0])。浮动()

做当:

torch.div(input_patch, c) 

我得到这个错误,我不明白。

line 317, in div 
assert not torch.is_tensor(other) 
AssertionError 

这是否意味着变量c不应该是torch_tensor?在铸造C之后也是一个FloatTensor仍然会给出同样的错误。

谢谢!

+1

嗨!我无法重现你的错误。你使用的是什么版本的Pytorch,你如何生成input_patch和c?确保c和input_patch都是相同的dtype,并且都是torch.autograd.Variable或两者都是常用张量。我怀疑你可能做了一个变量而另一个不是?就我所知,错误中的行只是为了区分是否提供了张量作为除数或常数。因为两者都是可能的。 – mexmex

回答

1

Input_patch是torch.autograd变量的切片,C是通过做

c = torch.from_numpy(self.patch_filt[:, :, :, 0]).float() 

反正做,mexmex,感谢您的评论我已经通过定义Ç解决它作为

Variable(torch.from_numpy(self.patch_filt[:, :, :, 0])).float()