更多深度文章,请关注:https://yq.aliyun.com/cloud
对于深度学习开发者来说,深度学习系统变得越来越复杂。以至于我们需要使用轻量级的工具从头到尾来管理流程,为了将更多的连续学习内置到神经网络中,这就要求我们建立可以迭代增强的更有弹性的数据集以及更多的动态模型。
深度学习开发人员必须花费大量的时间来整合神经网络的组件,管理模型生命周期,组织数据和调整系统并行度等等。随着使用新的培训样本后,人类对于神经网络模型的见解,更新模型和跟踪其变化的能力就变得非常必要了。为此伦敦帝国理工学院的一个团队开发了一个python库来管理跨学科开发人员项目的复杂迭代过程。
为了更好地管理开发过程,该团队开发了一个通用的Python库——TensorLayer。这个库集成了很多开发过程中包括的方法,其中包括(操作、模型生命周期、并行计算、失败)都以模块化进行抽象。这些模块包括以下功能:用于管理神经网络层、用于管理模型和其生命周期、用于管理数据集、最后是解决容错的工作流模块。而TensorFlow是培训和推理的核心平台,它为MongoDB提供了存储空间。这些API的使用可以在文末链接中查看,正是由于这些API的存在,TensorLayer才会如此的强大。
深度学习的开发人员可以借助TensorLayer的功能编写了多媒体应用程序。这些功能包括提供和导入层实现,构建神经网络,管理模型生命周期,创建在线或离线数据集,以及编写训练计划。这些功能分为四个模块:层,网络,数据集和工作流。
该团队表示,虽然像Keras和TFLearn这样的工具现在很有用,但它们并不像网络那样可以随网络的扩张变得更复杂甚至无限制的迭代。它们提供了必要的抽象,以降低使用工具的门槛,但又掩盖了很多底层的算法。虽然对开发者有好处,但是相对来说底层技术就变得难以调整和修改,而底层技术的修改和调整,这在解决许多现实世界的问题上是非常必要的。
与Keras和TFLearn相比,TensorLayer不仅提供了高级抽象,而且提供了包括数据预处理、训练、训练后处理,以及服务模块和数据库管理在内的端到端工作流程,这些是开发者建立一个完整模型所需要的全部过程。
TensorLayer倡导更灵活且可组合的范式:神经网络库可以与本机引擎交换使用。这允许开发者轻松地利用预建模块,而且不会影响可见性。这种非侵入性也使得与其他TF的包装器如TF-Slim和Keras合并成为了可能。并且开发小组认为,灵活性不会影响性能。
该小组在文档中中强调了许多应用,其中还提供了有关每个模块、整体架构和当前开发的详细信息。应用包括生成对抗网络、深层加强学习、最终用户环境中的超参数调优。自去年GitHub发布以来,TensorLayer已经被用于多模式研究、图像转换和医疗信号处理。
TensorLayer正处于积极的发展阶段,而且从开放社区获得了许多贡献。它已被伦敦帝国理工学院,卡内基梅隆大学,斯坦福大学,清华大学,加州大学洛杉矶分校等大学研究人员广泛使用,还包括谷歌,微软,阿里巴巴,腾讯,ReFULE4,彭博等许多工程师。
TensorLayer安装:
TensorLayer需要一些预安装库,如 TensorFlow , numpy 和 matplotlib。 对于 GPU 加速,需要安装 CUDA 和 cuDNN。
如果你遇到麻烦,可以查看 TensorFlow
安装手册 ,它包含了在不同系统中安装 TensorFlow 的步骤。
如需了解更多关于TensorFlow 的相关功能,请点击:TensorLayer 中文文档。
文章原标题《Managing Deep
Learning Development Complexity》
作者:Nicole Hemsoth 译者:袁虎 审阅:阿福
文章为简译,更为详细的内容,请查看原文