TensorFlow 的常用模块介绍

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 的子模块,用于构建循环神经网络;挑几个它下面包含的常用函数看看:

avg_pool(...): 平均池化

batch_normalization(...): 批标准化

bias_add(...): 添加偏置

conv2d(...): 2维卷积

dropout(...): 随机丢弃神经网络单元

relu(...): relu 激活层

sigmoid_cross_entropy_with_logits(...): sigmoid 激活后的交叉熵

softmax(...): softmax 激活层

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

Module: tf.contrib

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

contrib module containing volatile or experimental code.

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

bayesflow 贝叶斯计算

cloud 云操作

cluster_resolver 集群求解

compiler 控制 Tensorflow/XLA JIT 编译器

copy_graph 在不同的计算图之间复制元素

crf 条件随机场

cudnn_rnn Cudnn 层面的循环神经网络操作

data 用于构造输入数据的流水线

decision_trees 决策树相关模块

deprecated 记录已经或将被替换的summary函数

distributions 各种统计分布相关的操作

estimator 自定义标签与预测的对错的度量方式

factorization 聚类以及因子分解

ffmpeg 用 FFmpeg 处理声音文件

framework 框架类工具,包含了变量操作、命名空间、checkpoint 操作

gan 对抗生成相关

graph_editor 计算图的操作

grid_rnn GridRNN 相关

image 图像操作

input_pipeline 输入流水线

integrate 求解常微分方程

keras Keras 相关 API

kernel_methods 核映射相关方法

kfac KFAC 优化器

labeled_tensor 有标签的 Tensor

layers 类似 nn 里面的函数,一些经典 CNN 方法的重构

learn 类似 ski-learn 的 高级 API

legacy_seq2seq RNN 模型用于序列数据

linalg 线性代数相关

linear_optimizer 训练线性模型、线性优化器

lookup 构建快速查找表

losses loss 相关

memory_stats 设备内存使用情况

meta_graph_transform 计算图转换

metrics 各种度量模型表现的方法

nccl 一些收集结果的操作

ndlstm ndlstm 相关

nn tf.nn 某些方法的其他版本

opt 某些优化器的其他版本

predictor 构建预测器

reduce_slice_ops 切片约减

remote_fused_graph module: Remote fused graph ops python library.

resampler 重抽样

rnn 其他的循环神经网络操作

saved_model 更加易用的模型保存、继续训练、模型转换

seq2seq 序列解码以及序列 loss

session_bundle

signal 信号处理相关

slim contrib 主模块的交互方式,主要入口

solvers 贝叶斯计算

sparsemax 稀疏概率激活函数及相关 loss

specs specs ops.

staging 分段输入

stat_summarizer 查看运行状态

stateless 伪随机数

tensor_forest 随机森林

tensorboard 可视化工具

testing 单元测试工具

tfprof 查看模型细节的工具

timeseries 时间序列工具

tpu TPU 配置

training 训练及输入相关工具

util Tensors 处理相关工具

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

Module: tf.train

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

class AdadeltaOptimizer: Adadelta 优化器

class AdamOptimizer: Adam 优化器

class Coordinator: 线程管理器

class Example tfrecord 的生成模板

class ExponentialMovingAverage: 指数移动平均

class GradientDescentOptimizer: 梯度下降优化器

class MomentumOptimizer: 动量优化器

class NanTensorHook: loss 是否为 NaN 的捕获器

class QueueRunner: 入队队列启动

class RMSPropOptimizer: RMSProp 优化器

class Saver: 保存模型和变量类

NewCheckpointReader(...)checkpoint 文件读取

batch(...): 生成tensorsbatch

create_global_step(...): 创建 global step

get_checkpoint_state(...): 从 "checkpoint" 文件返回模型状态

init_from_checkpoint(...): 从 checkpoint 文件初始化变量

latest_checkpoint(...): 寻找最后一次的 checkpoint 文件

list_variables(...): 返回 checkpoint 文件变量为列表

load_variable(...): 返回 checkpoint 文件某个变量的值

match_filenames_once(...): 寻找符合规则的文件名称

shuffle_batch(...): 创建随机的 Tensor batch

start_queue_runners(...): 启动计算图中所有的队列

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

Module: tf.summary

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

class FileWriter: Summary文件生成类

class Summary Summary 类

get_summary_description(...): 获取计算节点信息

histogram(...): 展示变量分布信息

image(...): 展示图片信息

merge(...): 合并某个 Summary 信息

merge_all(...): 合并所有的各处分散的 Summary 信息到默认的计算图

scalar(...): 展示某个标量的值

text(...): 展示文本信息

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

常用函数和方法

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

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

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

最新发表
友情链接

Copyright © 2022 篮球世界杯_世界杯亚洲区名额 - cdbnfc.com All Rights Reserved.