Python 如何解决PyTorch中我的层的尺寸问题

Python 如何解决PyTorch中我的层的尺寸问题,python,pytorch,dimensions,cnn,one-class-classification,Python,Pytorch,Dimensions,Cnn,One Class Classification,我正在处理尺寸不正确的训练循环错误。当然,这里还有其他代码,但我认为这是最重要的。我觉得无论我在哪里上网,我都会被告知不同的信息或以不同的方式,我不知道如何至少纠正第一层,这样我就可以从那里进行故障排除。我知道什么从一层进入下一层,这些尺寸必须匹配。看看这个链接 我认为第一层应该是nn.Conv2d([批次大小、通道、高度、宽度]) 或nn.Conv2d([62,3800600])。然而,这给出了一个错误的想法 RuntimeError:给定的组=1,大小为362800600的权重,预期输入[6

我正在处理尺寸不正确的训练循环错误。当然,这里还有其他代码,但我认为这是最重要的。我觉得无论我在哪里上网,我都会被告知不同的信息或以不同的方式,我不知道如何至少纠正第一层,这样我就可以从那里进行故障排除。我知道什么从一层进入下一层,这些尺寸必须匹配。看看这个链接

我认为第一层应该是
nn.Conv2d([批次大小、通道、高度、宽度])
nn.Conv2d([62,3800600])
。然而,这给出了一个错误的想法
RuntimeError:给定的组=1,大小为362800600的权重,预期输入[62,3800600]有62个通道,但得到了3个通道
。所以,我认为它期望频道是第一个数字,功能的数量,然后是(H,W)。因此,我们需要改变一下。。。。。。。 但是,获取错误

in _max_pool2d
    input, kernel_size, stride, padding, dilation, ceil_mode)
RuntimeError: Given input size: (62x1x1). Calculated output size: (62x0x0). Output size is too small
我如何理解这些需要的维度

图像信息:

Dimensions = 1920x1080 (W x H)
Bit depth 24
代码:

错误消息:

Starting training loop...
Expected: %s to exist.
NoneType: None
Expected: %s to exist.
NoneType: None
Expected: %s to exist.
NoneType: None
Expected: %s to exist.
NoneType: None
Traceback (most recent call last):
  File "/home/ubuntu/.pycharm_helpers/pydev/pydevd.py", line 1434, in _exec
    pydev_imports.execfile(file, globals, locals)  # execute the script
  File "/home/ubuntu/.pycharm_helpers/pydev/_pydev_imps/_pydev_execfile.py", line 18, in execfile
    exec(compile(contents+"\n", file, 'exec'), glob, loc)
  File "/home/ubuntu/Deep-Learning/FinalProject/train_finalproject.py", line 310, in <module>
    logits = model(train_inputs)
  File "/usr/local/lib/python3.6/dist-packages/torch/nn/modules/module.py", line 541, in __call__
    result = self.forward(*input, **kwargs)
  File "/home/ubuntu/Deep-Learning/FinalProject/train_finalproject.py", line 287, in forward
    x = self.pool2(self.convnorm2(self.act(self.conv2(x))))
  File "/usr/local/lib/python3.6/dist-packages/torch/nn/modules/module.py", line 541, in __call__
    result = self.forward(*input, **kwargs)
  File "/usr/local/lib/python3.6/dist-packages/torch/nn/modules/conv.py", line 345, in forward
    return self.conv2d_forward(input, self.weight)
  File "/usr/local/lib/python3.6/dist-packages/torch/nn/modules/conv.py", line 342, in conv2d_forward
    self.padding, self.dilation, self.groups)
