我是数据科学的新手,我还在学习机器学习。我知道我们可以根据应用程序使用Regression、Classification、Clustering、ANN、CNN、RNN等模型。
我们在PC机上对这些模型进行编码、训练和预测。一些模型也需要花费大量的时间进行训练。在那之后,我们关闭了PC。
如果我想在几天后使用相同的数据集使用相同的模型,请再次打开PC并训练相同的模型。
我想知道如何在没有训练的情况下使用训练过的模式,一次又一次,每次PC打开。我问的主要是ANN,CNN,RNN型号。
另外,我想知道modal的权重值存储在哪里,因为权重没有存储在变量中。我如何才能找到它,并且不能使用这些经过训练的权重数据在未来提供ANN。
发布于 2019-01-15 10:04:59
通常,简单的模型(例如Logistic回归、决策树)不会花费大量的时间进行训练,这显然取决于训练它们的数据的大小。
另一方面,深度学习模型往往有很高的训练时间。一种常见的技术是使用HDF5文件格式保存经过训练的模型。如果您感兴趣,您可以查看此link以了解有关格式的更多信息。
要做到这一点,最简单的方法可能是使用Keras的内置函数model.save
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由于您是一名数据科学初学者,如果您对该领域有一些基础知识,并且想要直接开始深度学习,我建议您使用谷歌的协作实验室(link)。
每个用户都会被分配一个虚拟机,其中的硬件是专门为涉及深度学习的任务构建的。它包含了运行神经网络所需的大多数依赖项。
发布于 2019-01-15 10:18:05
保存一个功能齐全的模型非常有用--你可以加载它们。在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,)发布于 2019-01-15 13:43:02
如果只使用TensorFlow,可以使用SavedModel接口。这是Tom's answer。此外,您还可以在github by Wen中找到一个示例
https://stackoverflow.com/questions/54191700
复制相似问题