CNN模型Keras如何解决错误?

时间:2019-11-29 11:40:00

标签: python tensorflow keras deep-learning

我有Keras的这个模特:


model.add(Conv1D(4,kernel_size=3, activation='relu', 
                               input_shape=(tablon_vectores_train.shape[1], 
                                            tablon_vectores_train.shape[2])
                               #,padding='same'
                               )
                       )

model.add(MaxPooling1D(pool_size=4))

model.add(Conv1D(6,kernel_size=2, activation='relu'))
model.add(MaxPooling1D(pool_size=2))
model.add(Dropout(0.25))
model.add(Flatten())
model.add(Dense(15, activation='relu'))
model.add(Dense(1) )
model.compile(loss='mean_squared_error', optimizer='adam',metrics=['mse'])
model = model.fit(
        X
        , Y
        , epochs=50, batch_size=10
        , validation_split= 0.25
        , verbose=1, shuffle=True)

当我执行预测代码时:

predict = model.predict(X_test)

我有此错误:

  

AttributeError:“历史记录”对象没有属性“ predict”。

我该怎么办?

3 个答案:

答案 0 :(得分:1)

在您的情况下,训练历史记录将覆盖您的模型。使用其他一些变量名称来保留训练历史记录。

history = model.fit(...)

现在您可以使用模型进行预测了。

答案 1 :(得分:1)

model.fit(..)返回一个History对象,其中包含模型的学习历史记录。

model = model.fit(..)用History对象覆盖您的卷积网络。

您可以一起删除所有作业,而只需使用model.fit()。如果您想可视化学习历史,可以通过键入history = model.fit(..)来访问值。训练后,您可以使用该对象可视化结果。您可以通过输入history.history来保存值。

要获取预测,请尝试preds = model.predict(..)

答案 2 :(得分:0)

我猜您正在覆盖模型。

尝试一下

history = model.fit(...)

然后

predict = model.predict()