没用明白在这里面one-hot编码是怎么将求出的概率p_y变成和前面二分类时一样的预测值-实际值的绝对值的?

来源:2-8 神经网络实现(多分类逻辑斯蒂回归模型实现)

qq_慕容8357050

2019-07-24

写回答

1回答

AlenW

2019-07-30

one-hot编码不是求出概率,举个例子它 y =3 ;

 y_ one_hot= tf.one_hot(y, 10, dtype=tf.float32)

y_ one_hot = [0, 0, 0, 1, 0, 0, 0, 0, 0, 0]

p_y = tf.nn.softmax(y_) 这是一个把y_的也就是预测到的结果转换成 分类为0-9 的概率 且和为1。
你可以理解为 完全正确的情况下(非常极端的情况),预测成3的概率为1,预测成其他数字都是的概率为0

由于你的问题不是很明确,求出概率和预测值-真实值的绝对值没有任何关系

求概率是预测,预测值-真实值的绝对值是求误差

假设你想问的是怎么求出loss误差

就是(y_one_hot - p_y)^2求均值 也就是tf.reduce_mean()的操作,如果这个函数不是很懂,你可以查阅相应的API。在多分类的时候y_one_hot - p_y 是一个n*m矩阵, m是类别数,也就是本节课中的10,n数据样本数,也就是这节课的batch_size. 这个矩阵就是误差,对这个矩阵求均值。

以下是矩阵求均值的例子


x = [[1,2,3],[1,2,3]]
xx = tf.cast(x,tf.float32)
mean_all = tf.reduce_mean(xx, keep_dims=False)  #keep_dims是指定是否保持原有的张量维度

mean_all 的结果就是2.0

0
0

深度学习之神经网络(CNN/RNN/GAN)算法原理+实战

深度学习算法工程师必学,深入理解深度学习核心算法CNN RNN GAN

2617 学习 · 935 问题

查看课程