(一)、文件保存:
1.创建存储器:
tf.train.Saver(var_list=None,reshape=False,sharded=False,max_to_keep=5,keep_checkpoint_every_n_hours=10000.0,name=None,restore_sequentially=False,saver_def=None,builder=None)
2.保存:
tf.train.Saver.save(sess,save_path,global_step=None,latest_filename=None,meta_graph_suffix='meta',write_meta_graph=True)
3.恢复:
tf.train.Saver.restore(sess,save_path)
4.列出最近未删除的checkpoint文件名:
tf.train.Saver.last_checkpoints
5.设置checkpoint文件名列表:
tf.train.Saver.set_last_checkpoints(last_checkpoints)
6.设置checkpoint文件名列表和时间戳(chuō):
tf.train.Saver.set_lat_checkpoints_with_time(last_checkpoints_with_time)
(二)、Tensorboard可视化:
1.标量数据汇总,输入protobuf:
tf.summary.scalar(tags,values,collections=None,name=None)
2.记录变量var的直方图,输出带直方图的汇总的protobuf:
tf.summary.histogram(tag,values,collections=None,name=None)
3.图像数据汇总,输出protobuf:
tf.summary.image(tag,tensor,max_images=3,collection=None,name=None)
4.合并所有的汇总日志:
tf.summary.merge(inputs,collections=None,name=None)
5.创建一个SummaryWriter:
tf.summary.FileWriter
5.将protobuf写入文件的类:
class SummaryWriter:
add_summary(),add sessionlog(),add_event(),or add_graph()
(三)、张量类型
tensor类型 python类型 描述
DT_FLOAT tf.float32 32位浮点数
DT_DOUBLE tf.float64 64位浮点数
DT_INT64 tf.int64 64位有符号整型
DT_INT32 tf.int32 32位有符号整型
DT_INT16 tf.int16 16位有符号整型
DT_INT8 tf.int8 8位有符号整型
DT_UINT8 tf.uint8 8位无符号整型
DT_STRING tf.string 可变长度的字节数组。每一个张量元素都是一个字节数组
DT_BOOL tf.bool 布尔型
DT_COMPLEX64 tf.complex64 由两个32位浮点数组成的复数:实数和虚数
(四)、标量向量和矩阵的阶数:
rank 实例 例子
0 标量(只有大小) a=1
1 向量(大小和方向) b=[1,1,1,1]
2 矩阵(数据表) c=[[1,1,],[1,1]]
3 3阶张量(数据立体) d=[[[1],[1]],[[1],[1]]]
n n阶 e=[[[[[[...[[1],[1],]]]...]]]]] (n层中括号)
(五)、类型变换相关函数:
函数 描述
tf.string_to_number(string_tensor,out_type=None,name=None) 字符串转为数字
tf.to_double(x,name='ToDouble') 转为64位浮点类型
tf.to_float(x,name='ToFloat') 转为32位浮点类型
tf.to_int32(x,name='ToInt32') 转为32位整型
tf.to_int64(x,name='ToInt64') 转为64位整型
tf.cast(x,dtype,name=None) 将x或者x.values转换为dtype所指定的类型。例如:W=tf.Variable(1.0) tf.cast(W,tf.int32)==>W=1 #dtype=tf.int32
(六)、类型变换相关函数:
函数 描述
tf.ones(shape,dtype) 按指定类型与形状生成值为1的张量。例如:tf.ones([2,3],tf.int32)==>[[1 1 1] [1 1 1]]
tf.zeros(shape,dtype) 按指定类型与形状生成值为0的张量。例如:tf.zeros([2,3],tf.int32)==>[[0 0 0] [0 0 0]]
tf.ones_like(input) 生成和输入张量一样形状和类型的1。例如:tensor=[[1,2,3],[4,5,6]] tf.ones_like(tensor) ==>[[1 1 1] [1 1 1]]
tf.zeros_like(input) 生成和输入张量一样形状和类型的0。例如:tensor=[[1,2,3],[4,5,6]] tf.zeros_like(tensor) ==>[[0 0 0] [0 0 0]]
tf.fill(shape,value) 为指定形状填值。例如:tf.fill([2,3],1) ==>[[1 1 1] [1 1 1]]
tf.constant(value,shape) 生成常量。例如:tf.constant(1,[2,3]) ==>[[1 1 1] [1 1 1]]
tf.random_normal(shape,mean=0.0,stddev=1.0) 正态分布随机数,均值mean,标准差 stddev ,dtype=tf.float32,seed=None,name=None)
tf.truncated_normal(shape,mean=0.0,stddev=1.0 截断正态分布随机数,均值mean,标准差stddev, ,dtype=tf.float32,seed=None,name=None) 只保留[mean-2*stddev,mean+2*stddev]范围内的随机数。
tf.random_uniform(shape,minval=0,maxval=None 均匀分布随机数,范围为[minval,maxval] ,dtype=tf.float32,seed=None,name=None)
tf.random_crop(value,size,seed=None,name=None) 将输入值value按照size尺寸随机剪辑
tf.set_random_seed(seed) 设置随机种子
tf.linspace(start,stop,num,name=None) 在[start,stop]范围内产生num个数的等差数列。注意,start和stop要用浮点数 表示,否则会报错。例如: tf.linspace(start=1.0,stop=5.0,num=5,name=None) ==> [1. 2. 3. 4. 5.]
tf.range(start,limit=None,delta=1,name='range') 在[start,limit)范围内以步进值delta产生等差数列。注意: tf.range(start=1,limit=5,delta=1) ==> [1 2 3 4]