如何为 4 维权重生成 4 维输入?
How to produce 4-dimensional input for 4-dimensional weight?
我对深度学习还很陌生。我正在处理 CIFAR10 数据集并创建了如下所示的 CNN 模型。
class Net2(nn.Module):
def __init__(self):
super(Net2, self).__init__()
self.conv1 = nn.Conv2d(3, 32, 5, 1)
self.fc1 = nn.Linear(32 * 5 * 5, 512)
self.fc2 = nn.Linear(512,10)
def forward(self, x):
x = x.view(x.size(0), -1)
x = F.max_pool2d(F.relu(self.conv1(x)),(2,2))
x = F.relu(self.fc1(x))
x = self.fc2(x)
return x
net2 = Net2().to(device)
我的作业要求是创建一个模型:
具有 32 个过滤器的卷积层,内核大小为 5x5,步幅为 1。
最大池化层,内核大小为 2x2,默认步长。
ReLU 激活层。
输出为 512.
的线性层
ReLU 激活层。
输出为 10.
的线性层
我想我写的。但我假设我走错了路。请帮助我编写正确的模型以及 Conv2d 和线性层中这些参数背后的原因。
我从我的代码中得到的错误如下:
RuntimeError: Expected 4-dimensional input for 4-dimensional weight [32, 3, 5, 5], but got 2-dimensional input of size [1024, 3072] instead
请帮帮我!
代码有两个问题:
输入的扁平化
x = x.view(x.size(0), -1)
卷积层需要一个维度为(N, C, H, W)的四维输入,其中N是批量大小,C = 3是通道数,(H, W)是维度的图像。通过使用上述语句,您将 (1024, 3, 32, 32) 输入展平为 (1024, 3072)。
第一个线性层的输入特征数
self.fc1 = nn.Linear(32 * 5 * 5, 512)
输入为 (1024, 3, 32, 32) 的卷积层的输出维度为 (1024, 32, 28, 28),应用 2 x 2 最大池化后,为 (1024, 32、14、14)。所以线性层的输入特征数量应该是 32 x 14 x 14 = 6272.
我对深度学习还很陌生。我正在处理 CIFAR10 数据集并创建了如下所示的 CNN 模型。
class Net2(nn.Module):
def __init__(self):
super(Net2, self).__init__()
self.conv1 = nn.Conv2d(3, 32, 5, 1)
self.fc1 = nn.Linear(32 * 5 * 5, 512)
self.fc2 = nn.Linear(512,10)
def forward(self, x):
x = x.view(x.size(0), -1)
x = F.max_pool2d(F.relu(self.conv1(x)),(2,2))
x = F.relu(self.fc1(x))
x = self.fc2(x)
return x
net2 = Net2().to(device)
我的作业要求是创建一个模型:
具有 32 个过滤器的卷积层,内核大小为 5x5,步幅为 1。
最大池化层,内核大小为 2x2,默认步长。
ReLU 激活层。
输出为 512.
的线性层
ReLU 激活层。
输出为 10.
我想我写的。但我假设我走错了路。请帮助我编写正确的模型以及 Conv2d 和线性层中这些参数背后的原因。
我从我的代码中得到的错误如下:
RuntimeError: Expected 4-dimensional input for 4-dimensional weight [32, 3, 5, 5], but got 2-dimensional input of size [1024, 3072] instead
请帮帮我!
代码有两个问题:
输入的扁平化
x = x.view(x.size(0), -1)
卷积层需要一个维度为(N, C, H, W)的四维输入,其中N是批量大小,C = 3是通道数,(H, W)是维度的图像。通过使用上述语句,您将 (1024, 3, 32, 32) 输入展平为 (1024, 3072)。
第一个线性层的输入特征数
self.fc1 = nn.Linear(32 * 5 * 5, 512)
输入为 (1024, 3, 32, 32) 的卷积层的输出维度为 (1024, 32, 28, 28),应用 2 x 2 最大池化后,为 (1024, 32、14、14)。所以线性层的输入特征数量应该是 32 x 14 x 14 = 6272.