zoukankan      html  css  js  c++  java
  • 深度学习面试题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.]]]]
    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实现》_张平

     返回目录

  • 相关阅读:
    KBMMW 4.80.00 发布
    RCF库ClientStub.setAutoReconnect
    编译 boost
    2017学习计划
    _beginthreadex注意事项
    push_back模式工作
    总结2016
    <转>好婚姻是彼此放心
    ProcessExplore 最新版
    网站seo新手快速提升自己的技巧
  • 原文地址:https://www.cnblogs.com/mfryf/p/11381408.html
Copyright © 2011-2022 走看看