我已经使用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
的数组的界限
https://stackoverflow.com/questions/56229468
复制相似问题