持久机器学习

时间:2019-01-21 21:13:08

标签: python machine-learning

我有一个超级基础的机器学习问题。我一直在学习有关机器学习的各种教程和在线课程,以及学习如何使用它的各种技术,但是我没有看到持久的应用程序。

因此,例如,我训练网络以识别花园侏儒的外观,但是在运行训练集并使用测试数据进行验证之后,如何保持网络,以便可以将其提供给单个图片并告诉我这张照片是否带有花园侏儒?每个教程似乎都让您遍历训练/验证集,而没有关于如何以有意义的方式托管网络以备将来使用的任何想法。

谢谢!

3 个答案:

答案 0 :(得分:1)

此问题更适合Cross ValidatedData Science,但要点如下:培训网络后,通常有一个过程称为“冻结”,这意味着保存网络以一种“持久”的方式:重量不再变化,并且在训练过程中发生的一些事情(例如辍学)也被丢弃了。

您的网络被保存为磁盘上某个文件,然后可以使用专用功能重新加载。 然后,您可以像训练时一样将新图像传递到冻结的网络中(类似于class=frozen_model(image))。

要更加具体,您应该指定要使用的库。

答案 1 :(得分:0)

一旦使用测试/开发集对模型/网络进行了训练和验证,最佳实践是“冻结”其状态并将其用于预测。

要将网络或模型集成到应用程序中,应该维护模型的状态并存储它,通常模型是由serializing存储,标记并保存到有状态存储(数据库)中的。或您的本地磁盘)。

Python提供了各种序列化方法和库,包括内置的pickle。 作为其他参考,这是关于pickling

的简短文章

答案 2 :(得分:0)

使用python pickle库将经过训练的模型转储到硬盘上并加载模型,并测试持久性结果