保存下载的数据以及训练好的模型

Posted

技术标签:

【中文标题】保存下载的数据以及训练好的模型【英文标题】:Saving downloaded data as well as trained model 【发布时间】:2020-05-29 10:48:57 【问题描述】:

有没有办法将特定代码块的执行保存在笔记本中,这样我就不必再次运行它了。并且可以在重新加载后继续执行其余代码吗? 例如,

from __future__ import absolute_import, division, print_function, unicode_literals
import tensorflow as tf
from tensorflow.keras import datasets, layers, models
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np

(train_images1, train_labels), (test_images1, test_labels) = datasets.cifar10.load_data()

# Normalize pixel values to be between 0 and 1
train_images, test_images = train_images1 / 255.0, test_images1 / 255.0

#My cnn model, upto the training
#Save upto here.

我可以将执行保存到这里以供以后使用,包括下载的文件训练好的模型

【问题讨论】:

你在看什么?将训练和测试数据保存到 NumPy 数组或 H5 文件中?或者是其他东西?无法保存笔记本的执行,而是可以保存下载的数据。 @ashraful 保存执行的数据,这样我就不用从头开始了。 【参考方案1】:

保存模型:

model_json = model.to_json()
with open("model.json", "w") as json_file:
    json_file.write(model_json)
model.save_weights("model.h5")
print("Saved model .......")

加载保存的模型:

json_file = open('model.json', 'r')
loaded_model_json = json_file.read()
json_file.close()
loaded_model = model_from_json(loaded_model_json)

loaded_model.load_weights("model.h5")
print("Loaded model...........")

更多细节,你可以找到我的实现here。现在这将同时保存dataset as well as trained model

【讨论】:

这个可以存储训练好的模型吗? 我正在寻找保存经过训练的模型,而不是数据库。【参考方案2】:

有!您可以使用 numpy.save("train_images.npy", train_images) 保存 NumPy 数据并使用 train_images = numpy.load("train_images.npy") 加载它们。使用笔记本时,只需将 saveload 放在两个不同的单元格中,然后运行您需要的任何单元格。

文档:

save load

有许多变体,例如 savez 将多个数组保存在未压缩文件中,savez_compressed 用于压缩文件。

【讨论】:

你能验证它是否有效吗?我不知道你是否真的使用过 NumPy 数组。如果您使用 NumPy 数组,这是事实上的标准方法。 但我也想保存我的深度学习训练模型。 这可以使用tensorflow.org/tutorials/keras/save_and_load轻松完成 您能否将其发布在答案中,它可能对其他人也有帮助?我会接受这个。

以上是关于保存下载的数据以及训练好的模型的主要内容,如果未能解决你的问题,请参考以下文章

Pytorch如何保存训练好的模型

python 保存训练好的预测模型 python如何加载训练好的模型pkl格式文件

保存训练好的机器学习模型

Pytorch模型保存与加载,并在加载的模型基础上继续训练

sklearn训练模型的保存与加载

如何利用C++来调用PyTorch训练好的模型