FCN 32s

312 views
Skip to first unread message

Yongjin Cho

unread,
Apr 21, 2016, 5:53:59 PM4/21/16
to Caffe Users
Hi, I am trying to follow the example of fully convolutional neural network in this url : https://gist.github.com/shelhamer/80667189b218ad570e82#file-readme-md

When I try to make train and val dataset, is it correct to use the data in pascal context VOC2010's dataset available on the web? 

When I used the following script in the link and tried to run solve.py, following error came out : 

F0421 17:43:57.358407 25566 softmax_loss_layer.cpp:42] Check failed: outer_num_ * inner_num_ == bottom[1]->count() (140500 vs. 421500) Number of labels must match number of predictions; e.g., if softmax axis == 1 and prediction shape is (N, C, H, W), label count (number of labels) must be N*H*W, with integer values in {0, 1, ..., C-1}.
*** Check failure stack trace: ***
Aborted (core dumped)

Can anyone answer where the dataset this example is using came from or from what I need to build upon? 


Thanks

Zach Jorgensen

unread,
May 17, 2016, 6:26:46 PM5/17/16
to Caffe Users
Did you ever find a solution to this problem?  We're encountering the same issue.

Thanks,
Zach

Evan Shelhamer

unread,
May 24, 2016, 2:51:22 PM5/24/16
to Zach Jorgensen, Caffe Users
See the new PASCAL-Context reference models with data layer code at fcn.berkeleyvision.org.

Ark

unread,
May 25, 2016, 1:19:19 AM5/25/16
to Caffe Users, zjorg...@gmail.com
Hello Shelhalmer,

regarding the new fcn github repo:

In the FCN alexnet, in the final loss layer, normalise is set to False (https://github.com/shelhamer/fcn.berkeleyvision.org/blob/master/voc-fcn-alexnet/train.prototxt#L271)

But base_lr is kept to 1e-4. (https://github.com/shelhamer/fcn.berkeleyvision.org/blob/master/voc-fcn-alexnet/solver.prototxt#L10)

With this setup, network was not at all learning. When I checked the weights, it was all nan

Shouldn't be normalise=True (or much lesser base_lr) ?

Evan Shelhamer

unread,
May 25, 2016, 1:55:42 AM5/25/16
to Ark, Caffe Users, Zach Jorgensen
Good catch! This was a mistake in converting the FCNs to the new, master format. I've pushed a fix.

FCN-AlexNet, unlike the FCN-32/16/8s derived from VGG-16, is trained with gradient accumulation and normalized loss. Other settings were difficult to optimize.

Evan Shelhamer





--
You received this message because you are subscribed to the Google Groups "Caffe Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to caffe-users...@googlegroups.com.
To post to this group, send email to caffe...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/caffe-users/7e765ea5-64be-4fd3-b174-49365a3338bd%40googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

Ark

unread,
May 25, 2016, 2:54:59 AM5/25/16
to Caffe Users, ab...@auvizsystems.com, zjorg...@gmail.com
Thanks @Shelhamer for confirming it.

Actually I was trying to replicate the results in your paper (mean IU 48 for fcn_alexnet)

1. So I kept loss normalize: false and base_lr:1e-9. Does it produce same results compared to normalize: true and base_lr=1e-4? Is one method better than the other?

(I am sorry I know you are busy with upcoming NIPS. Also I had some questions regarding some details in your paper (http://www.cs.berkeley.edu/~jonlong/long_shelhamer_fcn.pdf). I would be really thankful if you could reply whenever you are free.)

2. You got much better results with VGG compared to Googlenet (although both have similar results in classification). Any particular reason for this ? ( I am seeing a similar pattern with FCN-Alexnet and fcn verson of squeezenet I used)
3.
In the deconvolution layer, lr_mult is kept as 0. Then it won't be trained, right? But paper discusses about learning deconvolution parameters. Isn't it the trained weights better than fixed weights?
4.
In alexnet based fcn, deconvolution group is kept as 21. But in VGG-32s, they are not provided. Which one is better? Keeping the split or not?

And a general question
5. What factor do you think most influence the accuracy? Depth of the network? Number of parameters in the network? or anything else?

Best Regards,
Abid K
Reply all
Reply to author
Forward
0 new messages