我使用的是 TF2.5 和 Python3.8,其中转换层定义为:
Conv2D(
filters = 64, kernel_size = (3, 3),
activation='relu', kernel_initializer = tf.initializers.GlorotNormal(),
strides = (1, 1), padding = 'same',
)
使用一批 60 个 CIFAR-10 数据集作为输入:
x.shape
# TensorShape([60, 32, 32, 3])
该层的输出体积保留了空间宽度和高度(32, 32),并将 64 个过滤器/内核映射应用于 60 张图像作为批处理-
conv1(x).shape
# TensorShape([60, 32, 32, 64])
我理解这个输出。
你能解释一下输出:
conv1.trainable_weights[0].shape
# TensorShape([3, 3, 3, 64])
答案 0 :(得分:0)
这是用于计算卷积层中可训练参数数量的公式 = [{(m x n x d) + 1} x k]
哪里, m -> 过滤器宽度; n -> 过滤器的高度; d -> 输入音量中的通道数; k -> 当前层应用的过滤器数量。
1 被添加为每个过滤器的偏差。但是在 TF2.X 的情况下,对于 conv 层,偏差项设置为 False。因此,它不会出现在公式中。