【问题标题】:Why does a fully conv layer take more time than FC layer in TensorFlow?为什么在 TensorFlow 中完全 conv 层比 FC 层花费更多时间?
【发布时间】:2016-04-30 07:11:24
【问题描述】:

问题:我将基本的 MNIST 示例从 Tensorflow 转换为完全卷积的实现。现在 100 次迭代所花费的时间大约是以前的 20 倍。这是什么原因造成的?

我从 Tensorflow 网站获取了基本的 MNIST 示例。现在我将最终的 FC 层转换为卷积层,灵感来自 this post by Yann LeCunnthis Quora post,或者更一般地说,文章 Fully Convolutional Networks for Semantic Segmentation

所以我改变了这个代码块

with tf.name_scope("Fully_Connected") as scope:
  W_fc1 = weight_variable([7**2 * 64, 1024], 'Fully_Connected_layer_1')
  b_fc1 = bias_variable([1024], 'bias_for_Fully_Connected_Layer_1')
  h_pool2_flat = tf.reshape(h_pool2, [-1, 7**2*64])
  h_fc1 = tf.nn.relu(tf.matmul(h_pool2_flat, W_fc1) + b_fc1)

到这个代码块

with tf.name_scope("FC_conv") as scope:
  W_fcc1 = weight_variable([7,7,64,1024],'FC_conv_1')
  b_fcc1 = bias_variable([1024],'bias_for_FC_conv_1')
  h_fcc1 = tf.nn.relu(tf.nn.conv2d(h_pool2, W_fcc1, strides=[1, 1, 1, 1], padding='VALID')+b_fcc1)

进行此更改后,100 次迭代需要 70 秒,而不是几秒。也就是说,FC 实现 100 次迭代大约需要 5 秒。 full-conv 实现 100 次迭代大约需要 70 秒。

有人可以给我一个线索吗?为什么这种卷积实现需要这么多时间?

非常感谢您的时间和回答

【问题讨论】:

    标签: neural-network tensorflow conv-neural-network


    【解决方案1】:

    通常,卷积层比全连接层更有效,但这是因为它们提供了一种方法来显着减少需要优化的参数数量。在这种情况下,如果我没记错的话,参数的数量是相同的,因为卷积核被应用于输入的整个范围。从某种意义上说,正是卷积层的局部连接方面为您降低了计算复杂度。

    所以最大的区别是卷积层需要将每个值与一个 7x7 内核进行卷积。我听到的传统观点是,最好将内核的大小保持在 3x3 或最多 5x5,这部分是由于使用更大的内核进行卷积的计算成本很高。

    我没有亲自探索过使用全卷积网络,但据我所知,目的是提高模型的准确性,而不是提高效率。希望对您有所帮助。

    【讨论】:

      【解决方案2】:

      你的卷积太大了。应该是这样的

      NUM_CHANNELS=1
      conv1_weights = tf.Variable(
            tf.truncated_normal([5, 5, NUM_CHANNELS, 32],  # 5x5 filter, depth 32.
                                stddev=0.1,
                                seed=SEED))
      

      https://github.com/tensorflow/tensorflow/blob/master/tensorflow/models/image/mnist/convolutional.py

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-03-16
        • 2021-08-02
        • 2018-06-28
        • 1970-01-01
        • 1970-01-01
        • 2017-10-24
        • 2017-06-24
        相关资源
        最近更新 更多