将来如何使用训练好的模型



我是数据科学的新手,我仍在学习机器学习。我知道我们可以根据应用使用RegressionClassificationClusteringANNCNNRNN等模型。

这些模型我们在PC中编码,训练和预测一些数据。有些模型也需要花费大量时间进行训练。之后,我们关闭了PC。

如果我想要几天后具有相同数据集的相同模型,请再次打开 PC 并训练相同的模型。

我想知道如何在将来使用经过训练的模态,而无需训练,一次又一次,每次 PC 打开时。我主要要求ANNCNNRNN模型。

另外,我想知道模态的权重值存储在哪里,因为权重不存储在变量中。我怎么能找到它,我不能使用这些训练有素的体重数据来提供将来ANN

通常,简单的模型(例如逻辑回归,决策树)不需要花费大量时间训练,显然取决于您训练它们的数据大小。

另一方面,深度学习模型往往具有很高的训练时间。一种常见的技术是使用 HDF5 文件格式保存训练好的模型。如果您有兴趣,可以查看此链接以获取有关格式的更多信息。

实现此目的的最简单方法可能是使用 Keras 的内置函数模型。

from keras.models import load_model
model = train_neural_network() # Train your model
model.save('my_model.h5')  # creates a HDF5 file 'my_model.h5'
model = load_model('my_model.h5') # Load your saved model and use it on whatever data you want

由于你是一个数据科学乞丐,如果你对这个领域有一些基本的了解,并且想直接跳到深度学习,我建议使用谷歌的Colab(链接)。

每个用户都会被分配一个虚拟机,该虚拟机具有专为涉及深度学习的任务而构建的硬件。它包含运行神经网络所需的大多数依赖项。

保存功能齐全的模型非常有用 - 您可以加载它们。在 TensorFlow 中,您可以将整个模型保存到包含权重值、模型配置甚至优化器配置的文件中。你可以做:

model.save('ModelName.model')

此外,Keras 提供了使用 HDF5 标准的基本保存格式。

#Save entire model to a HDF5 file model.save('my_model.h5')

有关更多详细信息,请查看文档

例如,对于权重,如果有一个二元分类器,其二元分类器在0标签中的数量是1标签的两倍,则可以在拟合模型时进行设置,如下所示:

 Class_Weights = {0: 1., 1: 2} #twice as many 0 as 1
 #fit model and pass weights
 model.fit(X, y, class_weight=Class_Weights
           batch_size=20, epochs=5, validation_split=0.3,)

如果你只使用 TensorFlow,你可以使用 SavedModel API。这是汤姆的答案。另外,你可以在 github 中找到一个 Wen 的例子

最新更新