支持迁移学习的云端深度学习服务--NanoNets使用
简介
NanoNets是一个简单方便的基于云端实现的迁移学习工具,其内部包含了一组已经实现好的预训练模型,每个模型有数百万个训练好的参数。用户可以自己上传或通过网络搜索得到数据,NanoNets将自动根据待解问题选择最佳的预训练模型,并根据该模型建立一个NanoNets,并将之适配到用户的数据。NanoNets和预训练模型之间的关系结构如下所示。
什么是 NanoNets?
NanoNets是一种Web服务,可以轻松使用深度学习。您可以使用自己的数据构建模型以实现高精度,并使用我们的API在您的应用程序中集成相同的API。
为什么要使用NanoNets?
NanoNets使您可以轻松使用Deep Learning解决AI问题。我们解决了4个关键问题:
1.减少了构建深度学习模型所需的数据量。
2.在培训模型后,我们负责培训模型和运行时的托管模型。
3.通过在模型之间共享基础架构,显着降低了运行深度学习模型的成本。
4.使任何人都可以轻松构建深度学习,从而使技术更易于访问。
模型能达到多高的准确率?
模型的准确性取决于以下因素:
1.数据量
2.问题中的类/标签/对象的数量
3.问题的复杂性(类彼此之间有多么不同)
4.训练数据和测试数据相互接近
在添加数据后,该平台提供了一个界面,以提高模型的准确性。
NanoNets使用什么技术?
使用Deep Neural Networks。在后端的堆栈使用Golang,Python,Cassandra,Mysql,Tensorflow,Caffe,Torch,Keras,Theano,Elasticsearch和Docker,所有这些都托管在AWS上。
让迁移学习变得简单
该服务中包含一系列预训练的模型,其已针对数百万个参数进行过训练。只需要上传自己的数据(或在网络上搜索数据),该服务即可针对具体任务选择最适合的模型,在现有预训练模型的基础上建立新的NanoNet,将传入的数据输入到NanoNet中进行处理。
主界面
需要科学上网!
可以看到该平台提供了图片分类、目标检测、图像相似度、图像质量四种服务,我测试了前两种。图片分类,自己上传的数据每一类不能低于25张;目标检测,自己上传的数据每一类不能低于50张,上传数据之后,需要在页面中完成图片中目标的标注。
上图是图片分类的流程设置完标签,按步骤上传完图片就可以开始训练了,关于模型是这个平台自动选择的,训练完成之后,会生成一个API Key,可以用 Shell, Ruby, Golang, Java, C# 和Python语言调用,来实现分类任务,目标检测同样会生成API,下图是目标检测流程。
整体流程
上传数据(这里我训练一个狗的检测器,用的Cats vs Dogs数据集中的图片)
打标签之前确认自己打标签还是购买该平台的服务
打标签界面
训练结束之后的各类曲线
进行测试
生成的API
使用API进行预测
测试结果会以json格式返回。
关于价格
如果仅仅是做自己的小项目的话一个月1000次的用量应该够了,但是想做更大的项目,还是需要购买服务或者探索该平台的背后运作机制来自己实现。
有关该平台API使用的更详细文档 :https://app.nanonets.com/documentation