我有一个超级基础的机器学习问题。我一直在学习有关机器学习的各种教程和在线课程,以及学习如何使用它的各种技术,但是我没有看到持久的应用程序。
因此,例如,我训练网络以识别花园侏儒的外观,但是在运行训练集并使用测试数据进行验证之后,如何保持网络,以便可以将其提供给单个图片并告诉我这张照片是否带有花园侏儒?每个教程似乎都让您遍历训练/验证集,而没有关于如何以有意义的方式托管网络以备将来使用的任何想法。
谢谢!
答案 0 :(得分:1)
此问题更适合Cross Validated或Data Science,但要点如下:培训网络后,通常有一个过程称为“冻结”,这意味着保存网络以一种“持久”的方式:重量不再变化,并且在训练过程中发生的一些事情(例如辍学)也被丢弃了。
您的网络被保存为磁盘上某个文件,然后可以使用专用功能重新加载。
然后,您可以像训练时一样将新图像传递到冻结的网络中(类似于class=frozen_model(image)
)。
要更加具体,您应该指定要使用的库。
答案 1 :(得分:0)
一旦使用测试/开发集对模型/网络进行了训练和验证,最佳实践是“冻结”其状态并将其用于预测。
要将网络或模型集成到应用程序中,应该维护模型的状态并存储它,通常模型是由serializing存储,标记并保存到有状态存储(数据库)中的。或您的本地磁盘)。
的简短文章答案 2 :(得分:0)
使用python pickle库将经过训练的模型转储到硬盘上并加载模型,并测试持久性结果。