Tensorflow keras自定义损失



我有1000张XRay图像,我正在尝试进行一些二进制预测(死亡/活着(。我有900张"活着"的照片和100张"死去"的照片,经过一番阅读(主要是在这里(,我想我可能不得不对样本的这种不平衡做出一些改变。

我试过

model.compile(...,loss=mycustom_loss,...)

方法,但我认为我无法理解自定义函数的语法。阅读了其他一些文件,我尝试了一种方法:

my_custom_loss_weights = [ 100/1000, 900/1000 ]  # index 0 is 'died', index 1 is 'lived'
model.compile = (...,loss='binary_crossentropy',loss_weights=my_custom_loss_weights,...)

这给出了一些非常好的结果(loss和val_loss非常接近,acc和val_acc非常接近并且足够高(。

因此,问题是如何制作一个自定义的损失函数,返回二进制交叉熵,但基于我的权重(100/1000和900/1000(进行加权,其次,如果loss_weights参数是我想要的解决方案,我真的很幸运!

我尝试了我提到的链接的过采样方法,但结果很糟糕。

提前谢谢!

这是完全正确的做法,loss_weights参数是正确的方法,也是正确实现的。您在Weighted loss段下发布的链接中也对其进行了描述。

相关内容

  • 没有找到相关文章

最新更新