def __init__(self, observation_width: int, observation_height: int, observation_channels_num: int, dyn_encoding_size: int, static_encoding_size: int, action_size: int, dynamics_nn_arch: Tuple[(int, int)]):
    super().__init__()
    self._observation_height = observation_height
    self._observation_width = observation_width
    self._dyn_encoding_size = dyn_encoding_size
    self._static_encoding_size = static_encoding_size
    self._action_size = action_size
    self._observation_channels_num = observation_channels_num
    self._dynamics_nn_arch = dynamics_nn_arch
    self._dynEncoder = SimpleEncoder(encoding_size=self._dyn_encoding_size, image_channels_num=self._observation_channels_num, net_input_width=self._observation_width, net_input_height=self._observation_height)
    if (self._static_encoding_size != 0):
        self._staticEncoder = SimpleEncoder(encoding_size=self._static_encoding_size, image_channels_num=self._observation_channels_num, net_input_width=self._observation_width, net_input_height=self._observation_height)
    else:
        self._staticEncoder = None
    self._dynamics_net = th.nn.Sequential(th.nn.Linear((self._dyn_encoding_size + self._action_size), self._dynamics_nn_arch[0]), th.nn.ReLU(), th.nn.Linear(self._dynamics_nn_arch[0], self._dynamics_nn_arch[1]), th.nn.ReLU(), th.nn.Linear(self._dynamics_nn_arch[1], (self._dyn_encoding_size + 1)))
    self._decoder = SimpleDecoder(encoding_size=(self._dyn_encoding_size + self._static_encoding_size), image_channels_num=self._observation_channels_num, net_output_width=self._observation_width, net_output_height=self._observation_height)
    self._resizeToInput = transforms.Resize((self._observation_height, self._observation_width))
def __init__(self, observation_width: int, observation_height: int, observation_channels_num: int, dyn_encoding_size: int, static_encoding_size: int, action_size: int, dynamics_nn_arch: Tuple[(int, int)]):
    super().__init__()
    self._observation_height = observation_height
    self._observation_width = observation_width
    self._dyn_encoding_size = dyn_encoding_size
    self._static_encoding_size = static_encoding_size
    self._action_size = action_size
    self._observation_channels_num = observation_channels_num
    self._dynamics_nn_arch = dynamics_nn_arch
    self._dynEncoder = SimpleEncoder(encoding_size=self._dyn_encoding_size, image_channels_num=self._observation_channels_num, net_input_width=self._observation_width, net_input_height=self._observation_height)
    if (self._static_encoding_size != 0):
        self._staticEncoder = SimpleEncoder(encoding_size=self._static_encoding_size, image_channels_num=self._observation_channels_num, net_input_width=self._observation_width, net_input_height=self._observation_height)
    else:
        self._staticEncoder = None
    self._dynamics_net = th.nn.Sequential(th.nn.Linear((self._dyn_encoding_size + self._action_size), self._dynamics_nn_arch[0]), th.nn.ReLU(), th.nn.Linear(self._dynamics_nn_arch[0], self._dynamics_nn_arch[1]), th.nn.ReLU(), th.nn.Linear(self._dynamics_nn_arch[1], (self._dyn_encoding_size + 1)))
    self._decoder = SimpleDecoder(encoding_size=(self._dyn_encoding_size + self._static_encoding_size), image_channels_num=self._observation_channels_num, net_output_width=self._observation_width, net_output_height=self._observation_height)
    self._resizeToInput = transforms.Resize((self._observation_height, self._observation_width))