.predict() 给出属性错误

问题描述 投票:0回答:1
def train_model(x_train, y_train, dropout_prob, lr, batch_size, epochs):
    nn_model = tf.keras.Sequential([
        tf.keras.layers.Dense(64, activation='relu', input_shape=(10,)),
        tf.keras.layers.Dropout(dropout_prob),
        tf.keras.layers.Dense(32, activation='relu'),
        tf.keras.layers.Dropout(dropout_prob),
        tf.keras.layers.Dense(1, activation='sigmoid')
        ])

    nn_model.compile(keras.optimizers.Adam(lr), loss='binary_crossentropy', metrics=['accuracy'])

    history = nn_model.fit(
        x_train,y_train,epochs=epochs, batch_size=batch_size, validation_split=0.2, verbose=0
    )

    plot_history(history)

    return nn_model, history


least_loss_model = train_model(x_train, y_train, 0.2, 0.005, 128, 100)
predicted = least_loss_model.predict(x_test)
print(predicted)

这会给出以下属性错误:

Traceback (most recent call last):
  File "C:\Users\~\ai.py", line 162, in <module>
    predicted = least_loss_model.predict(x_test)
                ^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'tuple' object has no attribute 'predict'

我已经尝试过predicted=least_loss_model.predict_proba(x_test)

python pandas machine-learning artificial-intelligence attributeerror
1个回答
1
投票

这是因为您要返回历史记录和 nn_model,它将返回类型元组。如果你只是返回 nn_model 然后做同样的事情就会起作用。或者试试这个:

predicted = least_loss_model[0].predict(x_test)

这应该有效。

© www.soinside.com 2019 - 2024. All rights reserved.