首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >泡菜Keras ANN

泡菜Keras ANN
EN

Stack Overflow用户
提问于 2018-08-16 13:46:35
回答 1查看 1.5K关注 0票数 0

我试图使用这段代码来安装一个使用Keras的ANN,然后对它进行腌制:

代码语言:javascript
复制
early_stopping = EarlyStopping(monitor='val_loss', patience=4, mode='auto')
model = Sequential()
model.add(Dense(units=40, kernel_initializer='random_uniform', input_dim=x_train.shape[1], activation='relu'))
model.add(Dense(units=1, kernel_initializer='random_uniform', activation='sigmoid', W_regularizer=reg))
model.compile(loss='binary_crossentropy', optimizer='adam')
model.fit(x=x_train, y=y_train, epochs=1, validation_data=(x_val, y_val), callbacks=[early_stopping])

pickle_file_and_path = 'C:/Bla/DLModel20180816.sav'
pickle.dump(model, open(pickle_file_and_path, 'wb'))

不幸的是,我得到:

代码语言:javascript
复制
  pickle.dump(model, open(pickle_file_and_path, 'wb'))
TypeError: can't pickle _thread.RLock objects

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-16 14:16:55

存储Keras模型的规范方法是使用内置model.save()方法将模型保存到HDF5文件中。

修改您的代码:

代码语言:javascript
复制
model = Sequential()
model.add(Dense(units=40, kernel_initializer='random_uniform', input_dim=x_train.shape[1], activation='relu'))
model.add(Dense(units=1, kernel_initializer='random_uniform', activation='sigmoid', W_regularizer=reg))
model.compile(loss='binary_crossentropy', optimizer='adam')
model.fit(x=x_train, y=y_train, epochs=1, validation_data=(x_val, y_val), callbacks=[early_stopping])

# Save the model
model.save('./model.h5')

之后,您可以按以下方式加载它:

代码语言:javascript
复制
from keras.models import load_model
model = load_model('./model.h5')

并开始重新训练或使用模型进行推理。请注意,您还可以使用save_weights()方法存储唯一的权重。有关完整文档和更多示例,请参见Keras 网站

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51878627

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档