在 CNN 中,卷积操作在输入矩阵上“卷积”一个内核矩阵。现在,我知道全连接层如何利用梯度下降和反向传播来训练。但是核矩阵是如何随时间变化的呢?
在 Keras 文档中,有多种初始化内核矩阵的方法,如此处所述。但是,我很想知道它是如何训练的?如果它也使用反向传播,那么有没有详细描述训练过程的论文?
这篇文章也提出了一个类似的问题,但没有答案。
有什么方法可以为我的项目使用 ResNet50 的 ImageNet 权重,该项目具有形状 (224,224,4) 的图像?图像具有 R、G、B、Y 通道。
目前,我只是在使用
model = ResNet50(include_top=True, weights=None, input_tensor=None, input_shape=input_shape, pooling=None, classes=num_classes)
Run Code Online (Sandbox Code Playgroud)
现在,如果我需要使用 ImageNet 权重,我需要始终将类数设置为 1000。我尝试这样做,然后弹出最后一层,并添加我自己的 Dense(num_classes) 层。然而,现在,通道的数量是一个问题。
任何人都可以建议一种在使用 ImageNet 权重时在模型中容纳 4 个通道的方法吗?
我正在研究用于 CNN 的模糊卷积滤波器。我已经准备好了函数 - 它接受 2D 输入矩阵和 2D 核/权重矩阵。该函数输出卷积特征或激活图。
现在,我想使用 Keras 构建 CNN 的其余部分,这些 CNN 也将具有标准的 2D 卷积滤波器。
有什么方法可以将我的自定义过滤器插入到 Keras 模型中,使内核矩阵由 Keras 后端的内置库更新?或者,是否有任何库可用于在每次迭代时更新内核?
python backpropagation gradient-descent conv-neural-network keras