CNN Decoder, 需要做Upsampling:

金字塔结构收缩的dimensions要膨胀回来,处理方法就是Upsampling,直接复制(容易产生棋盘条纹),或者做内插interpolation,然后再做convolution:

# define the NN architecture
class ConvAutoencoder(nn.Module):def __init__(self):super(ConvAutoencoder, self).__init__()## encoder layers ### conv layer (depth from 1 --> 16), 3x3 kernelsself.conv1 = nn.Conv2d(1, 16, 3, padding=1)  # conv layer (depth from 16 --> 8), 3x3 kernelsself.conv2 = nn.Conv2d(16, 4, 3, padding=1)# pooling layer to reduce x-y dims by two; kernel and stride of 2self.pool = nn.MaxPool2d(2, 2)## decoder layers ##self.conv4 = nn.Conv2d(4, 16, 3, padding=1)self.conv5 = nn.Conv2d(16, 1, 3, padding=1)def forward(self, x):# add layer, with relu activation function# and maxpooling afterx = F.relu(self.conv1(x))x = self.pool(x)# add hidden layer, with relu activation functionx = F.relu(self.conv2(x))x = self.pool(x)  # compressed representation## decoder # upsample, followed by a conv layer, with relu activation function  # this function is called `interpolate` in some PyTorch versionsx = F.upsample(x, scale_factor=2, mode='nearest')x = F.relu(self.conv4(x))# upsample again, output should have a sigmoid appliedx = F.upsample(x, scale_factor=2, mode='nearest')x = F.sigmoid(self.conv5(x))return x

pytorch包含了nn.ConvTranspose2d直接处理的办法:

# define the NN architecture
class ConvAutoencoder(nn.Module):def __init__(self):super(ConvAutoencoder, self).__init__()## encoder layers ### conv layer (depth from 1 --> 16), 3x3 kernelsself.conv1 = nn.Conv2d(1, 16, 3, padding=1)  # conv layer (depth from 16 --> 4), 3x3 kernelsself.conv2 = nn.Conv2d(16, 4, 3, padding=1)# pooling layer to reduce x-y dims by two; kernel and stride of 2self.pool = nn.MaxPool2d(2, 2)## decoder layers #### a kernel of 2 and a stride of 2 will increase the spatial dims by 2self.t_conv1 = nn.ConvTranspose2d(4, 16, 2, stride=2)self.t_conv2 = nn.ConvTranspose2d(16, 1, 2, stride=2)def forward(self, x):## encode ### add hidden layers with relu activation function# and maxpooling afterx = F.relu(self.conv1(x))x = self.pool(x)# add second hidden layerx = F.relu(self.conv2(x))x = self.pool(x)  # compressed representation## decode ### add transpose conv layers, with relu activation functionx = F.relu(self.t_conv1(x))# output layer (with sigmoid for scaling from 0 to 1)x = F.sigmoid(self.t_conv2(x))return x

