1.为模型的参数命名,以及参数在不同的命名空间下
with tf.name_scope('str') as scope: ....... 再次范围下的所有模型的参数名都会带有该str前缀
TensorFlow中的每一个op操作都成为一个节点,同样,主要op都会有一个名字,这个节点里面的tensor就可以通过这个名字进行取出来,所以对于在计算途中定义的每一个主要op所得到的tensor都是可以取出来的。
2.大致的更新过程
首先是通过loss()函数得到损失值,然后交给tf.scalar_summary,然后再与summarywriter配合使用,向事件文件生产汇总值,然后在写入汇总值,写入的时候会释放当前的Tensor值,相当于更新了tensor的值
3.状态可视化
可以利用tensorboard查看当前数据的运行情况,但是要使用
tf.merge_all_summaries()
把所有的即时数据都融进一个操作当中,然后要每次往事件文件中写入最新的即时数据,然后可以打开tensorboard进行查看
4.模型的保存
为了评估或者进一步的训练,可以可以对当前模型的参数进行保存,利用tf.train.Saver
5.变量的创建、初始化、保存、恢复
创建利用的是tf.Variables()
tensorflow在进行运行前,都需要将所有的变量进行初始化操作,但是很多其他的数据类型,类似于numpy数组中的数据类型在tensorflow也不算是一种变量,在tf中变量主要指的是模型的参数。
保存利用tf.train.saver() ,同样在对变量进行保存时,可以进行部分保存变量,即可以保存变量的子集,但是在恢复变量的时候,要对没有保存的变量进行初始化,因为在图中,只有保存了的变量在恢复的图中才有初始值,而其他的变量则需要初始化。
Q:要保存的变量用字典表示,但是变量的名字如何让确定,在不同的范围内,变量的名字可以一样,但是前缀名不一样,而且在tf中,许多变量都有自己的名字,好多的weight都是可以在不同的变量范围内存在。所以我觉得要保存的变量名是加了范围前缀在里面的变量名。而前面的代号仅表示这个op而已,或者这个变量而已。比如人有一个小名,但是还有一个官方的名字。