lim0606 / caffe-googlenet-bn

re-implementation of googlenet batch normalization
131 stars 77 forks source link

include deploy.prototxt for model #1

Closed auduno closed 8 years ago

auduno commented 9 years ago

Hi,

I know it's probably possible to recreate deploy.prototxt from train.prototxt, but I was wondering if you could share deploy.prototxt for the model as well?

auduno commented 9 years ago

When I reread the readme.md I noticed that you specify to use custom test_bn.cpp and predict_bn.cpp. Does this mean that the model/custom caffe-dev is not possible to use with pycaffe or similar?

lim0606 commented 9 years ago

@auduno I will update deploy.prototxt soon. :)

When I reread the readme.md I noticed that you specify to use custom test_bn.cpp and predict_bn.cpp. Does this mean that the model/custom caffe-dev is not possible to use with pycaffe or similar?

I think it is possible to use it in pycaffe, since I only modified some layers.

However, I recommend to use cpp code as I only wrote the cpp code of batch normalization for inference. Batch normalization for inference bascially requires mean and variance estimation over sufficiently many training data. The cpp code substitutes the means and variances stored in BNLayer class with new means and variances estimated over training data.

If you add 'saving weight' at the end of test_bn.cpp or predict_bn.cpp, you can use the weight in pycaffe.

auduno commented 9 years ago

That's great!

Are the means and variances estimated over the training data (i.e. Imagenet) available anywhere? I would like to avoid downloading the imagenet dataset just to get the estimates, as the dataset's pretty big :)

lim0606 commented 9 years ago

Are the means and variances estimated over the training data (i.e. Imagenet) available anywhere? I'm not sure what you mean by 'available anywhere?'

The means and variances in batch normalization indicates the ones of neuronal activities in the nets; thus, the ones should be estimated with the network you are going to use.

auduno commented 9 years ago

Might be I've misunderstood, but if I wanted to use your trained model for inference, I'd need the means and variances estimated over the entire training data. As I understood these are not stored in the snapshot, but has to be estimated using the cpp code?

lim0606 commented 9 years ago

@auduno yes :) You have to run tools/predict_bn.cpp (for getting probability output) or tools/test_bn.cpp (for evaluating the performance directly)

blazespinnaker commented 8 years ago

@auduno Were you able to get this to work? I was trying to figure out what command line parameters to send to predict_bn for a particular image I'd like to test with the given weights in the snapshot directory. Cheers

auduno commented 8 years ago

@blazespinnaker I haven't gotten around to testing it yet, unfortunately :/

lim0606 commented 8 years ago

@auduno

Sorry for the late response.

I have some issues, so i could have time to see this repository.

Please see following link, https://github.com/lim0606/caffe-fast-rcnn/tree/fast-rcnn-cleanup/models/jhlim_inception_bn

This repository included the layers, finely working with current caffe version; thus, you may run it with multiple gpus.

Sincerely,

Jaehyun

auduno commented 8 years ago

Awesome, thanks! I'm going to give it a spin this weekend!