深度学习----Tensorflow再命名实体上常用的函数

函数 作用
tf.contrib.crf.crf_log_likelihood()         ~~~~~~~~在一个条件随机场里面计算标签序列的log-likelihood,函数的目的是使用crf来计算损失,里面用到最大似然估计的优化方法,
参数:
inputs: 一个形状为[batch_size, max_seq_len, num_tags] 的tensor,一般使用BILSTM处理之后输出转换为他要求的形状作为CRF层的输入,
tag_indices: 一个形状为[batch_size, max_seq_len] 的矩阵,其实就是真实标签,
sequence_lengths: 一个形状为 [batch_size] 的向量,表示每个序列的长度,
transition_params: 形状为[num_tags, num_tags] 的转移矩阵
返回:
log_likelihood: 标量,log-likelihood
transition_params: 形状为[num_tags, num_tags] 的转移矩阵
tf.placeholder() tf.placeholder(
                  ~~~~~~~~~~~~~~~~~~dtype,
                  ~~~~~~~~~~~~~~~~~~shape=None,
                  ~~~~~~~~~~~~~~~~~~name=None)
placeholder()函数是在神经网络构建graph的时候在模型中的占位,此时并没有把要输入的数据传入模型,它只会分配必要的内存
tf.nn.embedding_lookup 选取一个张量里面索引对应的元素(相当于索引)
tf.Variable 检测到命名冲突,系统会自己处理
tf.get_variable() 系统不会处理冲突,而会报错
tf.nn.sparse_softmax_cross_entropy_with_logits(
                  ~~~~~~~~~~~~~~~~~~_sentinel=None,
                  ~~~~~~~~~~~~~~~~~~labels=None,
                  ~~~~~~~~~~~~~~~~~~logits=None,
                  ~~~~~~~~~~~~~~~~~~nmae=None)
函数是将softmax和cross_entropy放在一起计算,对于分类问题而言,最后一般都是一个单层全连接神经网络,比如softmax分类器居多,对这个函数而言,tensorflow神经网络中是没有softmax层,而是在这个函数中进行softmax函数的计算。这里的logits通常是最后的全连接层的输出结果,labels是具体哪一类的标签,这个函数是直接使用标签数据的,而不是采用one-hot编码形式。
tf.reduce_mean 用于计算张量tensor沿着指定的数轴(tensor的某一维度)上的的平均值,主要用作降维或者计算tensor(图像)的平均值。
reduce_mean(input_tensor,
                  ~~~~~~~~~~~~~~~~~~axis=None,
                  ~~~~~~~~~~~~~~~~~~keep_dims=False,
                  ~~~~~~~~~~~~~~~~~~name=None,
                  ~~~~~~~~~~~~~~~~~~reduction_indices=None)
第一个参数input_tensor: 输入的待降维的tensor;
第二个参数axis: 指定的轴,如果不指定,则计算所有元素的均值;
第三个参数keep_dims:是否降维度,设置为True,输出的结果保持输入tensor的形状,设置为False,输出结果会降低维度;
第四个参数name: 操作的名称;
第五个参数 reduction_indices:在以前版本中用来指定轴,已弃用
tf.global_variables_initializer() 添加节点用于初始化所有的变量(GraphKeys.VARIABLES)。返回一个初始化所有全局变量的操作(Op)。在你构建完整个模型并在会话中加载模型后,运行这个节点。
tf.local_variables_initializer() 返回一个初始化所有局部变量的操作(Op)
import argparse //导入命令行解析的库文件
parse=zargparse.ArgumentParser(
           ~~~~~~~~~~~description=“test!!”
           ~~~~~~~~~~~)
https://blog.csdn.net/yuyushikuan/article/details/79729660
os.environ[‘TF_CPP_MIN_LOG_LEVEL’] = ‘2’ 设置log输出信息的,也就是程序运行时系统打印的信息。在这里插入图片描述
tf.contrib.crf.viterbi_decode 通俗一点,作用就是返回最好的标签序列
tf.contrib.crf.crf_decode 在TensorFlow中解码最高得分标记序列
https://tensorflow.google.cn/api_docs/python/tf/contrib/crf/crf_decode
tf.matmul(a, b,
                  ~~~~~~~~~~~~~~~~~~transpose_a=False,
                  ~~~~~~~~~~~~~~~~~~transpose_b=False,
                  ~~~~~~~~~~~~~~~~~~adjoint_a=False,
                  ~~~~~~~~~~~~~~~~~~adjoint_b=False,
                  ~~~~~~~~~~~~~~~~~~a_is_sparse=False,
                  ~~~~~~~~~~~~~~~~~~b_is_sparse=False,
                  ~~~~~~~~~~~~~~~~~~name=None)
a: 一个类型为 float16, float32, float64, int32, complex64, complex128 且张量秩 > 1 的张量。
b: 一个类型跟张量a相同的张量。
transpose_a: 如果为真, a则在进行乘法计算前进行转置。
transpose_b: 如果为真, b则在进行乘法计算前进行转置。
adjoint_a: 如果为真, a则在进行乘法计算前进行共轭和转置。
adjoint_b: 如果为真, b则在进行乘法计算前进行共轭和转置。
a_is_sparse: 如果为真, a会被处理为稀疏矩阵。
b_is_sparse: 如果为真, b会被处理为稀疏矩阵。
name: 操作的名字(可选参数)
tf.multiply(x, y, name=None) 两个矩阵中对应元素各自相乘
tf.variable_scope(“conv1”) 指定变量作用域
tf.nn.bidirectional_dynamic_rnn() cell_fw, # 前向RNN
cell_bw, # 后向RNN
inputs, # 输入
sequence_length=None,# 输入序列的实际长度(可选,默认为输入序列的最大长度)
initial_state_fw=None, # 前向的初始化状态(可选)
initial_state_bw=None, # 后向的初始化状态(可选)
dtype=None, # 初始化和输出的数据类型(可选)
parallel_iterations=None,
swap_memory=False,
time_major=False,
# 决定了输入输出tensor的格式:如果为true, 向量的形状必须为 [max_time, batch_size, depth].
# 如果为false, tensor的形状必须为[batch_size, max_time, depth].
scope=None
返回的是元组(outputs,output_states)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章