TensorFlow 的常用模块介绍

一、总结

一句话总结:

Module:tf.train:这个模块主要是用来支持训练模型的
Module:tf.nn:神经网络的功能支持模块,这是最常用到的一个模块,比如用于构建经典的卷积网络,它下面还包含了 rnn_cell 的子模块,用于构建循环神经网络;
Module:tf.summary:主要用来配合 tensorboard 展示模型的信息,比如tf.summary.text
Module:tf:TensorFlow 还把那些经常使用的 Tensor 操作功能直接放在了 tf 下面,包括了:Maths、Array、Matrix 相关的操作,例如算术操作、张量(矩阵)操作、数据类型转换等等

二、TensorFlow 的常用模块介绍

转自或参考:TensorFlow 的常用模块介绍

https://zhuanlan.zhihu.com/p/32198400

在使用 TensorFlow 的时候会遇到一个问题,就是不知道要使用的功能在哪个模块中,比如是在 nn 的模块或者 contrib 的模块,所以本文梳理下常用到的四个模块的功能。

Module: tf.nn

神经网络的功能支持模块,这是最常用到的一个模块,用于构建经典的卷积网络,它下面还包含了 rnn_cell 的子模块,用于构建循环神经网络;挑几个它下面包含的常用函数看看:

可以看到,基本所有经典神经网络的操作都放在了这个模块。

Module: tf.contrib

这个模块最常用到的是它的 slim 子模块,它的官方的解释是这样的:

contrib module containing volatile or experimental code.

也就是说,所有的易于变动的,或者说实验性质的功能就放在这个模块里面;所以它下面是有着及其丰富的功能子模块的,从中也可一窥 TensorFlow 后续的发展,所以看看它下面包含的全部子模块:

可以看到,里面的东西基本涵盖了 TensorFlow 所有的功能,但是总体感觉各个功能还是有点混乱。

Module: tf.train

这个模块主要是用来支持训练模型的,照样挑几个它下面包含的常用类和函数看看:

可以看到,主要包含了模型优化器、tfrecord 数据准备、模型保存、模型读取四个大类的功能。

Module: tf.summary

主要用来配合 tensorboard 展示模型的信息,几个常用类和函数如下:

这个模块比较简单,但是使用时有些地方还是要注意,这个以后专门用一篇文章来写。

常用函数和方法

TensorFlow 还把那些经常使用的 Tensor 操作功能直接放在了 tf 下面,包括了:

Maths、Array、Matrix 相关的操作,也就是例如算术操作、张量(矩阵)操作、数据类型转换、矩阵的变形、切片、合并、规约、分割、序列比较与索引提取等常用功能。

总体来说,了解了 TensorFlow 这几个大的常用模块功能后,再去使用起来才会感到逻辑清晰一点。