training/models.py [593:647]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            print('Adding input to %s: question, rnn dim: %d' %
                  (self.rnn_type, rnn_input_dim))

        if self.action_input == True:
            self.action_embed = nn.Embedding(num_actions, action_embed_dim)
            rnn_input_dim += action_embed_dim
            print('Adding input to %s: action, rnn dim: %d' % (self.rnn_type,
                                                               rnn_input_dim))

        self.rnn = getattr(nn, self.rnn_type)(
            rnn_input_dim,
            self.rnn_hidden_dim,
            self.rnn_num_layers,
            dropout=rnn_dropout,
            batch_first=True)
        print('Building %s with hidden dim: %d' % (self.rnn_type,
                                                   rnn_hidden_dim))

        self.decoder = nn.Linear(self.rnn_hidden_dim, self.num_actions)

    def init_hidden(self, bsz):
        weight = next(self.parameters()).data
        if self.rnn_type == 'LSTM':
            return (Variable(
                weight.new(self.rnn_num_layers, bsz, self.rnn_hidden_dim)
                .zero_()), Variable(
                    weight.new(self.rnn_num_layers, bsz, self.rnn_hidden_dim)
                    .zero_()))
        elif self.rnn_type == 'GRU':
            return Variable(
                weight.new(self.rnn_num_layers, bsz, self.rnn_hidden_dim)
                .zero_())

    def forward(self,
                img_feats,
                question_feats,
                actions_in,
                action_lengths,
                hidden=False):
        input_feats = Variable()

        T = False
        if self.image_input == True:
            N, T, _ = img_feats.size()
            input_feats = img_feats

        if self.question_input == True:
            N, D = question_feats.size()
            question_feats = question_feats.view(N, 1, D)
            if T == False:
                T = actions_in.size(1)
            question_feats = question_feats.repeat(1, T, 1)
            if len(input_feats) == 0:
                input_feats = question_feats
            else:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



training/models.py [747:801]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            print('Adding input to %s: question, rnn dim: %d' %
                  (self.rnn_type, rnn_input_dim))

        if self.action_input == True:
            self.action_embed = nn.Embedding(num_actions, action_embed_dim)
            rnn_input_dim += action_embed_dim
            print('Adding input to %s: action, rnn dim: %d' % (self.rnn_type,
                                                               rnn_input_dim))

        self.rnn = getattr(nn, self.rnn_type)(
            rnn_input_dim,
            self.rnn_hidden_dim,
            self.rnn_num_layers,
            dropout=rnn_dropout,
            batch_first=True)
        print('Building %s with hidden dim: %d' % (self.rnn_type,
                                                   rnn_hidden_dim))

        self.decoder = nn.Linear(self.rnn_hidden_dim, self.num_actions)

    def init_hidden(self, bsz):
        weight = next(self.parameters()).data
        if self.rnn_type == 'LSTM':
            return (Variable(
                weight.new(self.rnn_num_layers, bsz, self.rnn_hidden_dim)
                .zero_()), Variable(
                    weight.new(self.rnn_num_layers, bsz, self.rnn_hidden_dim)
                    .zero_()))
        elif self.rnn_type == 'GRU':
            return Variable(
                weight.new(self.rnn_num_layers, bsz, self.rnn_hidden_dim)
                .zero_())

    def forward(self,
                img_feats,
                question_feats,
                actions_in,
                action_lengths,
                hidden=False):
        input_feats = Variable()

        T = False
        if self.image_input == True:
            N, T, _ = img_feats.size()
            input_feats = img_feats

        if self.question_input == True:
            N, D = question_feats.size()
            question_feats = question_feats.view(N, 1, D)
            if T == False:
                T = actions_in.size(1)
            question_feats = question_feats.repeat(1, T, 1)
            if len(input_feats) == 0:
                input_feats = question_feats
            else:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



