卷积层 - 可训练权重 TensorFlow2

时间:2021-06-29 12:34:06

标签: python-3.x tensorflow2.0

我使用的是 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])

1 个答案:

答案 0 :(得分:0)

这是用于计算卷积层中可训练参数数量的公式 = [{(m x n x d) + 1} x k]

哪里, m -> 过滤器宽度; n -> 过滤器的高度; d -> 输入音量中的通道数; k -> 当前层应用的过滤器数量。

1 被添加为每个过滤器的偏差。但是在 TF2.X 的情况下,对于 conv 层,偏差项设置为 False。因此,它不会出现在公式中。