深度学习面试题25:分离卷积(separable卷积)

目录

  举例

  单个张量与多个卷积核的分离卷积

  参考资料



举例

分离卷积就是先在深度上分别卷积,然后再进行卷积,对应代码为:

import tensorflow as tf

# [batch, in_height, in_width, in_channels]
input =tf.reshape(tf.constant([2,5,3,3,8,2,6,1,1,2,5,4,7,9,2,3,-1,3], tf.float32),[1,3,3,2])

# [filter_height, filter_width, in_channels, out_channels]
depthwise_filter = tf.reshape(tf.constant([3,1,-2,2,-1,-3,4,5], tf.float32),[2,2,2,1])
pointwise_filter = tf.reshape(tf.constant([-1,1], tf.float32),[1,1,2,1])

print(tf.Session().run(tf.nn.separable_conv2d(input,depthwise_filter,pointwise_filter,[1,1,1,1],"VALID")))
[[[[ 20.]
   [  9.]]

  [[-24.]
   [ 29.]]]]

返回目录


单个张量与多个卷积核的分离卷积

对应代码为:

import tensorflow as tf

# [batch, in_height, in_width, in_channels]
input =tf.reshape(tf.constant([2,5,3,3,8,2,6,1,1,2,5,4,7,9,2,3,-1,3], tf.float32),[1,3,3,2])

# [filter_height, filter_width, in_channels, out_channels]
depthwise_filter = tf.reshape(tf.constant([3,1,-3,1,-1,7,-2,2,-5,2,7,3,-1,3,1,-3,-8,6,4,6,8,5,9,-5], tf.float32),[2,2,2,3])
pointwise_filter = tf.reshape(tf.constant([0,0,1,0,0,1,0,0,0,0,0,0], tf.float32),[1,1,6,2])

print(tf.Session().run(tf.nn.separable_conv2d(input,depthwise_filter,pointwise_filter,[1,1,1,1],"VALID")))
[[[[ 32.  -7.]
   [ 52.  -8.]]

  [[ 41.   0.]
   [ 11. -34.]]]]

返回目录


参考资料

《图解深度学习与神经网络:从张量到TensorFlow实现》_张平

返回目录

原文地址:https://www.cnblogs.com/itmorn/p/11250848.html

时间: 2024-08-30 06:53:06

深度学习面试题25:分离卷积(separable卷积)的相关文章

深度学习面试题27:非对称卷积(Asymmetric Convolutions)

目录 产生背景 举例 参考资料 产生背景 之前在深度学习面试题16:小卷积核级联卷积VS大卷积核卷积中介绍过小卷积核的三个优势: ①整合了三个非线性激活层,代替单一非线性激活层,增加了判别能力. ②减少了网络参数. ③减少了计算量 在<Rethinking the Inception Architecture for Computer Vision>中作者还想把小卷积核继续拆解,从而进一步增强前面的优势 返回目录 举例 一个3*3的卷积可以拆解为:一个3*1的卷积再串联一个1*3的卷积,实验证

深度学习面试题29:GoogLeNet(Inception V3)

目录 使用非对称卷积分解大filters 重新设计pooling层 辅助构造器 使用标签平滑 参考资料 在<深度学习面试题20:GoogLeNet(Inception V1)>和<深度学习面试题26:GoogLeNet(Inception V2)>中对前两个Inception版本做了介绍,下面主要阐述V3版本的创新点 使用非对称卷积分解大filters InceptionV3中在网络较深的位置使用了非对称卷积,他的好处是在不降低模型效果的前提下,缩减模型的参数规模,在<深度学

深度学习面试题13:AlexNet(1000类图像分类)

目录 网络结构 两大创新点 参考资料 第一个典型的CNN是LeNet5网络结构,但是第一个引起大家注意的网络却是AlexNet,Alex Krizhevsky其实是Hinton的学生,这个团队领导者是Hinton,于2012年发表论文. AlexNet有60 million个参数和65000个 神经元,五层卷积,三层全连接网络,最终的输出层是1000通道的softmax.AlexNet利用了两块GPU进行计算,大大提高了运算效率,并且在ILSVRC-2012竞赛中获得了top-5测试的15.3%

