影象識別常用到的函式解析
阿新 • • 發佈:2018-11-05
影象識別中常用到的函式解析
1.損失函式
計算labels和logits之間的交叉熵(cross entropy)
tf.nn.softmax_cross_entropy_with_logits( _sentinel=None, labels=None, logits=None, dim=-1, name=None )
通常使用兩個引數:
引數logits 為識別模型的輸出結果,logits是作為softmax的輸入。也就是不包含softmax層的模型的輸出結果。
引數label的含義就是一個分類標籤,所有類別的分類的概率,比如說[0.2,0.3,0.5],labels的每一行必須是一個概率分佈。
2. 在多個分類上的概率分佈情況
tf.nn.softmax(logits, axis=None, name=None, dim=None)
其中引數logits為模型的輸出結果。
Softmax的工作則是,它把一個系列數從[-inf, +inf] 對映到[0,1],除此之外,它還把所有參與對映的值累計之和等於1,變成諸如[0.95, 0.05, 0]的概率向量。這樣一來,經過Softmax加工的資料可以當做概率來用。
3. tf.reduce_mean()通過張量的維數計算元素的平均值
tf.reduce_mean(input_tensor, reduction_indices=None, keep_dims=False, name=None)
4.函式 tf.cast()
cast(
x,
dtype,
name=None
)
將x的資料格式轉化成dtype.例如,原來x的資料格式是bool, 那麼將其轉化成float以後,就能夠將其轉化成0和1的序列。反之也可以。例如:
a = tf.Variable([1,0,0,1,1]) b = tf.cast(a,dtype=tf.bool) sess = tf.Session() sess.run(tf.initialize_all_variables()) print(sess.run(b)) #[ True False False True True]
5.tf.equal(A,B)
A = [[1,3,4,5,6]]
B = [[1,3,4,3,2]]
with tf.Session() as sess:
print(sess.run(tf.equal(A, B)))
#輸出:[[ True True True False False]]
該函式返回的是一個布林型別的結果
6.優化器
tf.train.AdamOptimizer(learning_rate= ).minimize(cost)
引數cost是損失函式的值