• 【TensorFlow入门完全指南】神经网络篇·自动编码机


    自动编码机(Autoencoder)属于非监督学习,不需要对训练样本进行标记。自动编码机(Autoencoder)由三层网络组成,其中输入层神经元数量与输出层神经元数量相等,中间层神经元数量少于输入层和输出层。在网络训练期间,对每个训练样本,经过网络会在输出层产生一个新的信号,网络学习的目的就是使输出信号与输入信号尽量相似。自动编码机(Autoencoder)训练结束之后,其可以由两部分组成,首先是输入层和中间层,我们可以用这个网络来对信号进行压缩;其次是中间层和输出层,我们可以将压缩的信号进行还原。

    首先我们导入mnist数据集,以one_hot模式加载,这样自动编码机压缩后的编码可能和distributional model有相似之处。

    设置网络的参数、输入、权重初始值、偏差初始值。

    之后我们定义三层网络,输入到中间值是encoder,中间值到输出是decoder,前一层的值通过权重、偏差传到后一层网络。

    然后用两行代码实例化模型。

    之后,我们将输出赋值到y_pred,再把标签赋值到y_true,通过计算平方损失来衡量cost,优化器使用了RMSPropOptimizer,是一种新的优化方式。

    之后我们初始所有变量,下面开始训练。

    首先我们初始化计算图,指定了batch的数量。在每一次迭代中(外层循环),我们在batch里进行内层循环,将optimizer,cost告诉suss.run,将训练材料喂给suss.run。

    这段是将自动编码机的效果以图像的方式显示出来。

  • 相关阅读:
    Unobtrusive Ajax
    Asp.Net Web API 2(入门)第一课
    c# in depth之泛型的实现
    ASP.NET MVC 單元測試系列
    菜单栏
    【C++ 中文手册】即将完成
    AspNet MVC3中过滤器 + 实例
    虚拟机安装Linux中常见异常及解决办法
    webbrowser打开新窗口事件+=
    Java Bad version
  • 原文地址:https://www.cnblogs.com/ldzhangyx/p/7245970.html
Copyright © 2020-2023  润新知