虽然我不会写代码,但是搞定深度学习和人工智能只是小菜一碟

人工智能、深度学习、爬虫算法、架构框架、Java、PHP、C++……听起来好像都很厉害的样子,但是如果我不是一名程序员,不会写代码,怎么能轻松玩转这些高级关键词,和 IT 领域的大咖进行深入交流呢?

Uber 近期就开源了这么一个神奇的项目,即使不会写代码,也能轻松入门深度学习,这绝对是史上门槛门槛最低的深度学习框架,从小朋友到老大爷,全都能轻松开始深度学习之旅。

虽然我不会写代码,但是搞定深度学习和人工智能只是小菜一碟

Ludwig是一个建立在TensorFlow之上的工具箱,它允许用户在不需要编写代码的情况下训练和测试深度学习模型。用户只需要提供一个包含数据的CSV文件,一个列表作为输入,一个列表作为输出,Ludwig就将为你完成其余的工作:训练、测试、可视化、分布式训练等等。

安装Ludwig只需要一行代码:

pip install ludwig

训练模型:

ludwig train

--data_csv file.csv

--model_definition definition.yaml

模型预测:

ludwig predict

--data_csv data.csv

--model path_to_model

可视化:

ludwig visualize

--visualization learning_curves

--training_statistics train_statistics.json

当然,对于熟悉Python的用户,Ludwig也提供了非常简单易用的API:

from ludwig import LudwigModel

# train a model

model_definition = {...}

model = LudwigModel(model_definition)

train_stats = model.train(training_dataframe)

# or load a model

model = LudwigModel.load(model_path)

# obtain predictions

predictions = model.predict(test_dataframe)

model.close()

可视化工具允许你分析模型的训练和测试性能,并对它们进行比较。

虽然我不会写代码,但是搞定深度学习和人工智能只是小菜一碟

虽然我不会写代码,但是搞定深度学习和人工智能只是小菜一碟

Ludwig在构建时考虑了可扩展性原则,很容易添加对新数据类型和新模型体系结构的支持。工程人员可以使用它快速训练和测试深度学习模型,研究人员也可以使用它来获得强有力的基线版本,并方便进行对比,并通过执行标准数据预处理和可视化来确保模型可比性。

核心设计原则是:

无需编码:不需要编码技能来训练模型也不需要编码用它进行预测。

通用性:一种新的基于数据类型的深度学习模型设计方法,使该工具可以跨许多不同的应用领域使用。这点无比强大!

灵活性:经验丰富的用户对模型构建和训练可进行有效的控制,而新手会容易上手。

可扩展性:易于添加新的模型体系结构和新的特征数据类型。

可理解性:深度学习模型内部通常被认为是黑匣子,但是该库提供标准的可视化来理解它们的性能并比较它们的预测。

Ludwig 提供了一套 AI 架构,可以组合起来,为给定的用例创建端到端的模型。开始模型训练,只需要一个表格数据文件(如 CSV)和一个 YAML 配置文件——用于指定数据文件中哪些列是输入特征,哪些列是输出目标变量。如果指定了多个输出变量,Ludwig 将学会同时预测所有输出。使用 Ludwig 训练模型,在模型定义中可以包含附加信息,比如数据集中每个特征的预处理数据和模型训练参数, 也能够保存下来,可以在日后加载,对新数据进行预测。

虽然我不会写代码,但是搞定深度学习和人工智能只是小菜一碟

对于 Ludwig 支持的数据类型(文本、图像、类别等),其提供了一个将原始数据映射到张量的编码器,以及将张量映射到原始数据的jie码器(张量是线性代数中使用的数据结构)。内置的组合器,能够自动将所有输入编码器的张量组合在一起,对它们进行处理,并将其返回给输入jie码器。

Uber 表示,通过组合这些特定于数据类型的组件,用户可以将 Ludwig 用于各种任务。比如,组合文本编码器和类别jie码器,就可以获得一个文本分类器。

虽然我不会写代码,但是搞定深度学习和人工智能只是小菜一碟

每种数据类型有多个编码器和jie码器。例如,文本可以用卷积神经网络(CNN),循环神经网络(RNN)或其他编码器编码。用户可以直接在模型定义文件中指定要使用的参数和超参数,而无需编写单行代码。

Ludwig 采用的这种灵活的编码器-jie码器架构,即使是经验较少的深度学习开发者,也能够轻松地为不同的任务训练模型。比如文本分类、目标分类、图像字幕、序列标签、回归、语言建模、机器翻译、时间序列预测和问答等等。

此外,Ludwig 还提供了各种工具,且能够使用开源分布式培训框架 Horovod。目前,Ludwig 有用于二进制值,浮点数,类别,离散序列,集合,袋(bag),图像,文本和时间序列的编码器和jie码器,并且支持选定的预训练模型。

GitHub 地址:https://github.com/uber/ludwig

转载于:https://my.oschina.net/jiagouyun/blog/3029699

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值