我想在其他两个卷积层之间添加一个卷积层。我应该如何计算它可能的超参数,以免违反传输张量的预期大小?
self.conv1 = torch.nn.Conv2d(
in_channels=1, out_channels=6, kernel_size=5, padding=2)
self.act1 = torch.nn.Tanh()
self.pool1 = torch.nn.AvgPool2d(kernel_size=2, stride=2)
self.conv2 = torch.nn.Conv2d(
in_channels=6, out_channels=16, kernel_size=5, padding=0)
self.act2 = torch.nn.Tanh()
self.pool2 = torch.nn.AvgPool2d(kernel_size=2, stride=2)
原理是新的中间层的输入通道数应该等于上一层的输出通道数,新层的输出通道数应该等于下一层的输入通道数层:
或者,犯错误。运行脚本时输出和输入层数的不一致会给出异常,指示必须组合的数字。
例如,
RuntimeError: running_mean 应该包含 768 个元素而不是 32
为了
或者
RuntimeError: 给定组=1,大小为 [6, 512, 2, 2] 的权重,预期输入 [300, 768, 33, 9] 有 512 个通道,但有 768 个通道
在 SO 上,他们经常引用一个考虑通道、填充和跨步的公式,
也使用模型可视化
更新,渲染层