RuntimeError: Given groups=1, weight of size 14 7 3 3, expected input[62, 2, 399, 299] to have 7 channels, but got 2 channels instead
开始训练循环。。。
应存在%s。
非类型:无
应存在%s。
非类型:无
应存在%s。
非类型:无
应存在%s。
非类型:无
回溯(最近一次呼叫最后一次):
文件“/home/ubuntu/.pycharm\u helpers/pydev/pydevd.py”,第1434行,在_exec中
pydev_imports.execfile(文件、全局、局部)#执行脚本
文件“/home/ubuntu/.pycharm\u helpers/pydev/\u pydev\u imps/\u pydev\u execfile.py”,execfile中第18行
exec(编译(内容+“\n”,文件,'exec'),全局,loc)
文件“/home/ubuntu/Deep Learning/FinalProject/train_FinalProject.py”,第310行,在
logits=模型(列车输入)
文件“/usr/local/lib/python3.6/dist-packages/torch/nn/modules/module.py”,第541行,在调用中__
结果=自我转发(*输入,**kwargs)
文件“/home/ubuntu/Deep Learning/FinalProject/train_FinalProject.py”,第287行,向前
x=self.pool2(self.convnorm2(self.act(self.conv2(x)))
文件“/usr/local/lib/python3.6/dist-packages/torch/nn/modules/module.py”,第541行,在调用中__
结果=自我转发(*输入,**kwargs)
文件“/usr/local/lib/python3.6/dist-packages/torch/nn/modules/conv.py”,第345行,向前
返回self.conv2d_向前(输入、自重)
文件“/usr/local/lib/python3.6/dist-packages/torch/nn/modules/conv.py”,第342行,conv2d_向前
自填充、自膨胀、自组)
RuntimeError:给定组=1,大小为1473的权重,预期输入[62,2399299]有7个通道,但得到了2个通道

您发布的CNN似乎不是产生错误的CNN。至少在输入维度
[62,380600]
的情况下运行此CNN可以正常工作。这些错误是完全不同配置的结果,对于第一个错误,您必须有
self.conv1=nn.Conv2d(62,3,(3,3))
,对于最后一个错误,您必须有
self.conv1=nn.Conv2d(3,2,(3,3))
。当前版本是正确的,请确保您使用的是完全相同的版本。您发布的CNN似乎不是产生错误的CNN。至少在输入维度
[62,380600]
的情况下运行此CNN可以正常工作。这些错误是完全不同配置的结果,对于第一个错误,您必须有
self.conv1=nn.Conv2d(62,3,(3,3))
,对于最后一个错误,您必须有
self.conv1=nn.Conv2d(3,2,(3,3))
。当前版本是正确的,请确保您使用的是完全相同的版本。
Starting training loop...
Expected: %s to exist.
NoneType: None
Expected: %s to exist.
NoneType: None
Expected: %s to exist.
NoneType: None
Expected: %s to exist.
NoneType: None
Traceback (most recent call last):
  File "/home/ubuntu/.pycharm_helpers/pydev/pydevd.py", line 1434, in _exec
    pydev_imports.execfile(file, globals, locals)  # execute the script
  File "/home/ubuntu/.pycharm_helpers/pydev/_pydev_imps/_pydev_execfile.py", line 18, in execfile
    exec(compile(contents+"\n", file, 'exec'), glob, loc)
  File "/home/ubuntu/Deep-Learning/FinalProject/train_finalproject.py", line 310, in <module>
    logits = model(train_inputs)
  File "/usr/local/lib/python3.6/dist-packages/torch/nn/modules/module.py", line 541, in __call__
    result = self.forward(*input, **kwargs)
  File "/home/ubuntu/Deep-Learning/FinalProject/train_finalproject.py", line 287, in forward
    x = self.pool2(self.convnorm2(self.act(self.conv2(x))))
  File "/usr/local/lib/python3.6/dist-packages/torch/nn/modules/module.py", line 541, in __call__
    result = self.forward(*input, **kwargs)
  File "/usr/local/lib/python3.6/dist-packages/torch/nn/modules/conv.py", line 345, in forward
    return self.conv2d_forward(input, self.weight)
  File "/usr/local/lib/python3.6/dist-packages/torch/nn/modules/conv.py", line 342, in conv2d_forward
    self.padding, self.dilation, self.groups)
RuntimeError: Given groups=1, weight of size 14 7 3 3, expected input[62, 2, 399, 299] to have 7 channels, but got 2 channels instead