Pytorch 如何在Pytork中向CNN输入矩阵
我是pytorch的新手,我想知道如何将矩阵而不是图像输入CNN。 我用下面的方法尝试过,但是出现了一些错误。 我将数据集定义如下:Pytorch 如何在Pytork中向CNN输入矩阵,pytorch,Pytorch,我是pytorch的新手,我想知道如何将矩阵而不是图像输入CNN。 我用下面的方法尝试过,但是出现了一些错误。 我将数据集定义如下: class FrameDataSet(tud.Dataset): def __init__(self, data): targets = data['class'].values.tolist() features = data.drop('class', axis=1).astype(np.int64).values
class FrameDataSet(tud.Dataset):
def __init__(self, data):
targets = data['class'].values.tolist()
features = data.drop('class', axis=1).astype(np.int64).values
self.datalist = features.reshape((-1, feature_num, frame_size))
self.labellist = targets
def __getitem__(self, index):
return torch.Tensor(self.datalist[index].astype(float)), self.labellist[index]
def __len__(self):
return self.datalist.shape[0]
我的CNN是:
self.conv = nn.Sequential(
nn.Conv2d(1, 12, 3),
nn.ReLU(True),
nn.MaxPool2d(3, 3))
self.fc1 = nn.Linear(80, 100)
self.fc2 = nn.Linear(100, 30)
self.fc3 = nn.Linear(30, 5)
但当数据输入CNN时,错误会带来:
文件“/home/sparks/anaconda2/lib/python2.7/site packages/torch/nn/functional.py”,第48行,conv2d
raise VALUERROR(“应将4D张量作为输入,改为{}D张量。”.format(input.dim()))
应将4D张量作为输入,改为使用3D张量
您的输入可能缺少一个维度。应该是: (批次尺寸、通道、宽度、高度) 如果批处理中只有一个元素,则张量必须在您的情况下 e、 g(1,1,28,28) 因为您的第一个conv2d层需要单通道输入