Closed joewale closed 2 years ago
可以查看sed_model.py中对于esc数据集计算acc的代码,其实和audioset相似,就是输出model的结果然后计算,如果你需要得到分类结果,你可以用main.py中的test函数,得到结果直接进行查看
你的config.py方便给我看看嘛
这是我的config文件 [Uploading config.txt…]()
因为ckpt的key不太一样,你直接使用这个model的时候,前缀没有sed_model,所以你的model实际上什么都没有load(你设了strick=False,它忽略所有的没有找到的weight,这里应该设为true的
解决方法很简单,把前缀裁掉就可以了,看这个就好了,我把你代码修改了一下,我随便试了10个结果,和答案都是一致的 test_esc.zip
顺便我把单卡gpu和esc的config也更新了,你可以看看我最新的commit。 https://github.com/RetroCirce/HTS-Audio-Transformer/blob/main/htsat_esc_training.ipynb
问题解决了,谢谢哈! 另外,有个问题,请教下,模型输出的pred_prob的概率得分的区间是怎样的,6.831792代表的意义是什么?
你可以在最后softmax一下,就是概率了,因为esc用的是cross_entropy而不是BCE,默认的torch loss函数是自动帮你softmax了(又或者你可以手动做nllloss),所以我输出的时候就没有softmax
谢谢你的解答,如你所说,加上softmax就可以了,再次感谢!
pred = output_dict['clipwise_output']
pred = F.softmax(pred, dim=1)
pred_post = pred[0].detach().cpu().numpy()
pred_label = np.argmax(pred_post)
pred_prob = round(np.max(pred_post)*100, 3)
Hi,RetroCirce