gpt4 book ai didi

python - Keras卷积滤波器大小问题

转载 作者:行者123 更新时间:2023-12-01 03:39:35 25 4
gpt4 key购买 nike

我对 Keras 非常陌生,在我的早期实验中,我在创建卷积层时遇到了错误。当我运行此代码时(找到 here ;“共享视觉模型”部分)

from keras.models import *
from keras.layers import *
from keras.layers.convolutional import *
from keras.layers.pooling import *

digit_input = Input(shape=(1, 27, 27))
x = Convolution2D(64, 3, 3)(digit_input)
x = MaxPooling2D((2, 2))(x)

mdl = Model(digit_input, x)

我收到以下错误(回溯指向 Convolution2D 行):

ValueError: Filter must not be larger than the input: Filter: (3, 3) Input: (1, 27)

我认为我滥用了该接口(interface)——特别是因为其他人似乎没有这个特殊问题——但我直接从 Keras 文档中提取了代码。当我使用 model.add() 语法时,问题仍然存在。但有趣的是,当我将滤波器尺寸缩小到 1x1 或将输入 channel 数增加到 3 时,错误就消失了。我尝试手动设置卷积的 dim_ordering='tf' ,我的 keras.json 文件显示:

{
"image_dim_ordering": "tf",
"epsilon": 1e-07,
"floatx": "float32",
"backend": "tensorflow"
}

Keras 看起来是一个很棒的工具,但到目前为止我完全无法使用它。

附注我正在使用 Keras 1.1.0 和 Tensorflow 0.10。

最佳答案

'image_dim_ordering':'tf' 将输入的第三维设置为 2D 卷积的 channel 输入:即,您当前已将具有 27 个 channel 的 1x27 输入与 3x3 内核进行卷积,并且没有填充。

您应该能够将“image_dim_ordering”切换为“th”并让此代码立即生效。我认为“th”曾经是默认值,不幸的是您遇到了过时的教程。这是来自 Convolution2D 的 Keras 文档- 它在那里,但不是特别突出:

dim_ordering: 'th' or 'tf'. In 'th' mode, the channels dimension (the depth) is at index 1, in 'tf' mode is it at index 3. It defaults to the image_dim_ordering value found in your Keras config file at ~/.keras/keras.json. If you never set it, then it will be "tf".

希望有帮助!

关于python - Keras卷积滤波器大小问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39844273/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com