自定义PyTorch中Conv1D类对象的权重初始化

时间:2019-03-04 23:41:21

标签: conv-neural-network pytorch convolution

我正在研究torch.nn.Conv1D类,我想使用自定义权重对其进行初始化。

我希望这些权重是“可区分的”,因为它们将基于其他一些参数得出。

这是我想做的事的一个例子:

# Initialize random convolution of size 3:
m = nn.Conv1d(1, 1, 3, stride=1,bias=False)

# Define custom weights
w1 = 1.
w2 =-2.
w3 = 1.
paramsNP = np.array([w1, w2, w3]).reshape((1,1,3))

# Assign weights to m.weight (THIS PART FAILS)
m.weight = torch.tensor(paramsNP, requires_grad=True)

最后一次分配失败,并显示

  

TypeError:无法将“ torch.DoubleTensor”分配为参数“ weight”(torch.nn.Parameter或无期望值)

此接缝是由于m.weight为torch.nn.parameter.Parameter类型 什么是执行Conv1D对象m的分配/初始化的好方法?

我可以代替最后一行:

m.weight[0,0,0] = w1
m.weight[0,0,1] = w2
m.weight[0,0,2] = w3

0 个答案:

没有答案