我胡汉三又回来啦~~
打算写个系列,记录自己学到的东西,以及给出好的阅读链接(均为我个人觉得很有用的)
1、tensorflow的数据读取机制
利用两个队列,文件名队列和内存队列。
文件名队列使用tf.train.string_input_producer,传入文件名list,得到一个文件名队列。
内存队列不需要我们自己建立,使用reader对象从文件名队列中读取数据就可以了。
十图详解TensorFlow数据读取机制(附代码) 图很清晰,讲的也清楚
tensorflow中协调器 tf.train.Coordinator 和入队线程启动器 tf.train.start_queue_runners
2、tf.slice()
slice(input,begin,size)
input是即将要被切得tensor
begin是每个维度的起始位置
size是每个维度取多少元素
3、tf.pad(input, paddings, name = None)
paddings里面每组[a,b]形式的东西表示,在相应的维度上,前面加a个0(或a行0),后面加b个0(或b行0)
4、Depthwise卷积和Pointwise卷积
Depthwise是每个通道只被一个卷积核卷积,Pointwise是卷积核的尺寸为1*1。
Depthwise卷积和Pointwise卷积
【Tensorflow】tf.nn.depthwise_conv2d如何实现深度卷积?
5、tensorflow的slim模块中的BatchNorm问题
没理解这部分,还需要再学习
#这几行代码看不懂
train_op = slim.learning.create_train_op(total_loss, opt)
update_ops = tf.get_collection(tf.GraphKeys.UPDATE_OPS)
if update_ops:
updates = tf.group(*update_ops)
total_loss = control_flow_ops.with_dependencies([updates], total_loss)
tensorflow中的batch_norm以及tf.control_dependencies和tf.GraphKeys.UPDATE_OPS的探究
TF-Batch Normalization的实际用法
tf.control_dependencies
6、tf.summary.merge_all()
将之前定义的所有summary整合在一起,在一个程序中定义的写日志操作比较多,如果一一调用,将会十分麻烦,所以Tensorflow提供了tf.summary.merge_all()函数将所有summary整理在一起。在TensorFlow程序执行的时候,只需要运行这一个操作就可以将代码中定义的所有【写日志操作】执行一次,从而将所有的日志写入【日志文件】。
TensorFlow的汇总类Summary和FileWriter用法
Tensorflow学习笔记——Summary用法
7、tf.ConfigProto()
用在创建session的时候,对session进行参数配置。
tensorflow中使用tf.ConfigProto()配置Session运行参数&&GPU设备指定
8、模型的保存与恢复
模型的保存与恢复(Saver)