SydCaption / SAAT

MIT License
62 stars 21 forks source link

It seems in the evalution part is uses label information. #5

Closed RyanLiut closed 4 years ago

RyanLiut commented 4 years ago

Hi, Thanks for the code!

I have a question. When evaluating some data, as one part of the input features in LSTM, the "lan_cont" uses the label information because of the "it" is derived from "seq". As in the code shows (model_svo.py line 424 439) : #424 it = seq[:, token_idx].clone() #439 lan_cont = self.embed(torch.cat((svo_it[:,1:2], it.unsqueeze(1)), 1)) And I also noticed there is "loader.has_label" before evaluating it. But I am confused why in the evaluation stage, we can see the labels (that are the captions of the videos)?

Thanks!

SydCaption commented 4 years ago

Hi, thanks for your question! Yes, but the label is used for loss calculation during evaluation. For actual inference, it conducts the sample function https://github.com/SydCaption/SAAT/blob/6cf41781d5860455c17433486f1a84a26b6883de/train_svo.py#L355