Tensorflow 学习笔记

  1. 如何判断一个输出向量和期望的向量有多接近呢? 交叉熵是常用的评判方法之一。交叉熵刻画了两个概率分布之间的距离,它是分类问题中使用比较广的一种损失函数。
  2. 如何将神经网络前向传播得到的结果也变成概率分布呢?Sotfmax回归就是一个非常常用的方法。
  3. tf.clip_by_value()
cross_entropy = -tf.reduce_mean(
    y_ * tf.log(tf.clip_by_value(y, 1e-10, 1.0))
)

其中 y_ 表示正确结果, y 表示预测结果。 通过 tf.clip_by_value函数可以将一个张量中的数值限制在一个范围之内,这样就可以避免一些运算错误(比如 log0是无效的)


Tensorflow 学习笔记_第1张图片
image.png

以上案例中可以看到,下于 2.5 的数都被换成了2.5, 大于4.5的数都被转化为4.5。这样通过 tf.clip_by_value 函数就可以保证在进行 log 运算时,不会出现 log0 这样的错误或者大于1的概率。

  1. 与分类问题不同,回归问题解决的是对具体数值的预测。比如房价预测, 销量预测等都是回归问题。这些问题需要预测的不是一个事先定义好的类别,而是一个任意数。解决回归问题的神经网络一般只有一个输出节点,这个节点的输出值就是预测值。对于回归问题,最常用的损失函数是均方误差(MSE)

  2. tensorflow 中分段函数则怎么写
    如:

with sess.as_default():
    v1 = tf.constant([1.0, 2.0, 3.0, 4.0])
    v2 = tf.constant([4.0, 3.0, 2.0, 1.0])
    print(tf.where(tf.greater(v1, v2), v1, v2).eval())

你可能感兴趣的:(Tensorflow 学习笔记)