【问题标题】:Build CNN Model Using Keras使用 Keras 构建 CNN 模型
【发布时间】:2017-12-10 23:49:39
【问题描述】:

大家好,我是 Keras 的新人。我选择 keras 来实现这篇论文:http://mmlab.ie.cuhk.edu.hk/projects/TCDCN.html。我只需将输入大小更改为 48x48,然后对于输出,我只需要 68 个地标坐标。这是我的网络:

def mtfl40New(size):
    model = Sequential()
    model.add(Conv2D(16, (5, 5), padding='valid', input_shape=(3, size, size)))
    model.add(Activation('tanh'))
    model.add(MaxPooling2D(pool_size=(2, 2)))

    model.add(Conv2D(48, (3, 3), padding='valid'))
    model.add(Activation('tanh'))
    model.add(MaxPooling2D(pool_size=(2, 2)))

    model.add(Conv2D(64, (3, 3), padding='valid'))
    model.add(Activation('tanh'))
    model.add(MaxPooling2D(pool_size=(2, 2)))

    model.add(Conv2D(64, (2, 2), padding='valid'))
    model.add(Activation('tanh'))

    model.add(Flatten())
    model.summary()
    #model.count_params()
    model.add(Dense(100, kernel_initializer="normal", input_shape=(576,)))
    model.add(Activation('tanh'))
    model.add(Dense(136, kernel_initializer="normal"))
    model.add(Activation('tanh'))

    model.compile(loss='mean_squared_error', optimizer='adam', metrics=['accuracy'])
    return model

但是我得到这个错误: 任何人都可以帮忙吗? -谢谢-

【问题讨论】:

    标签: python keras theano conv-neural-network


    【解决方案1】:

    这又是您的输入形状和它的解释格式之间的不兼容。您已在 Keras 配置中首先将图像排序设置为通道,而输入形状的通道位于最后。要修复它,只需替换此行:

    model.add(Conv2D(16, (5, 5), padding='valid', input_shape=(3, size, size)))
    

    与:

    model.add(Conv2D(16, (5, 5), padding='valid', input_shape=(size, size, 3)))
    

    【讨论】:

    • 您好,感谢您的解决方案。但是我仍然对此有疑问。 “ValueError:检查模型输入时出错:预期 conv2d_1_input 具有形状 (None, 48, 48, 3) 但得到的数组具有形状 (2912L, 3L, 48L, 48L)”我该如何解决? -谢谢-
    • @herleeyandi 这是一个不同的问题,你应该问另一个问题完整的信息。
    猜你喜欢
    • 1970-01-01
    • 2020-05-31
    • 1970-01-01
    • 2019-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-20
    相关资源
    最近更新 更多