我是数据科学的新手,我仍在学习机器学习。我知道我们可以根据应用程序使用Regression
,Classification
,Clustering
,ANN
,CNN
,RNN
模型,依此类推。
这些模型我们在PC中编码,训练和预测一些数据。一些模型还需要花费大量时间进行训练。之后,我们关闭PC。
如果几天后我想要具有相同数据集的相同型号,请再次打开PC并训练相同型号。
我想知道如何在将来每次PC打开时一次又一次地使用经过训练的模态而无需进行训练。我主要要求提供ANN
,CNN
,RNN
模型。
此外,我想知道权重值在哪里存储模态,因为权重未存储在变量中。我如何找到它,将来也不能使用那些训练有素的体重数据来得出ANN
。
答案 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中找到一个示例