gpt4 book ai didi

python - 为什么 SeparableConv2D 比 Conv2D 慢?

转载 作者:行者123 更新时间:2023-12-05 07:11:16 32 4
gpt4 key购买 nike

我一直在试验不同类型的卷积层,以检查它们的计算速度。一开始,我的代码如下。

def conv_block_A(layer):
block = tf.keras.layers.Conv2D(filters=128, kernel_size=3, strides=1, padding='same')(layer)
block = tf.keras.layers.Conv2D(filters=196, kernel_size=3, strides=1, padding='same')(block)
block = tf.keras.layers.Conv2D(filters=128, kernel_size=3, strides=1, padding='same')(block)
block = tf.keras.layers.BatchNormalization(momentum=0.8)(block)
block = tf.keras.layers.LeakyReLU(alpha=0.2)(block)

return block

在浏览了一些博客之后,我将代码更改为

def conv_block_A(layer):
block = tf.keras.layers.SeparableConv2D(filters=128, kernel_size=3, strides=1, padding='same')(layer)
block = tf.keras.layers.SeparableConv2D(filters=196, kernel_size=3, strides=1, padding='same')(block)
block = tf.keras.layers.SeparableConv2D(filters=128, kernel_size=3, strides=1, padding='same')(block)
block = tf.keras.layers.BatchNormalization(momentum=0.8)(block)
block = tf.keras.layers.LeakyReLU(alpha=0.2)(block)

return block

训练过程在 CPU 上快了一倍,但在 Tesla T4 上训练变得非常慢。可能是什么原因?

最佳答案

这是 GPU 的一个已知问题,已在 #33836 中修复.另外,您应该更新您的 GPU 驱动程序。根据经验,通过可分离卷积实现的加速对于大内核尺寸更为明显,因为涉及进行两次卷积的开销可能大于加速。

关于python - 为什么 SeparableConv2D 比 Conv2D 慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60836958/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com