1.tf.one_hot()
mask = tf.one_hot(labels, depth=out_num, name='one_hot_mask')
inv_mask = tf.subtract(1., mask, name='inverse_mask')
热独编码。在分类问题中应用,我们可以把每一个类进行编码生成一个对应的矩阵,表示哪一类是否存在。
2.tf.where()
https://www.cnblogs.com/lyc-seu/p/8565997.html
cos_mt_temp = tf.where(cond, cos_mt, keep_val)
在这里,cond 是一组bool值,如果为真,选择a,否则选择b
3.tf.cast()
cond = tf.cast(tf.nn.relu(cond_v, name='if_else'), dtype=tf.bool)
将对应的矩阵变换成bool类型
4.tf.norm()
embedding_norm = tf.norm(a, axis=0, keep_dims=True)
计算矩阵的欧式距离,对特征进行归一化
5.tf.div()
embedding = tf.div(embedding, embedding_norm, name='norm_embedding')
计算两个矩阵的乘法,在这里是对特征进行归一化
6.tf.multiply 和tf.matmul
https://blog.csdn.net/flyfish1986/article/details/79141763/
前者是矩阵对应元素相乘,后者是矩阵的乘法
6.
tf.Variable和 tf.get_variable区别
https://blog.csdn.net/jeffery0207/article/details/79842611
创建变量矩阵,不同的是前者系统会处理命名冲突,后者会直接报错,这样就不用debug了
7.tf.unstack与tf.stack
对两个矩阵进行拼接或者分解。
https://www.jianshu.com/p/25706575f8d4
8.tf.contact()
这个和stack不同,这个是改变剧集内的元素,直接接上去的
9.tf.gather,tf.gather_nd
这两个用法是取矩阵的索引值
sel_cos_t = tf.gather_nd(zy, ordinal_y)
10tf.assign_add()
https://www.cnblogs.com/lovychen/p/8617524.html
对变量进行加法后赋值
11.# tf.contrib.layers.l2_regularizer(regular)(w)
对变量进行规范化操作
12. tl.layers.get_variables_with_name()
获取对应变量的权重参数。
13.tf.train.piecewise_constant
lr = tf.train.piecewise_constant(global_step, boundaries=lr_steps, values=[0.001, 0.0005, 0.0003, 0.0001], name='lr_schedule')
定步长改变学习率
14 tf.train.MomentumOptimizer
opt = tf.train.MomentumOptimizer(learning_rate=lr, momentum=args.momentum)
15.
grads = opt.compute_gradients(total_loss)
update_ops = tf.get_collection(tf.GraphKeys.UPDATE_OPS)
with tf.control_dependencies(update_ops):
train_op = opt.apply_gradients(grads, global_step=global_step)