tensorflow-vdsr
tensorflow-vdsr copied to clipboard
How many times do you need for training?
Hi,
Here are my training parameters, size: 41 x 41 batch_size: 64 step: 100000
write summary every 1000 steps.
Every step needs 3-4 seconds with a 1080Ti. The entire training maybe need 3 or 4 days. Dose this feel right? The writer of the paper (VDSR) just need 4 hours for training...
I need several hours to train with single 1080. It seems too slow. The speed bottleneck is usually caused by data IO, but since the data is very small, I doubt this possibility. One possibility is that you are using an extremely slow HDD, or have a very small RAM.. But even so, the speed is still too slow.
Are you using the asynchronous queueing? With asynchronous data loading, the speed goes up many times.
Hi, I am sorry for replying so late. I found the reason is that I runned the model in CPU on the second day... I used the asynchronous queueing. Becasue the data is not large, I choiced to use the way of loading data from the pickle file that loads the data into RAM once until the end.
I did some experiments after that and I encountered some question that I want to seek advices from you.
- For example in scale 2x, I saw the psnr enhancement is 3.5dB in Set5 and 2.5dB in Set14 approximately. Is the enhancement value about equal in every signal image? I found the enhancement in different image have great difference. like below(set 5).
name | bicubic | vdsr | Improment baby | 36.978 | 38.514 | 1.536 bird | 36.808 | 41.651| 4.843 butterfly | 27.489 | 33.657 | 6.168 head | 34.845 | 35.836 | 0.991 woman | 32.087 | 35.575 | 3.488 MEAN | 33.6414 | 37.0466 | 3.4052
Is my result normal?
-
The second question is that the loss can't be lower than 1. while I was training regardless of in pickle way or your asynchronous way. What the smallest value of loss when you trained the model.
-
Because we train the model over the "y" channel of image, I want to generate the raw "rgb" format image via concatenating the three channel of the image. Then I used the "ycbcr2rgb" in MATLAB to transfer the form. But the result is very bad. The generated image also like the image in "YCbCr" format. emmm... it is colorful...
Those are my all issues. I hope I can get the advances from you. My english is bad. If there are some verbal mistakes, I feel very sorry for that.
Thank you very much.
I thought the slow down is too severe :] Glad to hear the problem is solved.
-
The enhancement result varies greatly among images. It is a natural consequence. I am not an expert on super-resolution and don't know the theoretical reasons for that, but to my experience, the improvement over bicubic varies. Just like your result. The mean PSNR seems okay to me, maybe you can run more iterations or run another batch to get better results.
-
I cannot remember clearly, but I think I have achieved 0.9~ loss for training.
-
I am not clear here. Did you train separate models for Y/Cb/Cr channels? As far as I know, the standard method for super-resolution is to enhance Y channel only. Y channel preserves all the structural information, and Cb/Cr only has color information. So, after training, only switch the Y channel with the enhanced result and save it back. I did observe the improvement in this way.
P.S. Your English is okay to me :) I am also not a native speaker.
Thanks for your answers a lot!!
@Jongchan @EricKani For shi yao can not see the test after the picture, only to see the evaluation index