in training/models.py [0:0]
def __init__(self,
image_input=False,
image_feat_dim=128,
question_input=False,
question_embed_dim=128,
action_input=False,
action_embed_dim=32,
num_actions=4,
mode='sl',
rnn_type='LSTM',
rnn_hidden_dim=128,
rnn_num_layers=2,
rnn_dropout=0,
return_states=False):
super(NavRnn, self).__init__()
self.image_input = image_input
self.image_feat_dim = image_feat_dim
self.question_input = question_input
self.question_embed_dim = question_embed_dim
self.action_input = action_input
self.action_embed_dim = action_embed_dim
self.num_actions = num_actions
self.rnn_type = rnn_type
self.rnn_hidden_dim = rnn_hidden_dim
self.rnn_num_layers = rnn_num_layers
self.return_states = return_states
rnn_input_dim = 0
if self.image_input == True:
rnn_input_dim += image_feat_dim
print('Adding input to %s: image, rnn dim: %d' % (self.rnn_type,
rnn_input_dim))
if self.question_input == True:
rnn_input_dim += question_embed_dim
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)