【问题标题】:Extracting hidden representations from an autoencoder using Pytorch使用 Pytorch 从自动编码器中提取隐藏表示
【发布时间】:2021-07-01 13:44:17
【问题描述】:

使用 PyTorch 训练自动编码器后,如何在某个隐藏级别提取输入特征的低维嵌入?

【问题讨论】:

    标签: pytorch autoencoder


    【解决方案1】:

    您可以定义您的模型,使其可选地返回在前向传递期间计算的中间 pytorch 变量。简单例子:

    class Autoencoder(nn.Module):
        def __init__(self, input_size, hidden_size):
        super().__init__()
        self.encoder = nn.Sequential(
        nn.Linear(input_size, hidden_size),
        nn.ReLU(),
        nn.Linear(hidden_size, 3)) #reduce the size
    
        self.decoder = nn.Sequential(
        nn.Linear(3, hidden_size),
        nn.ReLU(),
        nn.Linear(hidden_size, input_size),
        nn.ReLU()) #reduce the size
    
    def forward(self, x, return_encoding = False):
        encoded = self.encoder(x)
        decoded = self.decoder(encoded)
    
        if return_encoding:
            return decoded,encoded
        return decoded
    

    【讨论】:

    • 太好了,对不起,我对 PyTorch 还很陌生,因此我试图用双手环绕它。非常感谢 :) 在最后的线性层之后,您是否错过了编码器中的另一个 nn.ReLU()?
    • 听起来不错。如果这项工作继续进行并接受答案以帮助保持 SO 井井有条,谢谢!
    • 接受!如果你在编码器中忘记了一个额外的 nn.ReLU() 或者你没有放,你能准确地说一下吗?
    • 我刚刚从您的其他问题中复制了这个网络架构。在编码器中的最终全连接层之后,您可能需要一个激活函数
    • 知道了,所以我想我忘了在编码器部分放一个最终激活函数。非常感谢!!
    猜你喜欢
    • 2021-05-22
    • 2021-06-01
    • 1970-01-01
    • 2020-01-23
    • 1970-01-01
    • 2020-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多