【发布时间】:2019-10-07 07:51:35
【问题描述】:
我已经使用 Keras 构建了一个多类、多标签的图像分类网络。总共有 25 个类,每个图像至少有一个类。我想实现一个自定义精度指标,它告诉我图像中最高概率类别的频率(常规精度意义不大,因为真阳性被真阴性淹没了)。
我构建了一个简单的函数,当我手动输入 y_true 和 y_pred 时,它会生成所需的准确度指标。但是,当我尝试将此函数插入模型训练过程时,它会产生错误。
def customAcc(y_true, y_pred):
classPreds = np.array([np.eye(numClasses)[x] for x in np.argmax(y_pred, axis=1)])
correctPreds = y_true * classPreds
return np.mean(np.sum(correctPreds, axis=1))
model.compile(optimizer=tf.keras.optimizers.Adam(lr=0.0001),
loss='binary_crossentropy', metrics=['accuracy', customAcc])
AxisError: 轴 1 超出维度 1 数组的范围
【问题讨论】:
标签: python tensorflow keras