网络的一部分
self.cov1d = nn.Conv1D(1,32,kernel_size=5,stride=1,padding='SAME',data_format='NLC')
def forward(self,d1,d2,d3):
sd = self.cov1d(d1)#报错行
sd = self.relu(sd)
sd = self.flatten(sd)
sd = self.relu(self.fc1(sd))
inputs_com = [sd, d2]
cl = CombineLayer(TIME_STEPS)
combined = cl(inputs_com)
out1,final_states1 = self.lstm(combined)
out2,final_states2 = self.lstm(d3,initial_state=final_states1)
y = self.fc2(out2)
return y
d1的数据
Tensor(shape=[1, 9, 1], dtype=float64, place=CPUPlace, stop_gradient=True,
[[[0.06142009],
[0.54790709],
[0.21413160],
[0.26372740],
[0.05794880],
[0.36735536],
[0.05000000],
[0.86115580],
[0.20000000]]])
报错:ValueError: (InvalidArgument) input and filter data type should be consistent, but received input data type is double and filter type is float
[Hint: Expected input_data_type == filter_data_type, but received input_data_type:6 != filter_data_type:5.] (at /paddle/paddle/fluid/operators/conv_op.cc:211)
[operator < conv2d > error]
d1的类型是float64,为什么报错说是double。
paddle 一般都用float32,显示转下试试
我也遇到这个错误了
hik