深度學習----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)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章