@xuemingdeng
2017-08-09T14:08:37.000000Z
字数 862
阅读 964
机器学习
摘要:
Google Brain团队开源了Tensor2Tensor,为基于TensorFlow的深度学习应用提供了一系列工具,用于模块化TensorFlow的工作流组件,创建可移植、可重复的环境。
正文:
TensorFlow(TF)社区和Google的Brain团队发布了作为TF API重要扩展的Tensor2Tensor。
Tensor2Tensor(T2T)解决了在TF上训练和执行模型的模块化和可移植性问题。它将常用的深度学习模型管道抽象成一个可扩展的对象模型,并提供了TF训练所需要的标准API。T2T的目标之一是要降低模型训练管道和执行环境的重复性成本,同时减少基于TF现有API进行常见操作的工作量,这些操作原本很难在用户之间共享,它们有些只能用于解决特定的问题。
T2T基于现有的TF库执行很多操作,包括模型架构、优化器、学习率衰退、scheme和超参数。它还提供了一些预训练过的模型和样本数据集、默认的模型规范,以及超参数和modality的控制方法。这样有助于用户重复实验、比较和交换结果,让他们专注在课题研究上,而不是把大量精力花费在编排TF管道环境上。
T2T的数据集为标准的TFRecord protobuf文件,训练数据集可以通过用户自定义的Problem子类来生成,或者通过Python装饰器和直接函数调用的方式来生成。Problem对象由训练时间超参数和它们的输入输出形态及数据集组成。Problem提供了一些方法用于处理编码、文件路径、输入输出目标、超参数和默认属性值。模型的metrics(如模型准确度)也被封装在Problem中。超参数集合通过装饰器注册成Hparams对象。
训练可以被配置成同步或异步模式。通过环境变量TF_CONFIG可以指定master服务器和参数服务器,支持grpc和gpu群组,以及计算资源的逻辑集群。