返回首页
苏宁会员
购物车 0
易付宝
手机苏宁
苏宁头条 >  文章详情

用Pytorch构建一个自动解码器

搞机汇1

搞机汇1  | 三天前  | 3155

本文为 AI 研习社编译的技术博客,原标题 :

Building Autoencoder in Pytorch

作者 | Vipul Vaibhaw

翻译 | 邓普斯•杰弗、酱番梨、向日魁

校对 | 邓普斯•杰弗        整理 | 菠萝妹

原文链接:

https://medium.com/@vaibhaw.vipul/building-autoencoder-in-pytorch-34052d1d280c

这篇文章中,我们将利用 CIFAR-10 数据集通过 Pytorch 构建一个简单的卷积自编码器。

引用维基百科的定义,”自编码器是一种人工神经网络,在无监督学习中用于有效编码。自编码的目的是通过一组数据学习出一种特征(编码),通常用于降维。“

为了建立一个自编码器,我们需要三件事:一个编码函数,一个解码函数,和一个衡量压缩特征和解压缩特征间信息损失的距离函数(也称为损失函数)。

如果我们要在 Pytorch 中编写自动编码器,我们需要有一个自动编码器类,并且必须使用super()从父类继承__init__。 

我们通过导入必要的 Pytorch 模块开始编写卷积自动编码器。  

现在我们设置下载CIFAR-10数据集并将其转换应用于它。

我们对数据集应用了两个转换 - 

ToTensor() - 它将 PIL图像或者 [0,255]范围内的 numpy.ndarray(H x W x C)转换成 Torch 。 [0.0,1.0]范围内的形状 FloatTensor。

Normalize() - 使用均值和标准差对张量图像进行标准化。

基本上在应用变换之后,我们得到(-2,2)范围内的值 。 

你可以在这里阅读更多关于上述变换的内容。 现在下一步是编写自动编码类。

卷积编码器神经网络具有一些 Conv2d,并且我们有使用ReLU激活功能正在被使用。 现在我们定义一些参数 -  

然后是时候设置训练模型了。我们调用模型并将其配置为在 cpu 上运行。如果你有一个 gpu,你可以使用 cuda。 

我们使用 Mean Squared Error 作为损失函数。对于优化器,我们使用 adam。

让咱们开始训练吧!

这是我写的一个简单的博客,展示了如何在 Pytorch 中构建自动编码器。 但是,如果要在模型中包含 MaxPool2d(),请确保设置 return_indices = True,然后在解码器中使用 MaxUnpool2d()图层。  

持续的学习和分享,可以在 github,Stack Overflow,LinkedIn,或者 Twitter 上 Follow 我。 

想要继续查看该篇文章相关链接和参考文献?

长按链接点击打开或点击【用Pytorch构建一个自动解码器】:

https://ai.yanxishe.com/page/TextTranslation/1284

AI研习社每日更新精彩内容,观看更多精彩内容:雷锋网雷锋网雷锋网

等你来译:

发表评论

发表
搞机汇1

搞机汇1

你关心的,就是我关注的。

粉丝 1039

daren
热卖爆款