【问题标题】:Attribute error while creating CNN model in Keras在 Keras 中创建 CNN 模型时出现属性错误
【发布时间】:2021-04-17 03:31:26
【问题描述】:

用于构建模型的函数:

def CancerModel(input_shape):   

    X_input = Input(input_shape)

    X = ZeroPadding2D((2, 2))(X_input)

    X = Conv2D(8, (5, 5), strides = (1, 1), name = 'conv')(X)
    X = BatchNormalization(axis = 3, name = 'bn1')(X)
    X = Activation('relu')(X)

    X = MaxPooling2D((2, 2), name='max_pool')(X)

    X = Conv2D(16, (5, 5), strides = (1, 1), name = 'conv2')(X)
    X = BatchNormalization(axis = 3, name = 'bn2')(X)
    X = Activation('relu')(X)

    X = MaxPooling2D((2, 2), name='max_pool2')(X)

    X = Flatten()(X)
    X = Dense(120, activation='relu', name='fc1')(X)
    X = Dense(84, activation='relu', name='fc2')(X)
    X = Dense(7, activation='softmax', name='output')(X)

    model = Model(inputs = X_input, outputs = output, name='CancerModel')

    return model

尝试使用以下方法创建模型:

cancerModel = CancerModel(X_train.shape[1:])

但是,我收到一条错误消息,提示无法设置该属性。 我还附上了我遇到的错误的屏幕截图。任何帮助将不胜感激。

Screenshot of bug

【问题讨论】:

  • 你能分享你的模型的代码吗?请不要截图,这里写代码。

标签: keras conv-neural-network attributeerror


【解决方案1】:

我在您的代码中没有发现错误。可能是您的training data shape 或 Keras 版本问题(我的 Keras 版本2.4.3)。

def CancerModel(input_shape):   

    X_input = Input(input_shape)

    X = ZeroPadding2D((2, 2))(X_input)

    X = Conv2D(8, (5, 5), strides = (1, 1), name = 'conv')(X)
    X = BatchNormalization(axis = 3, name = 'bn1')(X)
    X = Activation('relu')(X)

    X = MaxPooling2D((2, 2), name='max_pool')(X)

    X = Conv2D(16, (5, 5), strides = (1, 1), name = 'conv2')(X)
    X = BatchNormalization(axis = 3, name = 'bn2')(X)
    X = Activation('relu')(X)

    X = MaxPooling2D((2, 2), name='max_pool2')(X)

    X = Flatten()(X)
    X = Dense(120, activation='relu', name='fc1')(X)
    X = Dense(84, activation='relu', name='fc2')(X)
    X = Dense(7, activation='softmax', name='output')(X)

    model = Model(inputs = X_input, outputs = X, name='CancerModel')

    return model


CancerModel((224,224,3)).summary() #It works fine

也可以正常使用

CancerModel(np.ones((5,120,120,3)).shape[1:]).summary()

【讨论】:

  • 重新安装 Tensorflow 和 Keras 后运行良好。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-01-08
  • 1970-01-01
  • 2020-05-31
  • 1970-01-01
  • 2018-06-28
  • 1970-01-01
  • 2018-08-30
相关资源
最近更新 更多