第一次接触Tensorflow,用VGG16对一个人脸的dataset(CACD2000)进行年龄预测.
网络结构很简单,前6层完全相同,加两个fc,最后一层fc为1.
但运行时遇到一些问题,这让我关注到:
tf.nn.softmax_cross_entropy_with_logits(
_sentinel=None, # pylint: disable=invalid-namelabels=None,logits=None,dim=-1,name=None,axis=None):
tf.nn.sigmoid_cross_entropy_with_logits(
_sentinel=None,labels=None,logits=None,name=None):
softmax交叉熵的对象是互斥的,如一个动物可以是猫或者狗,但不能同时为猫狗.
sigmoid交叉熵用于计算的对象是彼此依赖的且不互斥(mutually exclusive),如一副图像可以同时包含猫狗两个元素.
我的vgg中,age和label显然是not mutually exclusive的.