Beispiel #1
0
    def __init__(self, obs_space, num_outputs, options):
        TorchModel.__init__(self, obs_space, num_outputs, options)
        hiddens = options.get("fcnet_hiddens")
        activation = _get_activation_fn(options.get("fcnet_activation"))
        logger.debug("Constructing fcnet {} {}".format(hiddens, activation))
        layers = []
        last_layer_size = np.product(obs_space.shape)
        for size in hiddens:
            layers.append(
                SlimFC(
                    in_size=last_layer_size,
                    out_size=size,
                    initializer=normc_initializer(1.0),
                    activation_fn=activation))
            last_layer_size = size

        self._hidden_layers = nn.Sequential(*layers)

        self._logits = SlimFC(
            in_size=last_layer_size,
            out_size=num_outputs,
            initializer=normc_initializer(0.01),
            activation_fn=None)
        self._value_branch = SlimFC(
            in_size=last_layer_size,
            out_size=1,
            initializer=normc_initializer(1.0),
            activation_fn=None)
Beispiel #2
0
    def __init__(self, obs_space, num_outputs, options):
        TorchModel.__init__(self, obs_space, num_outputs, options)
        hiddens = options.get("fcnet_hiddens")
        activation = _get_activation_fn(options.get("fcnet_activation"))
        logger.debug("Constructing fcnet {} {}".format(hiddens, activation))
        layers = []
        last_layer_size = np.product(obs_space.shape)
        for size in hiddens:
            layers.append(
                SlimFC(in_size=last_layer_size,
                       out_size=size,
                       initializer=normc_initializer(1.0),
                       activation_fn=activation))
            last_layer_size = size

        self._hidden_layers = nn.Sequential(*layers)

        self._logits = SlimFC(in_size=last_layer_size,
                              out_size=num_outputs,
                              initializer=normc_initializer(0.01),
                              activation_fn=None)
        self._value_branch = SlimFC(in_size=last_layer_size,
                                    out_size=1,
                                    initializer=normc_initializer(1.0),
                                    activation_fn=None)
Beispiel #3
0
    def __init__(self, obs_space, num_outputs, options):
        TorchModel.__init__(self, obs_space, num_outputs, options)
        filters = options.get("conv_filters")
        if not filters:
            filters = _get_filter_config(obs_space.shape)
        layers = []

        (w, h, in_channels) = obs_space.shape
        in_size = [w, h]
        for out_channels, kernel, stride in filters[:-1]:
            padding, out_size = valid_padding(in_size, kernel,
                                              [stride, stride])
            layers.append(
                SlimConv2d(in_channels, out_channels, kernel, stride, padding))
            in_channels = out_channels
            in_size = out_size

        out_channels, kernel, stride = filters[-1]
        layers.append(
            SlimConv2d(in_channels, out_channels, kernel, stride, None))
        self._convs = nn.Sequential(*layers)

        self._logits = SlimFC(out_channels,
                              num_outputs,
                              initializer=nn.init.xavier_uniform_)
        self._value_branch = SlimFC(out_channels,
                                    1,
                                    initializer=normc_initializer())
Beispiel #4
0
    def __init__(self, obs_space, num_outputs, options):
        TorchModel.__init__(self, obs_space, num_outputs, options)
        filters = options.get("conv_filters")
        if not filters:
            filters = _get_filter_config(obs_space.shape)
        layers = []

        (w, h, in_channels) = obs_space.shape
        in_size = [w, h]
        for out_channels, kernel, stride in filters[:-1]:
            padding, out_size = valid_padding(in_size, kernel,
                                              [stride, stride])
            layers.append(
                SlimConv2d(in_channels, out_channels, kernel, stride, padding))
            in_channels = out_channels
            in_size = out_size

        out_channels, kernel, stride = filters[-1]
        layers.append(
            SlimConv2d(in_channels, out_channels, kernel, stride, None))
        self._convs = nn.Sequential(*layers)

        self._logits = SlimFC(
            out_channels, num_outputs, initializer=nn.init.xavier_uniform_)
        self._value_branch = SlimFC(
            out_channels, 1, initializer=normc_initializer())
Beispiel #5
0
 def __init__(self, obs_space, num_outputs, options):
     TorchModel.__init__(self, obs_space, num_outputs, options)
     self.obs_size = _get_size(obs_space)
     self.rnn_hidden_dim = options["lstm_cell_size"]
     self.fc1 = nn.Linear(self.obs_size, self.rnn_hidden_dim)
     self.rnn = nn.GRUCell(self.rnn_hidden_dim, self.rnn_hidden_dim)
     self.fc2 = nn.Linear(self.rnn_hidden_dim, num_outputs)
Beispiel #6
0
 def __init__(self, obs_space, num_outputs, options):
     TorchModel.__init__(self, obs_space, num_outputs, options)
     self.obs_size = _get_size(obs_space)
     self.rnn_hidden_dim = options["lstm_cell_size"]
     self.fc1 = nn.Linear(self.obs_size, self.rnn_hidden_dim)
     self.rnn = nn.GRUCell(self.rnn_hidden_dim, self.rnn_hidden_dim)
     self.fc2 = nn.Linear(self.rnn_hidden_dim, num_outputs)
Beispiel #7
0
 def __init__(self, obs_space, num_outputs, options):
     TorchModel.__init__(self, obs_space, num_outputs, options)
     self.fc = FullyConnectedNetwork(
         obs_space.original_space.spaces["sensors"].spaces["position"],
         num_outputs, options)
 def __init__(self, obs_space, num_outputs, options):
     TorchModel.__init__(self, obs_space, num_outputs, options)
     self.fc = FullyConnectedNetwork(
         obs_space.original_space.spaces["sensors"].spaces["position"],
         num_outputs, options)