机器学习环境

vergeml的Python项目详细描述


VergeML

vergeml是一个基于命令行的环境,用于探索、培训和运行最先进的机器学习模型。它提供随时可用的模型,处理数据预处理和扩充,跟踪您的ai的培训课程,并提供诸如自动rest接口

下面是它的实际效果:

terminal

安装

vergeml在windows、linux和macos上运行。您需要使用python 3.6和TensorFlow installed

通过pip获取vergeml:

pip install vergeml

键入:

ml help

恭喜,你已经成功安装了vergeml!如果需要进一步帮助,请参阅完整的installation guide

快速启动

让我们创建一个非常简单的图像分类器来区分猫和狗。

首先,我们为分类器创建一个新项目。项目可以帮助您组织数据、保存培训结果并比较培训的ais之间的性能。

转到要创建项目的目录并键入:

ml --model=imagenet new cats_dogs

这建立了一个基于Keras的模型,称为imagenet,它基于转移学习。

让我们切换到此项目目录并查看:

cd cats_dogs

vergeml将自动创建一个samples文件夹和一个配置文件(vergeml.yaml)。除此之外,此配置文件定义了当前模型。

让我们来了解如何使用当前型号:

ml help

在输出中,您将看到一个关于模型函数的部分。它说我们有两个模型函数,训练和预测。我们先试试训练吧!

开始训练!

要开始训练人工智能,我们需要一个数据集:

ml download:cats-and-dogs

Info: VergeML provides several datasets to get you started. To see a list type ml help download

下载完成后,您将在samples目录中看到许多图片,这些图片分为两个文件夹:cats和dogs。

稍后,当您使用自己的数据时,只需将图像复制到samples目录的子目录中。vergeml会自动将目录名作为标签。

要开始训练,请键入:

ml train

作为第一步,vergeml将把我们的每个图像输入一个预先训练好的神经网络,提取它们的特征作为输出,并将其缓存在磁盘上。(在GPU上,这通常需要大约15分钟)然后它将基于此输出训练一个新的神经网络。作为最后一步,它将把这两个网络结合成一个为我们的猫和狗分类任务量身定制的网络。这个过程叫做“转移学习”。

vergeml将在我们的培训结束后打印出测试精度,以评估模型的最终性能。我们的猫狗分级机达到98.6%,相当不错。

Info: By default, VergeML reserves 10% of your samples as validation and 10% as testing data. This step is required to measure the accuracy of your model.

我们可以使用list命令检查模型的性能:

ml list

这将为您提供名称(前缀是@符号)和一些性能指标。

例如,训练精度(acc)将告诉你你的人工智能在训练过程中对图像的分类有多好,而验证精度(val_acc)则告诉你它对看不见的图像的性能有多好。

从命令行使用ai

我们的猫和狗分类器现在可以使用了。让我们把它指向猫或狗的图像,看看它能预测什么:

ml @name-of-your-AI predict <filename>

Info: You can even point it to a directory: ml @name-of-your-AI predict my_cats_and_dogs_pictures/*

启动rest服务

最后,让我们在web服务上部署我们新训练的ai:

ml @name-of-your-AI run:rest

vergeml提供了一个api资源管理器,它将在新的浏览器窗口中启动。(如果不想打开浏览器,请使用--no-browser选项。)

例如,要对curl使用rest接口:

curl -F 'files=@path/to/image' http://localhost:2204/predict

许可证

MIT

版权所有(c)2018-2019 Markus Ecker

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何使用Ibatis在插入时返回ID(使用返回关键字)   java(org.hibernate.TransactionException)org。冬眠TransactionException:事务未成功启动   java小程序jwindow始终位于JNLP顶部   在Java中重新解析JSON对象?   java单击后将ListView数据移动到新屏幕   Mule ESB中的java WSA寻址特性   Java,对象编程:获取返回0值的方法   hibernate的Java通用问题,如何处理T get(K id)   java在使用超级CSV读取CSV时忽略引用   ssh使用Java远程运行命令   java如何向具体用户发送websocket消息?   在JAVA中,我可以在不指定的情况下使用条件运算符吗?