总论:
支持原创精神,转载请注明来源!
sigmoid主要用于二分类问题,其计算定义当中含有非此即彼,而对于用于多分类的softmax则没有这种意思,理由如下
注意的得,sigmiod和softmax计算有两步不一样,但是可以从在交叉熵的计算可以看出明显的区别,即sigmiod的非此即彼
计算定义:
sigmiod未知:
y = np.array([[1,0,0],[0,1,0],[0,0,1]]).astype(np.float64)
logits = np.array([[12,3,2],[3,10,1],[1,2,5]]).astype(np.float64)
y_logits = tf.nn.sigmoid(logits)
cross_entropy1 = -(y*tf.log(y_logits)+(1-y)*tf.log(1-y_logits))#!!!!交叉熵
cross_entropy2 = tf.nn.sigmoid_cross_entropy_with_logits(labels=y, logits=logits)
with tf.Session() as sess:
cross_entropy2 = sess.run(cross_entropy2)
cross_entropy1 = sess.run(cross_entropy1)
y_log