tensorfx框架

tensorfx的Python项目详细描述


TensorFx简介
==


TensorFx是一个端到端的应用程序框架,它简化了使用"TensorFlow"lt;http://tensorFlow.org>;``的机器学习,并将其用于预测。它是从头开始设计的,目的是通过更高层次的构建块使主线场景变得简单,
同时通过保持TensorFlow API的灵活性,确保自定义或复杂场景仍然是可能的。


框架:


1。**一组简单、一致的使用模式**本地或云、单个
节点或分布式执行、内存数据或大数据在文件中分片
,无论代码如何执行,您都必须以单一方式编写一次代码


2.**一个包含有用抽象的工具箱**是手头
任务的正确入口点,首先是现成的算法,让您可以
专注于功能工程和超参数优化。如果您需要
解决一些问题,您可以专注于构建tensorflow图,
,而不是基础结构代码(分布式集群设置,
检查点、日志记录、导出模型等)。

3.**声明性**使用yaml、json和简化的python接口来最小化样板代码的数量。


OK,足够的上下文…以下是一些帮助您入门的信息。


入门
----


一旦您拥有了python环境(建议:使用miniconda),
安装很简单:




pip install tensorfx

请注意tensorfx依赖于tensorflow 1.0和支持库
,如numpy和pandas。


文档
----


文档位于https://tensorlab.github.io/tensorfx/。这包括
api参考主题,以及概念和操作方法主题。他们的工作正在进行中,但请查看他们!有几个示例
演示了如何在存储库中启动。同样,随着时间的推移,我们还将添加更多的内容。


由于该项目处于超级早期阶段,且发展迅速,
最好是通过提交问题进行讨论,以便做出任何贡献。


building and testing
~~~~~~~~~~~~~~~~~~~~~~



::



-----------------------------

此示例快速介绍了使用tensorfx的5分钟。
以下是构建"iris
数据集<;https://archive.ics.uci.edu/ml/datasets/iris>;分类模型的代码
::


将tensorfx导入为tfx
将tensorfx.models.nn导入为nn

超参数、训练参数和数据
args,job=nn.feedForwardClassificationArguments.parse(parse_job=true)
dataset=tfx.data.csvdataset(args.data_schema,
train=args.data_train,
eval=args.data_eval,
metadata=args.data_metadata,
features=args.data_features)


inition=nn.feedforwardclassification(args,dataset)

\training
trainer=tfx.training.modeltrainer()
模式L=培训师。培训(分类,工作)

预测
实例=[
'6.3,3.3,6,2.5',弗吉尼亚
'4.4,3,1.3,0.2',setosa
'6.1,2.8,4.7,1.2''versicolor
]
预测=模型。预测(实例)

o执行tensorfx提供的基本用法:


1。解析(或构建)arguments对象,通常从命令行
定义超参数。这个对象对应于您正在训练的
模型的类型,因此,
本例中的"feedForwardClassificationAguments"。
2。创建一个数据集以引用培训和评估数据,以及
支持的配置,即模式、元数据和
功能(更多内容见下文)。
3。初始化模型生成器-在本例中为
``FeedForwardClassification`.
4。初始化模型训练器,并调用运行
训练过程的"train()",以返回模型。
5。加载一些要在模型中运行的实例并调用
``predict()`.

^^^^^^^^^^^^^^^^^^^^^^^^^^

schema描述数据的结构。这可以通过编程定义
,但可以方便地用声明性yaml
形式表示,并与训练数据放在一起。




字段:
-名称:种类
类型:离散
-名称:花瓣长度
类型:数值
-名称:花瓣宽度dth
类型:numeric
-名称:分隔长度
类型:numeric
-名称:分隔宽度
类型:numeric

元数据-metadata.json
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

元数据是基于模式中的类型信息分析训练数据的结果.iris是一个很小的数据集,因此可以使用简单的python代码循环在数据上生成元数据。对于
真实世界和大型数据集,您会发现spark和bigquery(在google
云平台上)是基本的数据处理运行时。请继续关注-
tensorfx将为这些功能提供开箱即用的支持。




{
"物种":{"条目":["setosa","virginica","versicolor"]},
"花瓣长度":{"最小":4.3,"最大":7.9},
"花瓣宽度":{"最小":2.0,"最大":4.4},
"萼片长度":{"最小":1.1,"最大":6.9},
"萼片宽度":{"最小":0.1,"最大":2.5}
}

features-features.yaml
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

特性描述了模型在
上操作的一组输入,以及如何通过对数据中的
字段应用转换来生成这些输入。将这些转换转换为tensorflow
图结构,并一致地应用于训练数据和预测数据。


在这个特定的示例中,feedforwardclassification模型需要两个特性:x定义模型用于生成
推断的值ces和y,模型预期要预测的目标标签,定义如下:






