将来如何使用训练有素的模型

时间:2019-01-15 01:53:04

标签: python machine-learning deep-learning

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

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

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

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

此外,我想知道权重值在哪里存储模态,因为权重未存储在变量中。我如何找到它,将来也不能使用那些训练有素的体重数据来得出ANN

3 个答案:

答案 0 :(得分:1)

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

另一方面,深度学习模型往往需要较长的训练时间。一种常见的技术是使用HDF5文件格式保存经过训练的模型。如果您有兴趣,可以查看此link以获取有关格式的更多信息。

可能最简单的方法是使用 Keras 的内置函数 model.save

  Columns from df1    Columns from df2
1            fruit          grocery, favourite.food
2         location            place
3            price             <NA>

由于您是数据科学的入门者,因此,如果您具有该领域的一些基础知识,并且想直接跳入深度学习,那么我建议您使用Google的Colaboratory(link)。

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

答案 1 :(得分:1)

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

model.save('ModelName.model')

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

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

有关更多详细信息,请检查documentation

例如,对于权重,如果您的二进制分类器在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,)

答案 2 :(得分:0)

如果仅使用TensorFlow,则可以使用SavedModel API。这是Tom's answer。另外,您可以在Wen

的github中找到一个示例