conv

[转载]dilated conv带孔卷积、pooling层提高感受野 反卷积 的理解

匿名 (未验证) 提交于 2019-12-03 00:22:01
首先放链接:https://www.zhihu.com/question/54149221 首先,初次接触dilated conv带孔卷积是在deeplab网络结构里,做图像分割。 本科毕设首次接触图像分割,当时用的是caffe框架,fcn-8s实现。但是,它会把图像pooling5次,最终的特征图尺寸缩小了32倍,然后结合倒数后两层的信息(相当于尺寸扩大4倍了),然后再反卷积一下子扩大8倍至原始尺寸,这会导致信息损失的。。。(还有的是,防止缩小32倍后的特征图太小,会首先对输入图像padding很多0,扩大尺寸。这显然加进去了很多噪声啊。。。)所以为了避免以上损失,deeplab的结构是:pooling3次而已,尺寸缩小了8倍。但是接着问题又来了,pooling少了,感受野变小了(这个下面就有解释说啦~),所以,deeplab通过使用带孔卷积来保证感受野。具体原理,往下看: pooling为什么可以提高感受野? 得这样理解:首先它第一个作用是降低feature map的尺寸,减少需要训练的参数;其次,因为有缩小的作用,所以之前的4个像素点,现在压缩成1个。那么,相当于我透过这1个点,就可以看到前面的4个点,这不就是把当前map的感受野一下子放大了嘛(我是这样理解的a。。。)。 所以就有以下结论:pooling降维减少参数量,并且增大感受野。 但是,在图像分割问题中,如fcn8s

部分AlexNet构建

匿名 (未验证) 提交于 2019-12-03 00:22:01
取自于TensorFlow实战 ''' 本文代码中的AlexNet不是完整的,书中也只给了卷积网络的构建,全连接层是博主自己加的,后面会分享完整的AlexNet 因为设备运算速度原因,只计算前向和反向的计算时间。 AlexNet使用了五个卷积层,各卷积层使用了relu、LRN,maxpool等trick 每层的卷积核大小和卷积步长需要经验和实践尝试 LRN层现在很少使用了,因为效果不是很明显,可以不加 maxpool层有ksize=[1,3,3,1],strides=[1,2,2,1],有重叠,可以增加特征的丰富性 ''' from datetime import datetime import tensorflow as tf import math import time #设置TensorFlow的CPU运算优先级 import os os.environ['TF_CPP_MIN_LOG_LEVEL']='2' #设置训练参数 batch_size=128 num_batches=100 #节点信息打印 def print_activation(t): print(t.op.name,' ',t.get_shape().as_list()) #网络构建 def inference(images): #参数信息列表 parameters=[] #第一卷积层 with tf

Faster R-CNN学习笔记

匿名 (未验证) 提交于 2019-12-03 00:18:01
论文大部分转载自:https://blog.csdn.net/WZZ18191171661/article/details/79439212 论文题目 : Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks 论文链接 : 论文链接 论文代码 :Matlab版本 点击此处 ,Python版本 点击此处 作为一个目标检测领域的baseline算法, Faster-rcnn 值得去仔细理解里面的细节 按照 总分总 的顺序剖析。 图2 Faster-rcnn架构图(精简版) 图3 Faster-rcnn架构图(细节版) 一、目标检测的总体框架 图4 目标检测框架图 观察图4,你可以发现目标检测的框架中包含4个关键模块,包括region proposal(生成ROI)、feature extraction(特征提取网络)、classification(ROI分类)、regression(ROI回归)。而faster-rcnn利用一个神经网络将这4个模块结合起来,训练了一个端到端的网络。通过观察图1、图2、图3,我们可以得到如下的结论:Faster-rcnn主要包括4个关键模块, 特征提取网络、生成ROI、ROI分类、ROI回归 。 特征提取网络

gan6

