albanie / mcnSSD

A matconvnet implementation of the Single Shot Detector
MIT License
36 stars 23 forks source link

More details in the training and evaluation fail #23

Open yveah opened 6 years ago

yveah commented 6 years ago

I am trying to train my own dataset in the format of Pascal VOC, so I am trying to use the function ssd_pascal_train with most of the options as they are in the code you provided (but with CPU only and the classes are different). I tried to run with the model vgg-vd-16-reduced. Everyting works fine until the variable all_losses receives the value of a cell of layers, this leads to the error that has been complicating my life in the last two weeks:

Warning: The model appears to be simplenn model. Using fromSimpleNN instead.

In dagnn.DagNN.loadobj (line 19) In ssd_zoo (line 29) In ssd_init (line 27) In ssd_train (line 19) In ssd_pascal_train (line 213) Error using Layer.fromDagNN (line 65) Input must be a DagNN or SimpleNN.

Error in Net (line 93) objects = Layer.fromDagNN(objects{:}) ;

Error in ssd_init (line 185) net = Net(all_losses) ;

Error in ssd_train (line 19) net = opts.modelOpts.net_init(opts) ;

Error in ssd_pascal_train (line 213) ssd_train(expDir, opts) ;

Can you please, please provide me some guidance, I don't really know what I can do to fix it.

albanie commented 6 years ago

Hi @yveah. As a sanity check, does the code work if you use the pascal dataset example?

yveah commented 6 years ago

No, the same error happens :/ Also, I thought it could be due to a compatibility issue, since I was using Matlab 2017a, but I installed the 2016a version and the outcome is the same. Btw, thanks for your attention, @albanie!

fredsi31 commented 6 years ago

Hi! I'm having the same issue while trying to run ssd_pascal_train on the Pascal VOC 2007 dataset, in Matlab 2018a, mex compiled with Visual Studio 2015 Community and matconvnet beta 25, CPU. When the function tries to run the net=Net(all_losses) my all_losses variable is a cell array with a layer object inside, this layer has two other layers as input, is this correct? On the first instance the code goes through the Net function the input is automatically a DagNN, but not when it comes to losses. @albanie what's your insight?

kankanar commented 6 years ago

See issue 19

albanie commented 6 years ago

This should be fixed by https://github.com/albanie/mcnSSD/commit/f62199788c8c42ff3cc36af95beda367b2876033, but let me know it's still broken for you.