in rtfm/featurizer.py [0:0]
def featurize(self, task, eos='pad', pad='pad'):
mat = task.world.get_observation(perspective=task.perspective, max_placement=task.max_placement)
smat = []
lmat = []
for y in range(0, len(mat)):
srow = []
lrow = []
for x in range(0, len(mat[0])):
names = []
lengths = []
for o in mat[y][x]:
n, l = self.lookup_sentence(o.describe(), task.vocab, max_len=task.max_name, eos=eos, pad=pad)
names.append(n)
lengths.append(l)
srow.append(names)
lrow.append(lengths)
smat.append(srow)
lmat.append(lrow)
wiki, wiki_length = self.lookup_sentence(task.get_tokenized_wiki() if hasattr(task, 'get_tokenized_wiki') else task.get_wiki(), task.vocab, max_len=task.max_wiki, eos=eos, pad=pad)
ins, ins_length = self.lookup_sentence(task.get_tokenized_task() if hasattr(task, 'get_tokenized_task') else task.get_task(), task.vocab, max_len=task.max_task, eos=eos, pad=pad)
inv, inv_length = self.lookup_sentence(task.get_inv(), task.vocab, max_len=task.max_inv, eos=eos, pad=pad)
ret = {
'name': smat,
'name_len': lmat,
'inv': inv,
'inv_len': [inv_length],
'wiki': wiki,
'wiki_len': [wiki_length],
'task': ins,
'task_len': [ins_length],
}
ret = {k: torch.tensor(v, dtype=torch.long) for k, v in ret.items()}
return ret