如何使用joblib保存神经网络模型

How to save neural network model using joblib

我正在尝试使用 joblib 在 pandas 中保存我的 neural_network 模型,因为它给我 96% 的准确率。我的数据集有 9 列——预测乳腺癌的特征。

y_train_categorical = to_categorical(y_train)
y_test_categorical = to_categorical(y_test)

from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense

neural_model = Sequential()
neural_model.add(Dense(units=6, activation='relu', input_dim=9))
neural_model.add(Dense(units=2, activation='softmax')) 

neural_model.compile(optimizer='adam',
              loss='categorical_crossentropy',
              metrics=['accuracy'])

neural_model = neural_model.fit(
    X_train_scaled,
    y_train_categorical,
    epochs=200,
    shuffle=True,
    verbose=2
)

from sklearn.externals import joblib 

joblib.dump(neural_model, 'neural.pkl') 
# also tried dump(neural_model, 'neural.joblib')```

Error message: can't pickle _thread.RLock objects

不建议使用 pickle 或 cPickle 保存 Keras 模型。

你只需要做:model.save(filepath)

有关详细信息,请查看 documentation

根本不需要使用 joblib 来保存您的 keras 模型。使用 .save() 方法,它应该可以完美运行。

保存模型:

neural_model.save('path/to/location')

正在加载模型:

neural_model = model = keras.models.load_model('path/to/location')

请参阅来自张量流团队的指南: https://www.tensorflow.org/guide/keras/save_and_serialize