Example #1
0
 def __init__(self, params: DatasetAlphabetParams, seed: Optional[int] = None, n_worlds: int = 1,
              name: str = "DatasetAlphabet"):
     super().__init__(name=name, outputs=MultiDatasetAlphabetOutputs(self),
                      memory_blocks=MultiDatasetAlphabetInternals(self))
     self._params = params.clone()
     self._seed = seed
     self._n_worlds = n_worlds
Example #2
0
    def __init__(self, creator: TensorCreator, params: DatasetAlphabetParams, n_worlds: int,
                 random: Optional[RandomState] = None):
        super().__init__(creator.device)
        self._validate_params(params)
        self.n_worlds = n_worlds

        self._units = [DatasetAlphabetUnit(creator, params.clone(), random) for _ in range(self.n_worlds)]

        def stacked(tensor):
            size = [self.n_worlds] + list(tensor.shape)
            return creator.zeros(size, dtype=tensor.dtype, device=tensor.device)

        self._first_unit = self._units[0]

        # Create output tensors
        self.output_data = stacked(self._first_unit.output_data)
        self.output_label = stacked(self._first_unit.output_label)
        self.output_sequence_id = stacked(self._first_unit.output_sequence_id)
        self.output_sequence_id_one_hot = stacked(self._first_unit.output_sequence_id_one_hot)
        self.all_symbols = self._first_unit.all_symbols