功能:
-名称:x
类型:concat
功能:
-名称:花瓣宽度
类型:比例
-名称:花瓣长度
类型:scale
-name:sepal_width
type:log
-name:sepal_length
type:log
-name:y
type:target
fields:species

运行模型的python代码可以直接运行,也可以使用`` train``
工具,如图所示:



--模块iris.trainer.main\
--输出/tmp/tensorfx/iris/csv\
--数据训练iris/data/train.csv\
--数据评估iris/data/eval.csv\
--数据模式iris/data/schema.yaml\
--数据元数据a iris/data/metadata.json \
--数据特征iris/features.yaml \
--日志级tensorflow错误\
--日志级信息\
--批大小5 \
--最大步骤2000 \
--检查点间隔秒1 \
--隐藏层:120 \
--隐藏层S:210

培训完成后,您可以列出输出
目录的内容。您应该在"model"子目录中看到模型(预测图,并学习了
变量),以及检查点和
摘要。




ls-r/tmp/tensorfx/iris/csv
检查点作业。yaml model summaries

/tmp/tensorfx/iris/csv/checkpoiNT:
检查点模型.ckpt-2000.索引
模型.ckpt-1.数据-00000-of-00001模型.ckpt-2000.元
模型.ckpt-1.索引模型.ckpt-2001.数据-00000-of-00001
模型.ckpt-1.元模型.ckpt-2001.索引
model.ckpt-1562.data-00000-of-00001 model.ckpt-2001.meta
model.ckpt-1562.index model.ckpt-778.data-00000-of-00001
model.ckpt-1562.meta model.ckpt-778.index
model.ckpt-2000.data-00000-of-00001 model.ckpt-778.meta

/tmp/tensorfx/iris/csv/模型:
保存的模型。pb变量

/tmp/tensorfx/iris/csv/模型/变量:
变量。data-00000-of-00001变量。索引

/tmp/tensorfx/iris/csv/摘要:
评估预测序列

/tmp/tensorfx/iris/csv/摘要/eval:
事件。out.tfevents.1488351760
事件。out.tfevents.1488352853

/tmp/tensorfx/iris/csv/摘要/预测:
事件。out.tfevents.1488351765

/tmp/tensorfx/iris/csv/摘要/序列:
事件。out.tfevents.1488351760
事件。out.tfevents.1488352852


摘要是在培训期间记录的TensorFlow事件。可以在培训工作运行时观察到它们(当
运行一个长时间或实际的培训工作时,这一点至关重要),以了解您的培训是如何进行的,或者模型是如何收敛的(或不是!).

::


tensorboard--logdir/tmp/tensorfx/iris/csv

这应该会显示tensorboard。查看自动发布的图结构、
度量和其他张量很有用。

**训练图**

……图::https://tensorlab.github.io/tensorfx/_static/images/intro graph.jpg
:alt:tensorboard中的图


**tensorboard中的图
**培训指标--准确性、损失和吞吐量**

。图::https://tensorlab.github.io/tensorfx/\u static/images/intro metrics.jpg
:alt:tensorboard中的度量


tensorboard中的度量
**模型变量——权重、梯度等**

。图::https://tensorlab.github.io/tensorfx/u static/images/intro watch.jpg
:alt:watch in learn variables

watchin learn variables
如您所见,开箱即用的模型处理了许多细节。
相同的代码可以在一台机器上运行,也可以在一个集群中运行(of
当然,iris是一个太简单的问题,不需要它。

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

推荐PyPI第三方库


热门话题
java使用ContentExchange设置请求属性   java Spark/Hdfs/Hdfsclient兼容性   java springcloudstreamkafka配置:instanceCount和instanceIndex   Java中web服务序列化日期   java用动态数据替换占位符   java git gc似乎覆盖了一个packfile,留下了一个打开的文件描述符,其中包含对“oldxxx.pack”的引用   为什么Apache项目对Java版本敏感?   java Anylogic帮助如何在导入的3dobject通过输送机上的多个“站”时更改其颜色?   JavaEclipseNeonM2E可以导入一个大型项目,但似乎不能自动解决依赖关系   java@FindBy搜索具有满足条件的子元素的元素   java如何将ActionEvent e与键绑定一起使用?   java转换以集中方式从外部库抛出的异常   java中用户文件/数据文件与系统/程序文件的区别   java使用变量字符串或字符作为对象名   字体使用Java图形操纵字符串中每个字符的形状   JavaFX图表移动数据   java RandomAccessFile:将所有项设置为相同的字节数?   java Google Play inapp Billing onPurchasesUpdated()错误响应代码1   java在不知道属性名和属性数的情况下处理json对象   java是否可以一次从HazelcastInstance(映射和列表)中删除所有数据?