匿名 (未验证) 提交于 2019-12-03 00:15:02
Free-Form Image Inpainting with Gated Convolution 转:https://zhuanlan.zhihu.com/p/82514925 ժҪ: 不同于普通卷积,将每一个输入的pixel都当做有效的输入,作者提出了gated convolution,为所有层每一个维度的位置提供了一种可学习的,动态的特征选择机制.并提出了SN-Patch GAN来稳定GAN的训练,学习 网络结构: coarse network将global and local 的inpainting网络改造,输入为原图,mask和带有sketch的mask三者融合为一,下采样到原尺寸的1/4,然后经过dilated conv,这里使用的conv都是gated conv,refinement network跟contextual attention的refinement network一致. 判别器不再是使用global and local context discriminator两个判别器,而是使用了SN-Patch GAN,判别器输出一个h x w x c的特征向量,以此来判断真假 details: gated conv: 普通卷积是将每一个像素都当成有效值去计算的,这个特性适用于分类和检测任务,但是不适用于inpainting任务

gan6

只谈情不闲聊 提交于 2019-12-01 09:50:24
Free-Form Image Inpainting with Gated Convolution 转:https://zhuanlan.zhihu.com/p/82514925 摘要: 不同于普通卷积,将每一个输入的pixel都当做有效的输入,作者提出了gated convolution,为所有层每一个维度的位置提供了一种可学习的,动态的特征选择机制.并提出了SN-Patch GAN来稳定GAN的训练,学习 网络结构: coarse network将global and local 的inpainting网络改造,输入为原图,mask和带有sketch的mask三者融合为一,下采样到原尺寸的1/4,然后经过dilated conv,这里使用的conv都是gated conv,refinement network跟contextual attention的refinement network一致. 判别器不再是使用global and local context discriminator两个判别器,而是使用了SN-Patch GAN,判别器输出一个h x w x c的特征向量,以此来判断真假 details: gated conv: 普通卷积是将每一个像素都当成有效值去计算的,这个特性适用于分类和检测任务,但是不适用于inpainting任务

tensorflow layout optimizer && conv autotune

ⅰ亾dé卋堺 提交于 2019-11-29 02:23:17
1.Layout Optimizer   Tensorflow有几种图优化的方法,其中一种较为重要的是layout optimizer,核心思想是调整tensor的layout(NHWC to NCHW),原因在于在较早的cudnn版本中的API是不支持NHWC格式的输入的,目前cudnn7.0版本已经能支持NHWC格式输入了,但经过实测发现以NHWC格式为输入调用cudnn API的速度是不如NCHW的(在k80上实测,lenet-5的两个卷积层,使用NHWC计算需要平均约2.5ms,使用NCHW只需要1.8ms),所以Tensorflow layout的作用就是将NHWC转换为NCHW,从而加速网络的计算速度。   在使用layout转换的时候,Tensorflow会监测网络的结构,如果发现存在调用cudnn计算的节点,就会在节点前加一个transpose,将tensor转换为NCHW格式,然后经过所有由cudnn计算的节点及计算方式与layout无关的节点(比如relu的计算就与layout无关,但是reduce_mean就与layout有关)之后,再加一个transpose将tensor转换回来。以resnet_v2为例: https://github.com/tensorpack/tensorpack/blob/master/examples/ResNet/cifar10

逆卷积的详细解释ConvTranspose2d(fractionally-strided convolutions)

我怕爱的太早我们不能终老 提交于 2019-11-28 08:02:53
上采样(upsampling)一般包括2种方式: Resize,如双线性插值直接缩放,类似于图像缩放,概念可见 最邻近插值算法和双线性插值算法——图像缩放 Deconvolution,也叫Transposed Convolution,可见 逆卷积的详细解释ConvTranspose2d(fractionally-strided convolutions) 第二种方法如何用pytorch实现可见上面的链接 这里想要介绍的是如何使用pytorch实现第一种方法: 有两个模块都支持该上采样的实现,一个是torch.nn模块,详情可见: pytorch torch.nn 实现上采样——nn.Upsample (但是现在这种方法已经不推荐使用了,最好使用下面的方法) 一个是torch.nn.funtional模块,详情可见: pytorch torch.nn.functional实现插值和上采样 举例: 1)使用torch.nn模块实现一个生成器为: import torch.nn as nn import torch.nn.functional as F class ConvLayer(nn.Module): def __init__(self, in_channels, out_channels, kernel_size, stride): super(ConvLayer, self).

