我已经使用tf.GradientTape()
. 我的数据有 2 个类。班级不平衡;class1
数据贡献了近 80% 和class2
剩余的 20%。因此,为了消除这种不平衡,我尝试编写自定义损失函数,它将考虑这种不平衡并应用相应的类权重并计算损失。即我想使用class_weights = [0.2, 0.8]
. 我找不到类似的例子。
但是,我看到的所有示例都使用 model.fit 方法,它更容易通过class_weights
. 我无法找到class_weights
与自定义训练循环一起使用的示例tf.GradientTape
。
我确实通过了使用的建议sample_weight
,但是我没有可以在其中指定样本权重的数据,因此我的偏好是使用类权重。
我使用BinaryCrossentropy
损失作为损失函数,但我想根据class_weights
. 这就是我被卡住的地方,如何告诉BinaryCrossentropy
考虑class_weights
.
我使用自定义损失函数的方法是正确的,还是有更好的方法来使用class_weights
自定义训练循环(不使用model.fit
)进行训练?