美文网首页
从无到有跑通第一个自编码程序

从无到有跑通第一个自编码程序

作者: 科技州与数据州 | 来源:发表于2020-12-05 09:38 被阅读0次

大家好,这节课,我们给大家介绍一下怎样跑通第一个自编码神经网络程序。

一、准备工作

这里我们需要做好几个准备工作:

1.运行环境:Anaconda 3, Spyder 3.3.6, Python 3.7

2.安装软件包有:tensorflow,keras。

二、网络结构

现在我们就要构建一个最简单的自编码网络,我们使用全连接神经网络来构建自编码学习结构。

网络结构很简单,就是一层全连接编码层,一层全连接解码层,其它复杂的结构先不涉及。

三、自编码程序详解

接下来就进入实战了,我们分步来讲解程序。

1.构建自编码网络结构。

首先是导入keras模块和layers模块,供后面程序使用。

接下来就是定义了一个全连接的自编码网络结构。

其中输入为784维的1维数据。

编码层的参数是输出大小32维,激活函数为relu。解码层为输出大小784,激活函数为sigmoid。

然后把输入input_img和训练输出decoded输入到模型。

最后我们配置模型,使用二进制交叉熵作为损失函数,使用Adam作为优化器。

2.使用Mnist作为数据集。

现在我们来准备输入数据集。我们使用Mnist的数据集。

首先导入mnist数据集。

然后我们将所有值规范化0到1之间的范围,并将28x28图像展平成大小为784的向量。

3.训练模型

现在我们就来训练自动编码器。其中的参数包括训练50个周期,批大小为256,训练时打乱数据集。

4.检验效果

在训练了50个周期后,自动编码器基本上达到了一个稳定的状态。我们可以尝试可视化重构的输入和编码的表示。我们将使用Matplotlib。

首先,我们使用predict函数来检验模型处理测试集的效果

然后,我们使用matplot来画出了原始图像和我们模型处理图像的效果,

最后结果是这样的:

从整体看效果还是不错的。通过这么简单一个网络结构,处理的效果与原图相比基本符合。

下面我们再来给大家跑一遍程序。

好了,今天的课程就到这里。下一节,我们将给大家讲解更复杂的深度学习网络结构。

如果喜欢请点赞,或关注我交流。

相关文章

网友评论

      本文标题:从无到有跑通第一个自编码程序

      本文链接:https://www.haomeiwen.com/subject/feowwktx.html