【转载】史上最全:TensorFlow 好玩的技术、应用和你不知道的黑科技( 四 )


【转载】史上最全:TensorFlow 好玩的技术、应用和你不知道的黑科技

文章插图
这样一个场景,利用原生的构造太难了,但是用Keras,只需要考虑设计你的模型,如何来完成类似的功能,完全不用担心的实现,如图是一个类似问题的一个简单地模型设计:
【转载】史上最全:TensorFlow 好玩的技术、应用和你不知道的黑科技

文章插图
更详细一点:
【转载】史上最全:TensorFlow 好玩的技术、应用和你不知道的黑科技

文章插图
而在Keras中如何实现呢?
video = tf.keras..Input(shape=(None, 150, 150, 3))cnn = tf.keras..(='', =False, pool='avg)cnn. == tf.keras..(cnn)(video) = tf..LSTM(256)() = tf.keras..Input(shape=(100), dtype='int32')x = tf.keras..(10000, 256, =True)() = tf.keras..LSTM(128)(x)x = tf.keras..([, ])x = tf.keras..Dense(128, =tf.nn.relu)(x) = tf.keras..Dense(1000)(x)model = tf.keras..Mode([video, ], )pile(=tf.(), loss=tf.)
这里代码是无法在现在的版本上跑的,如果想了解下keras上构建上述模型的简便性,可以看看Keras的文档() 。Keras在构造深度模型的方便是大家众所周知的,值得期待之后Keras在的更新:
【转载】史上最全:TensorFlow 好玩的技术、应用和你不知道的黑科技

文章插图
High-Level APIs:in a Box
在灵活性、可扩展性、可维护性上做的很好,但是现在在高级api、模块式算法这块原先都还不足,但是 Brain的工程师在这个talk上介绍了一些High-level API的相关工作 。
【转载】史上最全:TensorFlow 好玩的技术、应用和你不知道的黑科技

文章插图
构造左图中所示的深度网络只需要如图右中的七行代码同样,构建训练、评估、预测也很快可以通过api调用完成:
【转载】史上最全:TensorFlow 好玩的技术、应用和你不知道的黑科技

文章插图
最后是Model in a Box
area = ("")rooms = ("") = ("", ) = (=[area, room, ]).fit().()
【转载】史上最全:TensorFlow 好玩的技术、应用和你不知道的黑科技

文章插图
其他技术及生态
ML
可能最开始被人知晓,就是因为大家都觉得他是一个深度学习的框架,其实不是,现在上还有很多机器学习的算法集成:
【转载】史上最全:TensorFlow 好玩的技术、应用和你不知道的黑科技

文章插图
而且算法API的开发都是仿照-learn的风格,有下做机器学习的小伙伴,可以很快的适应 。
这里值得提出的,有趣对机器学习和深度学习模型的支持,小伙伴们可以特别容易地结合传统的机器学习方法和深度学习模型来一起训练:
【转载】史上最全:TensorFlow 好玩的技术、应用和你不知道的黑科技

文章插图
分布式
在分布式性能上,前面也提到了,在1.0版本上有了很大的提升可以做到64块GPU上达到58倍的加速,这里先基本介绍下数据并行和模型并行:
【转载】史上最全:TensorFlow 好玩的技术、应用和你不知道的黑科技

文章插图

【转载】史上最全:TensorFlow 好玩的技术、应用和你不知道的黑科技

文章插图
怎么在写分布式代码,这里我就不说了,很简单地配置,这里我讲下,可能大部分像我这样的小伙伴之前不太了解的一些彩蛋 。在中做分布式训练的一些技巧,有过分布式train的经验应该会很感激这些黑科技:
上面说的是啥呢?在保存模型的参数时,默认是每一个ps存一个,然后下一个到下个ps上存,但是就会存在很多问题,可能这个很小,但是另一个很大,这样你会发现ps和work之间的带宽的占用差距很多,怎么解决呢?看下面几张图 。
【转载】史上最全:TensorFlow 好玩的技术、应用和你不知道的黑科技

文章插图

【转载】史上最全:TensorFlow 好玩的技术、应用和你不知道的黑科技

文章插图