笔记 - tensorflow用法:对独热编码分类结果进行评估

数据结构:

真实分类矩阵 与 预测分类矩阵
一行表示一个样本,列数表示分类总数
矩阵中的值 表示当前样本属于类别 i(列序号) 的概率

流程

统计两个矩阵有有多少行不同,输出占比(不过这里的行比较特殊)

给出样本集的预测分类与实际分类(独热编码)
评估准确率
“”"
统计两个矩阵多少行不同
比较每行 1 所在的列序号,一致为1,不一致为0
最后得到一个01数组,加和求平均即为准确率
“”"

  • 语法知识
    • argmax – 返回指定维度上最大值的索引
    • equal – 对应位置上的数值是否一致
    • cast – 把容器中的布尔值转换成0 1
    • reduce_mean --求加和平均
import tensorflow as tf

y = tf.constant([[0, 0, 1], 
				[1, 0, 0]], dtype=tf.float32)
y_pred = tf.random_uniform(shape=(2, 3))


accuracy = tf.reduce_mean(tf.cast(tf.equal(tf.argmax(y, 1), tf.argmax(y_pred, 1)), dtype=tf.float32))
with tf.Session() as sess:
    print(accuracy.eval())

  • equal
import tensorflow as tf
a1 = tf.constant([1,2,3])
b1 = tf.constant([0,2,2])
with tf.Session() as sess:
    print(tf.equal(a1, b1).eval())  # [False  True False]

你可能感兴趣的:(tensorflow,编程)