rafellerc / Pytorch-SiamFC

Pytorch implementation of "Fully-Convolutional Siamese Networks for Object Tracking"
Other
609 stars 148 forks source link

Running eval mode on CPU #24

Open clement-lr opened 5 years ago

clement-lr commented 5 years ago

Hi Rafael,

I'm currently doing an internship at Parrot and I am using your work to compare SiamFC to other trackers.

I tried executing your network on a CPU-based machine, and I got two minor errors.

  1. The first related to a _torch.cuda.isavailable() test in train.py, that was lacking parenthesis (line 24).
  2. The second in train_utils.py when using torch.load() function (line 220) : I had to specify _maplocation='cpu' in arguments.

It ran well after these modifications, except for a warning about _reduction='elementwisemean' in losses.py being deprecated. I used reduction='mean' instead, as the warning message said.

Last thing, after the execution I noticed that _listpairs in metadata.val output file was strangely long. With the help of a colleague we looked at _build_testpairs() in datasets.py, and noticed that the double for loop was creating (I think) too much pairs. For example, if a sequence contains N frames, N x N test pairs are generated for this sequence. It was apparently a bug, so I modified the loop in order to generate N pairs per sequence only.

I'll make a pull request with these small modifications, hoping they can help others.

Clément