keras中cnn中的默认内核?

数据挖掘 机器学习 喀拉斯 美国有线电视新闻网
2022-03-02 07:29:29

cnn 卷积中使用的默认内核是什么

例如,在这个 keras 代码中,有 32 个大小为 5x5 的过滤器。

我的问题是 1)这 32 个过滤器中的不同默认内核是什么。例如在一个教程中我读到 可以作为水平边缘检测器和 可以作为垂直边缘检测器。

[1111]
[1111]

def baseline_model():
    # create model
    model = Sequential()
    model.add(Conv2D(32, (5, 5), input_shape=(1, 28, 28), activation='relu'))
    model.add(MaxPooling2D(pool_size=(2, 2)))
    model.add(Conv2D(32, (5, 5), activation='relu'))
    model.add(Dropout(0.2))
    model.add(Flatten())
    model.add(Dense(128, activation='relu'))
    model.add(Dense(num_classes, activation='softmax'))
    # Compile model
    model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
    return model
1个回答

可以从此处找到的文档中看到 CNN 内核的初始值。

默认的 Conv2D 层看起来像

keras.layers.Conv2D(32, (5, 5), activation='relu', kernel_initializer='glorot_uniform', bias_initializer='zeros')

所以我们看到核权重是通过 Glorot 统一方法初始化的,并且偏差被初始化为全零。

格洛洛特制服

的均匀采样,其中[limit,limit]

limit=6fan_in+fan_out

其中是权重张量的输入神经元的数量,而是权重张量的输出神经元的数量。fan_infan_out