深度学总结:CNN Decoder, Upsampling的处理相关推荐

  1. 深度卷积网络CNN与图像语义分割

    转载请注明出处:  http://xiahouzuoxin.github.io/notes/html/深度卷积网络CNN与图像语义分割.html 级别1:DL快速上手 级别2:从Caffe着手实践 级 ...

  2. cnn是深度神经网络吗,cnn神经网络算法

    1.深度学习和有效学习的区别 深度学习和有效学习的区别分别是: 1.深度学习是:Deep Learning,是一种机器学习的技术,由于深度学习在现代机器学习中的比重和价值非常巨大,因此常常将深度学习单 ...

  3. 最佳深度学习书5本推荐给你

    深度学习(deep learning)通过其他较简单的表示来表达复杂表示,解决了表示学习中的核心问题. 深度学习让计算机通过较简单的概念构建复杂的概念.图1.2展示了深度学习系统如何通过组合较简单的概 ...

  4. 【深度学习】CNN神经网络应用(用于亚洲大黄蜂分类)

    [深度学习]CNN神经网络应用(用于亚洲大黄蜂分类) 文章目录 1 概述 2 假设条件 3 网络结构 4 数据集和参数 5 Asian hornet classification experiment ...

  5. [caffe]深度学习之CNN检测object detection方法摘要介绍

    [caffe]深度学习之CNN检测object detection方法摘要介绍  2015-08-17 17:44 3276人阅读 评论(1) 收藏 举报 一两年cnn在检测这块的发展突飞猛进,下面详 ...

  6. [Python人工智能] 三十.Keras深度学习构建CNN识别阿拉伯手写文字图像

    从本专栏开始,作者正式研究Python深度学习.神经网络及人工智能相关知识.前一篇文章分享了生成对抗网络GAN的基础知识,包括什么是GAN.常用算法(CGAN.DCGAN.infoGAN.WGAN). ...

  7. [Python图像识别] 四十七.Keras深度学习构建CNN识别阿拉伯手写文字图像

    该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子.图像增强技术.图像分割等,后期结合深度学习研究图像识别 ...

  8. 毕业设计之 - 基于深度学的图像修复 图像补全

    1 前言 Hi,大家好,这里是丹成学长,今天向大家介绍 基于深度学的图像修复 图像补全 大家可用于 毕业设计 2 什么是图像内容填充修复 内容识别填充(译注: Content-aware fill , ...

  9. Tensorflow书推荐,深度学习书推荐

    关键词:Tensorflow书推荐,深度学习书推荐 <TensorFlow深度学习应用实践> 作者:王晓华 <21个项目玩转深度学习 基于TensorFlowr的实践详解> 作 ...

最新文章

  1. MSBuild + MSILInect实现编译时AOP-改变前后对比
  2. 20165212第七周学习总结
  3. SP Session
  4. Java8 EnumSet 源码简单分析
  5. 酷冷至尊官方psu计算工具_一款精致的电源,轻松应付高端配置、酷冷至尊MWE750金牌全模组电源 体验...
  6. HttpContext
  7. 深入理解C语言指针的奥秘(转)
  8. 【Machine Learning 三】线性代数回顾:矩阵,矩阵运算,向量,转置
  9. python计算商品总价_python根据京东商品url获取产品价格
  10. Oracle Trunc
  11. mysql删除root链接_删除mysql中root用户恢复方法
  12. 使用PS创造非凡动物形象
  13. 聚合影视大全android版,聚合影视App下载-聚合影视大全2021最新版 1.5.0 安卓版-我游网...
  14. zotero无法同步caj文件 attachments skipped because they are top-level items, file does not exist
  15. Excel表格转JPG等多种图片格式(简单粗暴)
  16. 二元/多元函数连续 极限存在问题
  17. 【多字典公共键】快速找到多个字典的公共键及非公共键
  18. HTML 简单日历制作方法
  19. 祭出黑白共济战略,海信、TCL、创维、康佳能否打开增量消费市场?
  20. 一步一步搭建Redis + Keepalived主从高可用之Keepalived安装配置(三)

热门文章

  1. 输入文件c语言程序,C语言程序设计 对文件的输入输出.ppt
  2. matlab 实验6 高层绘图操作,实验06_高层绘图操作(第5章).doc
  3. 企业 MySQL 优化实施方案
  4. 在计算机硬盘中没有什么,如果在打开计算机后找不到硬盘,应该怎么办?
  5. 计算机科学与技术属于教育技术学么,计算机教育-计算机教育与教育技术学有什么不同吗?我学的专业是计算机教育,我想 爱问知识人...
  6. makefile文件编写_九图记住Makefile
  7. 微电子学与计算机期刊投稿模板,微电子学与计算机投稿要求
  8. 【SSL】weblogic 12c自带默认证书库密码
  9. 能表示分数的计算机,分数计算器的实现
  10. 两个条件一个为false就运行_Python入门基础实例讲解——两个数字比大小,并输出最大值...