在 pytorch 中对自动编码器进行上采样

作曲家

我已经在 pytorch 中定义了我的自动编码器如下(它在编码器的输出处给了我一个 8 维瓶颈,它可以正常工作 torch.Size([1, 8, 1, 1])):

self.encoder = nn.Sequential(
    nn.Conv2d(input_shape[0], 32, kernel_size=8, stride=4),
    nn.ReLU(),
    nn.Conv2d(32, 64, kernel_size=4, stride=2),
    nn.ReLU(),
    nn.Conv2d(64, 8, kernel_size=3, stride=1),
    nn.ReLU(),
    nn.MaxPool2d(7, stride=1)
)

self.decoder = nn.Sequential(
    nn.ConvTranspose2d(8, 64, kernel_size=3, stride=1),
    nn.ReLU(),
    nn.Conv2d(64, 32, kernel_size=4, stride=2),
    nn.ReLU(),
    nn.Conv2d(32, input_shape[0], kernel_size=8, stride=4),
    nn.ReLU(),
    nn.Sigmoid()
)

我不能做的是训练自动编码器

def forward(self, x):
    x = self.encoder(x)
    x = self.decoder(x)
    return x

解码器给我一个错误,即解码器无法对张量进行上采样:

Calculated padded input size per channel: (3 x 3). Kernel size: (4 x 4). Kernel size can't be greater than actual input size
席蒙·马兹克

您没有通过 进行足够的上采样ConvTranspose2d,编码器的形状仅为1像素 ( width x height),请参见此示例:

import torch

layer = torch.nn.ConvTranspose2d(8, 64, kernel_size=3, stride=1)
print(layer(torch.randn(64, 8, 1, 1)).shape)

这将(3,3)在上采样后打印您的确切形状。

你可以:

  • 使内核更小-而不是4在第一Conv2d解码器使用3或者2甚至1
  • 上采样更多,例如:torch.nn.ConvTranspose2d(8, 64, kernel_size=7, stride=2)会给你7x7
  • 我个人会做什么:在编码器中减少采样,因此输出形状至少4x4或可能是5x5. 如果您将图像压缩得如此之多,则无法将足够的信息编码到一个像素中,即使代码通过,网络也不会学习任何有用的表示。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Pytorch中实现压缩自动编码器?

来自分类Dev

Pytorch for Dummies 中的卷积自编码器

来自分类Dev

在编码器和解码器 keras 上拆分自动编码器

来自分类Dev

在 Keras 中的数值数据集上使用自动编码器

来自分类Dev

自动编码器中的捆绑权重

来自分类Dev

Theano中的反卷积自动编码器

来自分类Dev

什么是caffe自动编码器中的稀疏字段?

来自分类Dev

Keras 中的有状态自动编码器

来自分类Dev

从Encog中的自动编码器抓取编码器/解码器

来自分类Dev

减少自动编码器的损耗

来自分类Dev

LSTM自动编码器问题

来自分类Dev

自动编码器形状

来自分类Dev

Theano:在自动编码器中使用步长(二次采样)重构卷积

来自分类Dev

Theano:在自动编码器中使用步长(二次采样)重构卷积

来自分类Dev

在变分自动编码器中从解码器输入到编码器输出的反向传播

来自分类Dev

如何使用堆叠式自动编码器进行预训练

来自分类Dev

如何使用堆叠式自动编码器进行预训练

来自分类Dev

在两个自动编码器之上堆叠全连接层以进行分类

来自分类Dev

Keras-组合模型如何在自动编码器上仅提取部分

来自分类Dev

使用卷积自动编码器在照片上添加微笑的问题

来自分类Dev

DeepLearning4J:形状在FeedForward自动编码器上不匹配

来自分类Dev

在 tensorflow 上使用自动编码器获取图像名称

来自分类Dev

从LSTM自动编码器输入分类器数据

来自分类Dev

keras 中的级联模型(自动编码器 + 分类器)

来自分类Dev

使用RBM的深度自动编码器

来自分类Dev

Keras自动编码器的精度/损耗不变

来自分类Dev

keras变分自动编码器损失函数

来自分类Dev

用相同的图像训练自动编码器

来自分类Dev

转换自动编码器层级数

Related 相关文章

  1. 1

    如何在Pytorch中实现压缩自动编码器?

  2. 2

    Pytorch for Dummies 中的卷积自编码器

  3. 3

    在编码器和解码器 keras 上拆分自动编码器

  4. 4

    在 Keras 中的数值数据集上使用自动编码器

  5. 5

    自动编码器中的捆绑权重

  6. 6

    Theano中的反卷积自动编码器

  7. 7

    什么是caffe自动编码器中的稀疏字段?

  8. 8

    Keras 中的有状态自动编码器

  9. 9

    从Encog中的自动编码器抓取编码器/解码器

  10. 10

    减少自动编码器的损耗

  11. 11

    LSTM自动编码器问题

  12. 12

    自动编码器形状

  13. 13

    Theano:在自动编码器中使用步长(二次采样)重构卷积

  14. 14

    Theano:在自动编码器中使用步长(二次采样)重构卷积

  15. 15

    在变分自动编码器中从解码器输入到编码器输出的反向传播

  16. 16

    如何使用堆叠式自动编码器进行预训练

  17. 17

    如何使用堆叠式自动编码器进行预训练

  18. 18

    在两个自动编码器之上堆叠全连接层以进行分类

  19. 19

    Keras-组合模型如何在自动编码器上仅提取部分

  20. 20

    使用卷积自动编码器在照片上添加微笑的问题

  21. 21

    DeepLearning4J:形状在FeedForward自动编码器上不匹配

  22. 22

    在 tensorflow 上使用自动编码器获取图像名称

  23. 23

    从LSTM自动编码器输入分类器数据

  24. 24

    keras 中的级联模型(自动编码器 + 分类器)

  25. 25

    使用RBM的深度自动编码器

  26. 26

    Keras自动编码器的精度/损耗不变

  27. 27

    keras变分自动编码器损失函数

  28. 28

    用相同的图像训练自动编码器

  29. 29

    转换自动编码器层级数

热门标签

归档