【发布时间】:2020-05-27 19:07:55
【问题描述】:
我有一个多标签分类问题: 以下是 y 的一些示例:
[0,0,0]
[0,0,1]
[1,0,1]
[1,1,0]
[1,0,0]
等等。 我想创建一个函数,告诉我预测中的行百分比,基于 0.5 阈值,等于 y 中的真实向量。 所以如果 y 是:
[[0,0,1]
[1,0,0]
[1,0,1]]
和预测是:
[[0.2,0.4,0.9]
[0.6,0.3,0.4]
[0.3,0.3,0.4]]
准确率是 2/3,因为两行预测相同的标签,而 1 则不是。
这是我现在拥有的:
def accuracy(y_true, y_pred):
acc = K.all(K.equal(y_true, y_pred), axis=1)
acc= K.cast(acc, 'float32')
acc = K.sum(acc)
acc = acc/K.cast(K.shape(y_true)[0], 'float32')
return acc
但它在训练期间向我显示了消息并显示准确度为 0:
Allocation of 223027200 exceeds 10% of system memory.
y_train 和 y_test 的形状是: (1285, 3) (551, 3)
X_train 的形状: (1285, 70, 70, 1)
【问题讨论】:
标签: python tensorflow keras deep-learning