huangzehao / caffe-vdsr

A Caffe-based implementation of very deep convolution network for image super-resolution
MIT License
273 stars 134 forks source link

question about test #21

Closed luciaL closed 7 years ago

luciaL commented 7 years ago

Thank you for sharing.There are something wrong when i ran the "Demo_SR_Conv.m"in the test folder.The errors are listed below. Is there anything I need to set ?? 出错 VDSR_Matconvnet (line 15) convfea = vl_nnconv(im_y,weight{1},bias{1},'Pad',1);

出错 Demo_SR_Conv (line 49) im_h_y = VDSR_Matconvnet(im_l_y, model,up_scale,use_cascade);

huangzehao commented 7 years ago

Hi, have you installed matconvnet?

cheongjunyoung commented 7 years ago

Hello. First of all, thanks for your wonderful project. I have a question about the project. Have you tried to train VDSR model using matconvnet?? I have struggled with training it in matconvnet. There is no gradient clipping method in matconvnet so I clipped weight gradients using L2 norm. However, after training, PSNR result could not reach to even 32dB. this is my implementation of gradient clipping in matconvnet DAG version

T = net.params(p).der; clip = 1 / net.params(p).learningRate; norm = sqrt(sum(T(:).^2)); if norm>clip net.params(p).der = T*(clip/norm); end

I tried various clip values but all trained result were similar. I wish to know what different or problem are between my training method and Caffe. If you have any tips or comments, I would be glad. thank you

huangzehao commented 7 years ago

@cheongjunyoung Hi, I didn't trained VDSR using matconvnet. But I think you can simply implement gradient clip by a clamp-like function, like

grad(>threshold) = threshold
grad(<-threshold) = -threshold

You don't need to do gradient clipping like caffe. The purpose of gradient clipping is to overcome the problem of gradient explosion. Just clip big gradient to a certain value and you can handle this problem.

luciaL commented 7 years ago

I have installed matconvnet. It seems that I need to run setup before I run a new project. Thank you for your answering,I have a question about the training of multiple scale.How to train a model with {2,3}or{3,4}?Does it mean the input images are interpolated to different scale???

huangzehao commented 7 years ago

@luciaL Yes, but I didn't achieve better performance than single scale training. You can have a try.

luciaL commented 7 years ago

Okay,thank you.The input images are divided into the same size patches.Then the output images are also the same size patches.How to get the full image with the same scale factor??

huangzehao commented 7 years ago

It's the same with single scale training. I didn't achieve better performance in my experiments. Maybe you can ask the author of VDSR paper for help. Thanks.