def featurize()

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