Py学习  »  机器学习算法

持久的机器学习

jhammond • 5 年前 • 577 次点击  

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

例如,我训练一个网络来识别花园侏儒是什么样子的,但是,在我运行了训练集并用测试数据验证之后,我如何保持这个网络,以便我可以给它一张单独的图片,并让它告诉我图片是否是花园侏儒的?每个教程似乎都让您在培训/验证集中运行,而没有关于如何以有意义的方式托管网络以供将来使用的任何概念。

谢谢!

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/30536
 
577 次点击  
文章 [ 3 ]  |  最新文章 5 年前
Noman
Reply   •   1 楼
Noman    5 年前

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

Soltius
Reply   •   2 楼
Soltius    5 年前

这个问题更适合 Cross Validated Data Science 但要点是:训练完网络后,有一个程序通常被称为“冻结”,这意味着以“持久”的方式保存网络:重量不再改变,训练过程中发生的一些事情(如辍学)也会被丢弃。

您的网络保存在磁盘上的某个位置,然后可以使用专用功能重新加载。 然后,您可以像训练时那样将新图像传递到冻结的网络(例如 class=frozen_model(image) )

要获得更具体的信息,您应该指定正在使用的库。

0e1val
Reply   •   3 楼
0e1val    5 年前

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

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

python提供了各种序列化方法和库,包括内置的 pickle . 作为补充,这里有一个非常短的部分 pickling