(1)TensorFlow常用Python扩展包
TensorFlow 能够实现大部分神经网络的功能。但是,这还是不够的。对于预处理任务、序列化甚至绘图任务,还需要更多的 Python 包。下面列出了一些常用的 Python 包:Numpy:这是用 Python 进行科学计算的基础包。它支持n维数组和矩阵的计算,还拥有大量的高级数学函数。这是 TensorFlow 所需的必要软件包,因此,使用 pip install tensorflow 时,如果尚未安装 Numpy,它将被自动安装。
Matplolib:这是 Python 2D 绘图库。使用它可以只用几行代码创建各类图,包括直方、条形图、错误图、散点图和功率谱等。它可以使用 pip 进行安装:
pip install matplotlib
# or use Anaconda
conda install -c conda-forge matplotlibOS:这包括在基本的 Python 安装中。它提供了一种使用操作系统相关功能(如读取、写入及更改文件和目录)的简单便携方式。
Pandas:这提供了各种数据结构和数据分析工具。使用 Pandas,您可以在内存数据结构和不同格式之间读取和写入数据。可以读取 .csv 和文本文件。可以使用 pip install 或 conda install 进行安装。
Seaborn:这是一个建立在 Matplotlib 上的专门的统计数据可视化工具。
H5fs:H5fs 是能够在 HDFS(分层数据格式文件系统)上运行的 Linux 文件系统(也包括其他带有 FUSE 实现的操作系统,如 macOS X)。
PythonMagick:这是 ImageMagick 库的 Python 绑定。它是一个显示、转换和编辑光栅图像及矢量图像文件的库。它支持超过 200 个图像文件格式。它可以使用 ImageMagick 提供的源代码来安装。某些 .whl 格式也可用 pip install(http://www.lfd.uci.edu/%7Egohlke/pythonlibs/#pythonmagick) 来安装。
TFlearn:TFlearn 是一个建立在 TensorFlow 之上的模块化和透明的深度学习库。它为 TensorFlow 提供更高级别的 API,以促进和加速实验。它目前支持最近的大多数深度学习模型,如卷积、LSTM、BatchNorm、BiRNN、PReLU、残差网络和生成网络。它只适用于TensorFlow 1.0 或更高版本。请使用 pip install tflearn 安装。
Keras:Keras 也是神经网络的高级 API,它使用 TensorFlow 作为其后端。它可以运行在 Theano 和 CNTK 之上。添加图层只需要一行代码,非常用户友好,可以使用 pip install keras 来安装。
(2)TF自带常用顶层模块介绍
整理自\
在使用 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 这几个大的常用模块功能后,再去使用起来才会感到逻辑清晰一点。