繁体   English   中英

我们如何将线性层的 output 提供给 PyTorch 中的 Conv2D?

[英]How can we provide the output of a Linear layer to a Conv2D in PyTorch?

我正在构建一个自动编码器,我需要将图像编码为长度为 100 的潜在表示。我正在为我的 model 使用以下架构。

        self.conv1 = nn.Conv2d(in_channels = 3, out_channels = 32, kernel_size=3)
        self.conv2 = nn.Conv2d(in_channels=32,out_channels=64,kernel_size=3,stride=2)
        self.conv3 = nn.Conv2d(in_channels=64,out_channels=128,kernel_size=3,stride=2)

        self.linear = nn.Linear(in_features=128*30*30,out_features=100)

        self.conv1_transpose = nn.ConvTranspose2d(in_channels=128,out_channels=64,kernel_size=3,stride=2,output_padding=1)
        self.conv2_transpose = nn.ConvTranspose2d(in_channels=64,out_channels=32,kernel_size=3,stride=2,output_padding=1)
        self.conv3_transpose = nn.ConvTranspose2d(in_channels=32,out_channels=3,kernel_size=3,stride=1)  

有什么方法可以将我的Linear层的 output 提供给Conv2DConvTranspose2D层,以便我可以重建图像? 如果我删除Linear层,output 将恢复。 我想知道如何重建保持Linear层的图像

任何帮助,将不胜感激。 谢谢!

您可以使用另一个线性层:

self.linear2 = nn.Linear(in_features=100, out_features=128*30*30)

然后将 output 重塑为 3D 卷并将其传递到您的反卷积层。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM