卷积二维与深度卷积二维计算
Conv2D vs Depthwise Conv2D calculation
我试图了解 2D 卷积和 2D 深度卷积神经网络计算的异同。(我理解这些概念(。
例如,假设有一个 3x3 的输入图像,具有 3 个通道 (RGB(,填充为 1,步幅为 1。筛选器为 2x2。
输出是什么?(可以忽略激活和偏差(
我知道常规的 conv2D 将有 1 个 3x3 输出,而 dw conv2D 将有 3 个。除此之外,我有点困惑。谢谢
例如,让我们将输入图像形状视为(5,5,3)
。
卷积层:
在 Conv2D 中,大小为 3*3*3
的 24 个滤波器与输入5*5*3
错综复杂。
卷积2D
任何卷积层中每个滤波器的深度将与该层的输入形状的深度相同:
input_shape = (1, 5, 5, 3)
x = tf.random.normal(input_shape)
y = tf.keras.layers.Conv2D(24, 3, activation='relu', input_shape=(5,5,3))(x)
print(y.shape) #(1,3,3,24)
深度卷积层:
在深度卷积中,我们不指定过滤器的数量;我们只使用 1 个过滤器:
z = tf.keras.layers.DepthwiseConv2D(3,activation='relu', input_shape=input_shape[1:])(x)
print(z,shape) #(1,3,3,3)
可分离卷积
相关文章:
- 将二维矢量传递给类
- 将值从二维数组输出到文本文件
- 我在二维向量中是否正确分配了内存
- 带结构的二维矢量:如何存储元素
- 在二维数组中查找最小值和最大值?
- 移动二维数组中的字符
- C++ 传递二维字符数组
- 如何正确填充在堆上分配的二维数组?
- 传递二维数组时出现问题
- 具有随机数的二维数组不会更改
- 如何在C++中获取二维数组中最少的一列数?
- 如何使用用户输入变量制作二维数组?
- C++中复向量与实向量的二维卷积
- 卷积二维与深度卷积二维计算
- 如何使用fftw包编写计算模板(T)和二维图像(亚胺)之间二维卷积的函数
- C++OpenCV:应用二维卷积的最简单方法是什么
- 使用高斯核的一维卷积
- 在x方向上对图像的每一行进行一维卷积
- 如何进行一维"valid"卷积?
- 如何在openv中实现一维卷积