[转帖]linux命令dd

拈花ヽ惹草 提交于 2019-11-27 21:53:45
linux命令dd dd 是diskdump 的含义 之前学习过 总是记不住 用的还是少. http://embeddedlinux.org.cn/emb-linux/entry-level/201504/25-3100.html dd 使用dd这个linux命令可以创建一定大小文件。 linux创建文件命令:dd命令 把指定的输入文件拷贝到指定的输出文件中,并且在拷贝的过程中可以进行格式转换。语法: CODE:[Copy to clipboard]dd 〔选项〕 QUOTE: if =输入文件(或设备名称)。 of =输出文件(或设备名称)。 ibs = bytes 一次读取bytes字节,即读入缓冲区的字节数。 skip = blocks 跳过读入缓冲区开头的ibs*blocks块。 obs = bytes 一次写入bytes字节,即写 入缓冲区的字节数。 bs = bytes 同时设置读/写缓冲区的字节数(等于设置obs和obs)。 cbs = bytes 一次转换bytes字节。 count = blocks 只拷贝输入的blocks块。 conv = ASCII 把EBCDIC码转换为ASCII码。 conv = ebcdic 把ASCII码转换为EBCDIC码。 conv = ibm 把ASCII码转换为alternate EBCDIC码。 conv = blick

【论文笔记】Non-local Neural Networks

回眸只為那壹抹淺笑 提交于 2019-11-27 14:45:52
Paper: https://arxiv.org/abs/1711.07971v1 Author:Xiaolong Wang, Ross Girshick, Abhinav Gupta, Kaiming He (CMU, FAIR) 0.简述 convolution和recurrent都是对局部区域进行的操作,所以它们是典型的local operations。受计算机视觉中经典的非局部均值(non-local means)的启发,本文提出一种non-local operations用于捕获长距离依赖(long-range dependencies),即如何建立图像上两个有一定距离的像素之间的联系,如何建立视频里两帧的联系,如何建立一段话中不同词的联系等。 non-local operations在计算某个位置的响应时,是考虑所有位置features的加权——所有位置可以是空间的,时间的,时空的。这个结构可以被插入到很多计算机视觉结构中,在视频分类的任务上,non-local模型在Kinetics和Charades上都达到了最好的结果。在图像识别的任务上,non-local模型提高了COCO上物体检测/物体分割/姿态估计等任务的结果。 1. Non-local Neural Networks 1.1 定义 按照非局部均值的定义,我们定义在深度神经网络中的non-local操作如下:

Tensorflow版Faster RCNN源码解析(TFFRCNN) (15) VGGnet_train.py

徘徊边缘 提交于 2019-11-26 23:30:57
本blog为github上 CharlesShang/TFFRCNN 版源码解析系列代码笔记 --------------- 个人学习笔记 --------------- ---------------- 本文作者吴疆 -------------- ------ 点击此处链接至博客园原文 ------ 与VGGnet_test.py相比,VGGnet_train.py需要馈入更多的变量,与train.py中train_model(...)函数定义的feed_dict相照应,此外,还增加了name为rpn-data、roi-data、drop6和drop7的网络处理层, keep_prob 为dropout的比例 # train.py中train_model(...)函数定义的feed_dict feed_dict={ self.net.data: blobs['data'], self.net.im_info: blobs['im_info'], self.net.keep_prob: 0.5, self.net.gt_boxes: blobs['gt_boxes'], self.net.gt_ishard: blobs['gt_ishard'], self.net.dontcare_areas: blobs['dontcare_areas'] } VGGnet_train