目标——主要用来进行上采样,使图像形状变大

函数:conv2d_transpose(value, filter, output_shape, strides, padding="SAME", data_format="NHWC", name=None)

Arg:

value:指需要做反卷积的输入图像,它要求是一个Tensor

filter:卷积核,它要求是一个Tensor,具有[filter_height, filter_width, out_channels, in_channels]这样的shape,具体含义是[卷积核的高度,卷积核的宽度,卷积核个数,图像通道数]

output_shape:反卷积操作输出的shape,细心的同学会发现卷积操作是没有这个参数的,那这个参数在这里有什么用呢?下面会解释这个问题

strides:反卷积时在图像每一维的步长,这是一个一维的向量,长度4

padding:string类型的量,只能是"SAME","VALID"其中之一,这个值决定了不同的卷积方式

data_format:string类型的量,'NHWC'和'NCHW'其中之一,这是tensorflow新版本中新加的参数,它说明了value参数的数据格式。'NHWC'指tensorflow标准的数据格式[batch, height, width, in_channels],'NCHW'指Theano的数据格式,[batch, in_channels,height, width],当然默认值是'NHWC'

注意:tf.nn.conv2d中的filter参数,是[filter_height, filter_width, in_channels, out_channels]的形式,而tf.nn.conv2d_transpose中的filter参数,是[filter_height, filter_width, out_channels,in_channels]的形式,注意in_channels和out_channels反过来了!因为两者互为反向,所以输入输出要调换位置

output_shape的作用——不同的图像大小经过相同的卷积操作可能得到相同的图像,反卷积的output_shape就是指定具有这种性子的图片的反卷积后的形状

[1,6,6,3]和[1,5,5,3]的图经过卷积得到了相同的大小,[1,3,3,1],反卷积的output_shape可以指定为[1,6,6,3]和[1,5,5,3]

实例

#反卷积
import tensorflow as tf
import numpy as np
input=np.array([[[[1],[1],[1]],[[1],[1],[1]],[[1],[1],[1]]]])
print(input.shape)
#input=tf.Variable(input,dtype=tf.float32)
input=tf.constant(input,dtype=tf.float32)
weight=np.array([[[[1],[1],[1]],[[1],[1],[1]],[[1],[1],[1]]]])
weight=tf.Variable(weight,dtype=tf.float32)
weight=tf.constant(value=1,dtype=tf.float32,shape=[3,3,1,1])
#out=tf.nn.conv2d_transpose(input,filters=weight,output_shape=1,strides=[1,2,2,1])
out=tf.nn.conv2d_transpose(input,weight,[1,6,6,1],strides=[1,2,2,1])
print(out)
#init=tf.global_variables_initializer()
with tf.Session() as sess:#sess.run(init)out,weight=sess.run([out,weight])print(out)print(weight)

输出

Tensorflow——反卷积相关推荐

  1. python 反卷积(DeConv) tensorflow反卷积(DeConv)(实现原理+手写)

    Tensorflow反卷积(DeConv)实现原理+手写python代码实现反卷积(DeConv) 理解: https://www.zhihu.com/question/43609045/answer ...

  2. Tensorflow反卷积(DeConv)实现原理+手写python代码实现反卷积(DeConv)

    最近看到一个巨牛的人工智能教程,分享一下给大家.教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家.平时碎片时间可以当小说看,[点这里可以去膜拜一下大神的" ...

  3. tensorflow 卷积、反卷积形式的去噪自编码器

    tensorflow 卷积.反卷积形式的去噪自编码器 对于去噪自编码器,网上好多都是利用全连接神经网络进行构建,我自己写了一个卷积.反卷积形式的去噪自编码器,其中的参数调优如果有兴趣的话,可以自行修改 ...

  4. tensorflow:双线性插值反卷积

    首先生成3×3×3的黑色图片 """ 生成3×3×3黑色图像 """ def produce_image():size = 3x, y = ...

  5. tensorflow实现反卷积

    先看ogrid用法 from numpy import ogrid,repeat,newaxis from skimage import io import numpy as np size=3 x, ...

  6. tensorflow一维卷积输入_深度学习中的反卷积(Transposed Convolution)

    反卷积(Transposed Convolution)是一种图像上采样(UpSample)的方法,在DCGAN中用它来将随机采样的值转换为一张完整的图像. DCGAN生成手写数字.图片来源[5] Tr ...

  7. Tensorflow卷积与反卷积(目前看到的最详细的解释)

    卷积操作 tf.nn.conv2d(input, filter, strides, padding, use_cudnn_on_gpu=None, name=None) 除去name参数用以指定该操作 ...

  8. 通过图+代码来理解tensorflow中反卷积

    反卷积这个东西老是容易忘,而且很多文章理论讲的很详细,但反卷积实际怎么操作的却没有概念,因此想以自己喜欢的方式(直接上图和代码)写一篇,以便随时翻阅. 卷积 tf中的padding方式有两种,SAME ...

  9. 深度学习 tensorflow tf.layers.conv2d_transpose 反卷积 上采样

    参数 conv2d_transpose( inputs, filters, kernel_size, strides=(1, 1), padding='valid', data_format='cha ...

最新文章

  1. commons-lang常用工具类StringEscapeUtils使用--转
  2. pytorch torch.Tensor.numpy()(从张量创建一个numpy数组,数组和张量共享相同内存)
  3. 牛客网【每日一题】3月25日 tokitsukaze and Soldier
  4. 同花顺如何切换k线_K线之形态学:浅谈纸白银产品该如何去做好交易?
  5. oracle 9 插入日期,oracle date日期类型 精析
  6. ubuntu安装sublime3并配置python3环境
  7. CV方向介绍 | 基于自然语言的跨模态行人ReID的SOTA方法简述(下)
  8. nginx+tomcat+redis实现session共享
  9. javascript xml转json
  10. 古谚、评论与论断、名篇与名言
  11. 计算机软件行业职业病,IT行业的六大职业病,看看你有没有中
  12. linux下的PDF阅读器
  13. QTcpSocket实现客户端
  14. 置信区间的置信区间_什么是置信区间,为什么人们使用它们?
  15. 如何在Excel 2013中使用公式编辑器
  16. 熟读100句英文,记7000单词
  17. fluent柱坐标系设定_Fluent中速度入口条件要设置哪些参数
  18. 个人日记开发最终实现
  19. 移动软件开发之小程序开发demo1
  20. mysql utf-8不支持生僻字_关于 MySQL UTF8 编码下生僻字符插入失败/假死问题的分析...

热门文章

  1. 微型计算机海关编码是,海关HS编码对照表..doc
  2. 遗传算法神经网络预测彩票
  3. 冯诺依曼计算机格言,约翰.冯.诺依曼名言
  4. html设置播放器位置,【关于Flash网页播放器的定位与浮动的HTML代码】
  5. 分享50个漂亮的双屏桌面壁纸资源(上篇)
  6. CSDN商品分销测试
  7. 三国赵云传1---加血代码
  8. django 基础安装配置流程
  9. SSM项目-OA报销单管理系统(三)
  10. 牛顿黏度定律【Newton's Law of Viscosity】