深度学习面试题16:小卷积核级联卷积VS大卷积核卷积

目录 感受野 多个小卷积核连续卷积和单个大卷积核卷积的作用相同 小卷积核的优势 参考资料 感受野 在卷积神经网络中,感受野(Receptive Field)的定义是卷积神经网络每一层输出的特征图(feature map)上的像素点在输入图片上映射的区域大小.再通俗点的解释是,特征图上的一个点对应输入图上的区域,如下图所示: 返回目录 多个小卷积核连续卷积和单个大卷积核卷积的作用相同 像LeNet.AlexNet网络,都是用了较大的卷积核,目的是提取出输入图像更大邻域范围的信息,一般是卷积与池化操

深度学习面试题09:一维卷积(Full卷积、Same卷积、Valid卷积、带深度的一维卷积)

目录 一维Full卷积 一维Same卷积 一维Valid卷积 三种卷积类型的关系 具备深度的一维卷积 具备深度的张量与多个卷积核的卷积 参考资料 一维卷积通常有三种类型:full卷积.same卷积和valid卷积,下面以一个长度为5的一维张量I和长度为3的一维张量K(卷积核)为例,介绍这三种卷积的计算过程 一维Full卷积 Full卷积的计算过程是:K沿着I顺序移动,每移动到一个固定位置,对应位置的值相乘再求和,计算过程如下: 将得到的值依次存入一维张量Cfull,该张量就是I和卷积核K的ful

深度学习面试题24:在每个深度上分别卷积(depthwise卷积)

目录 举例 单个张量与多个卷积核在深度上分别卷积 参考资料 举例 如下张量x和卷积核K进行depthwise_conv2d卷积 结果为: depthwise_conv2d和conv2d的不同之处在于conv2d在每一深度上卷积,然后求和,depthwise_conv2d没有求和这一步,对应代码为: import tensorflow as tf # [batch, in_height, in_width, in_channels] input =tf.reshape( tf.constant([

【深度学习笔记】第 6 课:卷积神经网络简介

到目前为止,我们已经大致地介绍了一些新网络 但是,如果你对数据已有一些了解,比如它是一张图片,或者一系列事物,你可以做得更好 颜色 想法非常简单,如果你的数据是某种结构,则你的网络没有必要从零开始学习结构,它会表现得更好 例如,假设你想尝试分类这些字母,你知道颜色并不是让A成为A的重要因素 你认为怎么样会使得你的分类器更容易学习? 一个使用彩色照片的模型还是只使用灰度的模型 直观地说,如果一个字母表现为你从未见过的颜色,当你尝试分类字母时,忽略颜色的特性将使得模型变得更加容易 统计不变性 这是另

深度学习、图像识别入门,从VGG16卷积神经网络开始

刚开始接触深度学习.卷积神经网络的时候非常懵逼,不知道从何入手,我觉得应该有一个进阶的过程,也就是说,理应有一些基本概念作为奠基石,让你有底气去完全理解一个庞大的卷积神经网络: 本文思路: 一.我认为学习卷积神经网络必须知道的几个概念: 1.卷积过程: 我们经常说卷积神经网络卷积神经网络,到底什么才是卷积?网络层卷积过程到底怎么实现?我们在这里借鉴了另一位博客大牛的动态图来给大家演示一下, 图作者文章在此: http://blog.csdn.net/silence1214/article/det

深度学习面试题12:LeNet(手写数字识别)

目录 神经网络的卷积.池化.拉伸 LeNet网络结构 LeNet在MNIST数据集上应用 参考资料 LeNet是卷积神经网络的祖师爷LeCun在1998年提出,用于解决手写数字识别的视觉任务.自那时起,CNN的最基本的架构就定下来了:卷积层.池化层.全连接层.如今各大深度学习框架中所使用的LeNet都是简化改进过的LeNet-5(-5表示具有5个层),和原始的LeNet有些许不同,比如把激活函数改为了现在很常用的ReLu. 神经网络的卷积.池化.拉伸 前面讲了卷积和池化,卷积层可以从图像中提取特