AutoEncoder简单很多,简写一下。主要分两个部分,Encoder和Decoder,Encoder是降维的过程,Decoder是将降维的结果升维,AutoEncoder希望升维的结果与原始数据尽可能一致,二者共同构成一个前馈的网络,训练完后的中间结果就是降维结果。Encoder和Decoder的构成可以是线性的,也可以是非线性的,可以自由设计。

看代码更明白一些:

class AutoEncoder(nn.Module):def __init__(self):super(AutoEncoder, self).__init__()# 降维self.encoder = nn.Sequential(nn.Linear(28*28, 128),nn.Tanh(),nn.Linear(128, 64),nn.Tanh(),nn.Linear(64, 12),nn.Tanh(),nn.Linear(12, 3), )# 升维self.decoder = nn.Sequential(nn.Linear(3, 12),nn.Tanh(),nn.Linear(12, 64),nn.Tanh(),nn.Linear(64, 128),nn.Tanh(),nn.Linear(128, 28*28),nn.Sigmoid(), # 激励函数让输出值在 (0, 1),因为原始数据transform到了(0,1))def forward(self, x):encoded = self.encoder(x)decoded = self.decoder(encoded)return encoded, decoded #返回编码结果和解码结果autoencoder = AutoEncoder()
optimizer = torch.optim.Adam(autoencoder.parameters(), lr=0.1)
loss_func = nn.MSELoss()
for epoch in range(EPOCH):for step, (x, b_label) in enumerate(train_loader):b_x = x.view(-1, 28*28) #原始数据b_y = x.view(-1, 28*28) #原始数据encoded, decoded = autoencoder(b_x)#原始数据放到网络中oss = loss_func(decoded, b_y) #计算损失optimizer.zero_grad() loss.backward() optimizer.step()

降维系列之 AutoEncoder 自动编码器相关推荐

  1. Autoencoder自动编码器的发展

    Autoencoder自动编码器的发展 0.玻尔兹曼机中的测试实验--编码问题(1985) 0.1.玻尔兹曼机 0.2.受限的玻尔兹曼机 0.3.编码问题--自动编码器雏形 1.反向传播中的仿真--单 ...

  2. keras自动编码器实现系列之卷积自动编码器

    图片的自动编码很容易就想到用卷积神经网络做为编码-解码器.在实际的操作中, 也经常使用卷积自动编码器去解决图像编码问题,而且非常有效. 下面通过**keras**完成简单的卷积自动编码. 编码器有堆叠 ...

  3. Deep Learning(深度学习)学习笔记整理系列之(八)

     Deep Learning(深度学习)学习笔记整理系列之(八) 分类: Deep Learning 机器学习 Linux驱动2013-04-10 11:4257652人阅读评论(25)收藏举报 ...

  4. 【转载】Deep Learning(深度学习)学习笔记整理系列

    Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0  2013-0 ...

  5. Deep Learning(深度学习)学习笔记整理系列 | @Get社区

    Deep Learning(深度学习)学习笔记整理系列 | @Get社区 Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net ...

  6. Deep Learning(深度学习)学习笔记整理系列

    一.概述 Artificial Intelligence,也就是人工智能,就像长生不老和星际漫游一样,是人类最美好的梦想之一.虽然计算机技术已经取得了长足的进步,但是到目前为止,还没有一台电脑能产生& ...

  7. Deep Learning(深度学习)学习笔记整理系列之(二)

    Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...

  8. Deep Learning(深度学习)学习笔记整理系列 一

    声明: 1)该Deep Learning的学习系列是整理自网上很大牛和机器学习专家所无私奉献的资料的.具体引用的资料请看参考文献.具体的版本声明也参考原文献. 2)本文仅供学术交流,非商用.所以每一部 ...

  9. Deep Learning(深度学习)学习笔记整理系列三

    Deep Learning(深度学习)学习笔记整理系列 声明: 1)该Deep Learning的学习系列是整理自网上很大牛和机器学习专家所无私奉献的资料的.具体引用的资料请看参考文献.具体的版本声明 ...

  10. Deep Learning(深度学习)学习笔记整理系列之常用模型

    Deep Learning(深度学习)学习笔记整理系列之常用模型(四.五.六.七) 九.Deep Learning的常用模型或者方法 9.1.AutoEncoder自动编码器 Deep Learnin ...

最新文章

  1. echarts datazoom 显示的位置设置
  2. linux+shell+整数计算器,Shell(())实现对整数进行数学运算
  3. python创建一个新的txt文件-如何在python中编辑文本文件并创建一个新的文本文件?...
  4. TextView使用实例
  5. python读取配置文件简单封装
  6. 移动端怎么设计适合的表单?
  7. seaborn.distplot()
  8. FLEX4 在组件中自定义ToolTip样式
  9. Pwn2Own 2020 曝出的Linux 内核漏洞已修复
  10. python global用法_Python 虚拟环境全知道
  11. css中如何设置字体
  12. ios input框输入白屏
  13. linux sata硬盘热交换,学员原创-杨欢最详细西数硬盘热交换流程
  14. c语言整人小程序格式,【C语言】整人小程序
  15. 【蓝桥杯嵌入式】资源拓展板模块详解——数码管
  16. 仿9GAG制作过程(二)
  17. 计算机 桌面 休眠,电脑自动休眠在哪设置的_教你让电脑自动休眠状态的方法-系统城...
  18. 7月上热搜50次!周杰伦新专辑1天1.5亿!歌手新歌爆红的营销路径
  19. Xposed原理分析
  20. 【BZOJ1001】狼抓兔子

热门文章

  1. 学习之路二十七:三种序列化方式的一些注意点
  2. 程序员面试题100题第14题-圆圈中最后剩下的数字
  3. 宝塔面板修改端口号无法登陆解决方案
  4. 单片机c语言指针赋地址,[转载]单片机c语言指针和取地址以及类型转换
  5. mysql损坏打不开_mysql 断电导致表打不开解决方案
  6. 虚拟机与ubuntu(二):连接访问
  7. Python[装饰器]
  8. 自动驾驶7-1 CARLA 安装指南
  9. 算法:匹配有效的括号20. Valid Parentheses
  10. 著名线性代数教授 85岁麻省理工学院教授,给2020本科生教授《线性代数入门》