rpng / calc

Convolutional Autoencoder for Loop Closure
BSD 3-Clause "New" or "Revised" License
190 stars 45 forks source link

question about the results? #9

Closed zoeyuchao closed 5 years ago

zoeyuchao commented 5 years ago

Hello, thanks for sharing your work here~I have some problems about the results. First, I train the net from the scratch on the MIT places dataset (use train and val images) as you said in other issues. I also observed that the loss is about 60-65, it doesn't decay. After that, I test the model on the campus dataset(test data in your code) at training epoch 100000, 200000, 300000, 400000, 500000 and so on. But I can not get the similar result as your model. My model is just a little better than the HoG, I am so confused .... If the loss function doesn‘t mean when the network has been trained ok because the HoG is not good for this task. The weights in the network will change according to what? It seems reasonable that my model is just better than HoG according to the 60-65 loss. Secondly, I use Alexnet (trained on the MIT places dataset) in the your test code, it achieves different and better results in your test data, and I use GardensPoint and aderley dataset(the last 200 frames as you said in your paper), It also performs better , and I can not get the same result using the released calc model weight. Looking forward to your reply, thanks!

nmerrill67 commented 5 years ago

Hello. I have stored the exact data and readmes containing the command line arguments used in testNet.py in this google drive link. The Alderley dataset has to have the frames aligned in order to work with the code, and they have been in the data in the drive. As for your issues with training, I would suggest cross-validating the snapshotted models from different iterations. I only needed 200,000 iterations to achieve optimal results. Since it is an unsupervised learning method, we care less about the loss and more about the internal representation. Additionally, if you used a small batch size, more iterations may be required. I lowered the batch size from what I used in the released model for this repo since it may be too large for most users. Since I trained on multiple GPUs, I had an effective batch size on the order of 1800 instead of the default 256. You can enable multi-gpu training with nccl with Caffe. With this batch size and number of iterations, the number of epochs is roughly 42, which is the number of times the model sees all of the training data. I hope this helps.