argmax函数_Tensorflow常用函数使用说明及实例简记
本文记录Tensorflow中常用函数功能,方便大家使用时查询!tf.nn.dynamic_rnntf.nn.bidirectional_dynamic_rnntf.nn.softmax_cross_entropy_with_logitstf.Variabletf.get_variabletf.variable_scopetf.name_scopetf.reduce_maxtf.redu...
本文记录Tensorflow中常用函数功能,方便大家使用时查询!
tf.nn.dynamic_rnn
tf.nn.bidirectional_dynamic_rnn
tf.nn.softmax_cross_entropy_with_logits
tf.Variable
tf.get_variable
tf.variable_scope
tf.name_scope
tf.reduce_max
tf.reduce_mean
tf.sequence_mask
tf.reverse_sequence
tf.multipy
tf.matmul
tf.tensordot
tf.layers.conv1d
tf.layers.dense
tf.where
tf.argmax
tf.equal
tf.cast
tf.tile
tf.concat
tf.transpose
tf.ones_like、tf.zeros_like
tf.square
tf.squeeze
tf.truncated_normal、tf.random_normal
tf.random_uniform
tf.expend_dims
tf.nn.relu
tf.nn.relu6
tf.nn.softplus
tf.nn.dropout
tf.nn.bias_add
tf.sigmoid
tf.tanh
1、tf.nn.dynamic_rnn
tf.nn.dynamic_rnn是动态rnn函数,这里的cell可以时
(1) tf.contrib.rnn.BasicRNNCell
(2) tf.contrib.rnn.MultiRNNCell
(3) tf.contrib.rnn.BasicLSTMCell
(4) tf.contrib.rnn.GRUCell
再关注的是此函数的输出output, state = tf.nn.dynamic,其中output是函数包含了每层的结果输出,如果cell是单向的,则output只包含一个,output的维度是[batch_size, steps, Units],可以通过tf.transpose(output, [1, 0, 2]),得到[steps, batch_size, Units]的output,这样可以取最后一个step的output,state应是由(c, h)组成,因为是最后一层的,因此维度为(batch_size, Units),如果想要得到最后一层输出可以用state.h,当然也可以用output[:,-1,:]取最后一个输出
2、tf.nn.bidirectional_dynamic_rnn
tf.nn.bidirectional_dynamic_rnn是双向的,则(fw_output,bw_output) = output
(fw_final_state,bw_final_state) = state,则state是表示隐层最后一层的输出
对于双向rnn,输出结果output包括了前向输出fw_output和反向输出bw_output
可通过tf.concat(output, 2)将两层rnn结合起来
3、tf.nn.softmax_cross_entropy_with_logits
在介绍交叉熵损失函数前,先简单认识一下熵和相对熵的概
(1) 熵:衡量单个随机变量的不确定性
(2) 相对熵:衡量两个随机变量之间的相似度
(3) 交叉熵Cross Entropy:衡量两个随机变量之间的相似度,类似于相对熵,相对熵做变形去掉熵定义的定量部分,得到的便是交叉熵
(4) tf.losses.softmax_cross_entropy
(5) tf.nn.softmax_cross_entropy_with_logits
(6) tf.losses.sparse_softmax_cross_entropy
(7) tf.nn.sparse_softmax_cross_entropy_with_logits
其中(4)/(5)函数等价,(6)(7)函数等价
4、tf.Variable
tf.Variable初始化一个变量,initial_value初始化的值一般可是tf.truncated_normal()、tf.random_normal(shape,mean, stddev),name变量的名称,tf.Variable当在使用时如果检测到命名重复时,则系统会自动处理,不会报错
5、tf.get_variable
tf.get_variable和tf.variable()基本相同,差别是tf.get_variable如果两个变量名相同时则会报错
6、tf.variable_scope
tf.variable_scope可以让变量有相同的命名,包括tf.get_variable得到的变量,还有tf.Variable的变量
7、tf.name_scope
tf.name_scope可以让变量有相同的命名,只是限于tf.Variable的变量
8、tf.reduce_max
reduce_max根据axis取行或列的最大值,axis=1按行取最大值,axis=0按列取最大值
9、tf.reduce_mean
tf.reduce_mean用于计算张量按指定维度axis上的平均值,主要用作降维和计算平均值
10、tf.sequence_mask
构建序列长度的mask标志,lengths:整数张量,maxlen:最大长度
11、tf.reverse_sequence
tf.reverse_sequence:对输入的序列进行反转
input_x:输入的待反转的tensor
seq_lengths:一个tensor,表示反转的序列长度是多少,在LSTM中统一设定为输入语句的长度代表着整句话都进行反转
seq_axis,batch_size代表需要反转的轴
seq_aixs=1,batch_size=0代表以行为单位进行反转,反转的是每一列的元素,seq_aixs=0,batch_size=1代表以列为单位进行反转,反转的是每一行的元素
12、tf.multipy
tf.multipy用于计算矩阵之间的element-wise乘法,要求矩阵的维度必须一致(或者其中一维为1),否则会报错
13、tf.matmul
tf.matmul是tensor的矩阵乘法,参与运算的两个tensor维度和数据类型必须一致,如果tensor是二维的,则相当于矩阵乘法
14、tf.tensordot
tf.tensordot矩阵乘法运算,参与运算的两个tensor的维度可以不一样,但两个矩阵相邻的维度必须相同
15、tf.layers.conv1d
conv1d一维卷积主要是用于对于文本的卷积,比较关键的几个参数inputs输入的tensor,filters过滤器的个数,kernel_size卷积核大小,卷积核维度是(kernel_size, embedding_size)
16、tf.layers.dense
tf.layers.dense是全连接的最后一层,inputs:输入全连接层的tensor,units:输出数据的维度,activation:使用的激活函数
17、tf.where
(1) tf.where(input,name=None)
(2) tf.where(input,a, b)
tf.where有以上两种用法
tf.where(input)是返回位置为True的元素的下标索引,tf.where(input, a, b)则是输入的a,b是同维度的,若input为true则返回a对应的元素,若input为false则返回b中对应的元素
18、tf.argmax
tf.argmax返回tensor最大值所对应的下标,inputs指输入的tensor,axis=1按行取最大值,axis=0按列取最大值
19、tf.equal
tf.equal(A,B)是对比这两个矩阵或者向量的相等的元素,如果是相等的那就返回True,反正返回False,返回的值的矩阵维度和A一样
20、tf.cast
tf.cast将x的数据类型转化成dtype
21、tf.tile
tf.tile将输入的张量按照维度进行复制,multiples表示复制方式
22、tf.concat
tf.concat用来张量拼接,主要便是如何拼接,根据axis轴信息进行张量的拼接
23、tf.transpose
tf.transpose主要是用于交换输入张量的不同维度使用的,当输入张量是二维时,则交换张量的维度就相当于张量转置
24、tf.ones_like(inputs)、tf.zeros_like(inputs)
给定一个输入inputs,tf.ones_like返回一个和输入维度相同但元素都为1的tensor
而tf.zeros_like则返回一个和输入inputs维度都相同但元素都为0的tensor
25、tf.square()
26、tf.squeeze
该函数返回一个张量,这个张量是将原始input中所有维度为1的那些维都删掉的结果,axis可以用来指定要删掉的为1的维度,此处要注意指定的维度必须确保其是1,否则会报错
27、tf.truncated_normal、tf.random_normal
(1) tf.truncated_normal(shape, mean, stddev) 其中shape表示生成张量的维度,mean表示均值,stddev表示标准差
(2) tf.random_normal(shape, mean, stddev) 参数和tf.truncated_normal()相同
二者的区别是 tf.truncated_normal()是截断正态分布,产生正太分布的值如果与均值的差值大于两倍的标准差,那就重新生成
28、tf.random_uniform
tf.random_uniform((m, n), minval=low, maxval=high, dtype=tf.float32))) 返回m*n的矩阵,值在low和high之间
29、tf.expend_dims
tf.expend_dims将input维度增加一维, dim就是自己可以选择增加维度的位置,dim=-1就表示从最后开始增加,可通过下面示例理解此函数含义
30、tf.nn.relu
计算方式:result = max(features, 0)
31、tf.nn.relu6
计算方式result = min(max(features, 0), 6)
32、tf.nn.softplus
计算方式:result = log(exp(features) + 1)
33、tf.nn.dropout
tf.nn.dropout防止过拟合函数
34、tf.nn.bias_add
广播,bias_add()可以处理不同形状的数组
35、tf.sigmoid
计算方式:y = 1/(1 + exp(-x))
36、tf.tanh
计算方式:y = (exp(x) - exp(-x))/(exp(x) + exp(-x))
往期精彩:
干货 | Attention注意力机制超全综述
文本主题模型之LDA基础及实现
机器学习中优化相关理论知识简述
自己动手实现一个神经网络多分类器
Transformer 模型的 PyTorch 实现
干货 | NLP中的十个预训练模型
我们在北京的果壳生活
干货|一文弄懂机器学习中偏差和方差
FastText原理和文本分类实战,看这一篇就够了
Transformer模型细节理解及Tensorflow实现
GPT,GPT2,Bert,Transformer-XL,XLNet论文阅读速递
机器学习算法篇:最大似然估计证明最小二乘法合理性
Word2vec, Fasttext, Glove, Elmo, Bert, Flair训练词向量教程+数据+源码
原创不易,别偷偷摸摸的在看,有用就点个好看呀
更多推荐
所有评论(0)