码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2019-07-26 16:08:00      阅读:224      评论:0      收藏:0      [点我收藏+]

标签:网络   open   col   width   ssi   试题   poi   port   hid   

目录

  举例

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

  参考资料


 

举例

技术图片

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

技术图片
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.]]]]
View Code

 返回目录

 

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

 技术图片

对应代码为:

技术图片
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.]]]]
View Code

 返回目录

 

参考资料

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

 返回目录

 

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

标签:网络   open   col   width   ssi   试题   poi   port   hid   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!