Open S130111 opened 5 years ago
你是怎么训练和测试的?我在用rgb图训练(color_train_list.txt),然后在color_test_list.txt上测试,效果一般,我试过作者的pytorch源码,也拿作者训练好的模型在color_test_list.txt上测试过,一开始平均平均的accuracy还不错,慢慢的测试到后面的正样本,效果就很差,整体的TPR@fpr也很差。完全不是paper中的效果(有可能paper中,不是这么测试的?)。后面我自己用caffe复现了他的featherNet,发现如果直接是最后的特征flatten乘1024向量,不接fc,然后做二分类,效果很差,如果接fc变成2维,效果会好很多,如果再fc前加上relu+dropout,accuracy效果会达到92%,tpr@fpr0.15=91%.
不知道作者怎么训练的,有没有作者或者大佬解释一下?欢迎交流
我用作者源码训练的,用训练的模型测试,输出结果一直在变,切换train和eval模式也没用,而且输出结果都是几百,不知道哪里出了问题。用作者训练的模型测试,输出结果倒是0和1,但是切换到eval模式之后,所有的输出都是0,就是无论输入,预测都是0.在train模式下预测结果反而好一点。大佬知道这是什么情况吗? @lihuikenny
可能是overfitting吧
@lihuikenny 您好, 有人说feathernetB这样做 (我是使用RGB input):
output1 = net(image1) soft_output = torch.softmax(output1, dim=-1) preds = softoutput.to('cpu').detach().numpy() , predicted = torch.max(soft_output.data, 1) predicted = predicted.to('cpu').detach().numpy() print(predicted)
我总感觉怪怪的, 因为feature有1024, 但是结果只看是index0 or 1. 所以不太懂作者后面接BCEloss (focal loss) 是否真只看这两个index, 谢谢!
@lihuikenny 您好, 有人说feathernetB这样做 (我是使用RGB input):
output1 = net(image1) soft_output = torch.softmax(output1, dim=-1) preds = softoutput.to('cpu').detach().numpy() , predicted = torch.max(soft_output.data, 1) predicted = predicted.to('cpu').detach().numpy() print(predicted)
我总感觉怪怪的, 因为feature有1024, 但是结果只看是index0 or 1. 所以不太懂作者后面接BCEloss (focal loss) 是否真只看这两个index, 谢谢!
@ckcraig01 我很早之前调试过作者pytorch源码,确实只能看到0和1的index。理论上说,虽然是对1024维的向量做二分类,但是最大的logits不可能总是出现在前两维。然而我调试的时候都发现只有0,1的索引。所以我caffe复现的时候,都是额外添加一个fc,将向量变成2维在分类
我用作者源码训练的,用训练的模型测试,输出结果一直在变,切换train和eval模式也没用,而且输出结果都是几百,不知道哪里出了问题。用作者训练的模型测试,输出结果倒是0和1,但是切换到eval模式之后,所有的输出都是0,就是无论输入,预测都是0.在train模式下预测结果反而好一点。大佬知道这是什么情况吗? @lihuikenny
输出的结果在变,是因为作者的源码是每个batch就进行一次测试,而不是整个数据集(即一个epoch)全部读入进行一次测试。
@lihuikenny 了解了, 看了loss, 也许作者在训练的时候就是对前两维做BCEloss, 从作者的回复看来也是这样, 但这样后面stream mudule产生的其他维度就消失了, 有些可惜所以我本来估计不是这样. 加了FC layer 1024->2 的做法合理, 但作者论文中有提到儘量不想要用 FC就是为了省cost, 所以我一直想不通. 不过目前的input应该是深度图, 我可能还是得单单考虑 RGB, 所以可能找别的work研究看看, 谢谢您
你是怎么训练和测试的?我在用rgb图训练(color_train_list.txt),然后在color_test_list.txt上测试,效果一般,我试过作者的pytorch源码,也拿作者训练好的模型在color_test_list.txt上测试过,一开始平均平均的accuracy还不错,慢慢的测试到后面的正样本,效果就很差,整体的TPR@fpr也很差。完全不是paper中的效果(有可能paper中,不是这么测试的?)。后面我自己用caffe复现了他的featherNet,发现如果直接是最后的特征flatten乘1024向量,不接fc,然后做二分类,效果很差,如果接fc变成2维,效果会好很多,如果再fc前加上relu+dropout,accuracy效果会达到92%,tpr@fpr0.15=91%.
不知道作者怎么训练的,有没有作者或者大佬解释一下?欢迎交流
你好,我想问下,你接fc时候是多少层,我看了作者的代码,确实是只用前两个神经元输出做loss,但是我觉得不是很合理,这样子相当于后面的神经元完全没有用到。
你是怎么训练和测试的?我在用rgb图训练(color_train_list.txt),然后在color_test_list.txt上测试,效果一般,我试过作者的pytorch源码,也拿作者训练好的模型在color_test_list.txt上测试过,一开始平均平均的accuracy还不错,慢慢的测试到后面的正样本,效果就很差,整体的TPR@fpr也很差。完全不是paper中的效果(有可能paper中,不是这么测试的?)。后面我自己用caffe复现了他的featherNet,发现如果直接是最后的特征flatten乘1024向量,不接fc,然后做二分类,效果很差,如果接fc变成2维,效果会好很多,如果再fc前加上relu+dropout,accuracy效果会达到92%,tpr@fpr0.15=91%.
不知道作者怎么训练的,有没有作者或者大佬解释一下?欢迎交流
而且,我接了fc和dropout,非常容易过拟合。训练精度到了98,验证集只有30-40,不知道问题出在哪里。
Thank you very much.