xialeiliu / RankIQA

The rep for the RankIQA paper in ICCV 2017
https://xialeiliu.github.io/RankIQA/
MIT License
453 stars 117 forks source link

训练更改batch_size #20

Open yubinyes opened 6 years ago

yubinyes commented 6 years ago

你好:我想按照你的思路重新微调一批图,按照live的代码来做,因为默认的batch_size=48,太大了,我更改./RankIQA/live/train_vgg.prototxt的batch_size为3,然后更改netloss_live.py和rank_layer_live.py的dis=1,batch=1,level=3,已经按照你的格式生成了./data/live_train.txt和./data/live_test.txt,我只用GB损失类型,两个级别GB1、GB2。然后运行 ./src/RankIQA/live/train_vgg.sh,总是在Iteration 0的时候出错“IndexError: tuple index out of range”。不知道你能否指教一下,如何修改这个batch_size才能正常训练。

xialeiliu commented 6 years ago

你做的这些改变应该是对的,你调试下数据读入部分,感觉是那部分有问题。

yubinyes commented 6 years ago

暂时发现了一个问题,在rank_layer_live.py的get_minibatch(self,minibatch_db)函数里,minibatch_db是两幅图像的地址,jobs是得到的两幅3x224x224图像数据的列表,应该是读图失败了,读出来的是一个None,可能是它导致的错误。因为这一步用的是self.workers.map(preprocess,minibatch_db),我看不到具体的处理过程,我想用其他的图像库读取,但是我不清楚你是读的整张图,然后resize成224x224x3,然后转成3x224x224的,还是读取整张图,随机截取224x224的范围,然后再转成3x224x244的。我不太清楚你是怎么得到jobs的,你能告诉我一下吗?

yubinyes commented 6 years ago

你好,还有个问题想跟你确认下。我下载了waterloo数据集,按照你的matlab脚本生成了损失图像,4种类别,每种类别5个级别。然后按照你的代码generate_rank_txt_live.py运行,修改一下文件夹目录dir_rank。你的样例文本live_test.txt,live_train.txt都是pristine_images是0分,GN1是1分,GN2是2分......,但是按照你的代码generate_rank_txt_live.py生成的分数是相反的,pristine_images是5分,GN1是4分,GN2是3分......,想请教一下,哪种是正确的文本形式。我是在ubuntu16+python2.7.12环境下操作的。

xialeiliu commented 6 years ago

先读取整张图,随机截取224x224的范围,然后再转成3x224x244的。 程序生成的是正确的。

ranjiewwen commented 6 years ago

暂时发现了一个问题,在rank_layer_live.py的get_minibatch(self,minibatch_db)函数里,minibatch_db是两幅图像的地址,jobs是得到的两幅3x224x224图像数据的列表,应该是读图失败了,读出来的是一个None,可能是它导致的错误。因为这一步用的是self.workers.map(preprocess,minibatch_db),我看不到具体的处理过程,我想用其他的图像库读取,但是我不清楚你是读的整张图,然后resize成224x224x3,然后转成3x224x224的,还是读取整张图,随机截取224x224的范围,然后再转成3x224x244的。我不太清楚你是怎么得到jobs的,你能告诉我一下吗?



- 问题解决了:就是因为路径的问题,读文件失败;
- 然后直接用batch=48会out of memory,然后batch=32可以训练了
kevingarnetttwo commented 6 years ago

你好,还有个问题想跟你确认下。我下载了waterloo数据集,按照你的matlab脚本生成了损失图像,4种类别,每种类别5个级别。然后按照你的代码generate_rank_txt_live.py运行,修改一下文件夹目录dir_rank。你的样例文本live_test.txt,live_train.txt都是pristine_images是0分,GN1是1分,GN2是2分......,但是按照你的代码generate_rank_txt_live.py生成的分数是相反的,pristine_images是5分,GN1是4分,GN2是3分......,想请教一下,哪种是正确的文本形式。我是在ubuntu16+python2.7.12环境下操作的。

同问