【发布时间】:2019-08-15 09:23:40
【问题描述】:
我正在使用tensorflow和keras构建一个简单的MNIST分类模型,我想微调我的模型,所以我选择sklearn.model_selection.GridSearchCV。
但是,当我调用fit 函数时,它说:
AttributeError: 'Sequential' object has no attribute 'loss'
我将我的代码与其他人的代码进行了比较,但仍然无法弄清楚原因。唯一的区别是我使用tensorflow.keras 而不是keras。
这是我的代码:
从 tensorflow.keras.models 导入顺序,模型 从 tensorflow.keras.layers 导入 Input、Dense、Activation、Dropout、BatchNormalization 从 tensorflow.keras.datasets 导入 mnist 从 tensorflow.keras.wrappers.scikit_learn 导入 KerasClassifier 从 sklearn.model_selection 导入 GridSearchCV ... ... ... def get_model(dropout_rate=0.2, hidden_units=512): 模型=顺序() model.add(Dropout(dropout_rate, input_shape=(28*28,))) model.add(密集(hidden_units,激活='relu')) model.add(BatchNormalization()) model.add(辍学(dropout_rate)) model.add(密集(hidden_units,激活='relu')) model.add(BatchNormalization()) model.add(辍学(dropout_rate)) model.add(密集(hidden_units,激活='relu')) model.add(BatchNormalization()) model.add(辍学(dropout_rate)) model.add(密集(10,激活='softmax')) 返回模型 模型 = KerasClassifier(build_fn=get_model, batch_size=128, epochs=10) para_dict = {'dropout_rate':[0.2,0.5,0.8], 'hidden_units':[128,256,512,1024]} clf = GridSearchCV(model, para_dict, cv=5, score='accuracy') clf.fit(x_train, y_train)谢谢!
【问题讨论】:
-
在您的 build_model 中,您还没有添加损失函数。这样做:
model.compile(optimizer = optimizer, loss = 'binary_crossentropy', metrics = ['accuracy'])
标签: python tensorflow keras