图像识别常用到的函数解析

图像识别中常用到的函数解析

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是损失函数的值

猜你喜欢

转载自blog.csdn.net/weixin_41644725/article/details/83624035