def __init__(self, obs_space, action_space, num_outputs, model_config, name): TorchModelV2.__init__(self, obs_space, action_space, num_outputs, model_config, name) nn.Module.__init__(self) self.action_model = TorchFC( Box(low=0, high=1, shape=(6, )), # one-hot encoded Discrete(6) action_space, num_outputs, model_config, name + "_action") self.value_model = TorchFC(obs_space, action_space, 1, model_config, name + "_vf")
def __init__( self, obs_space, action_space, num_outputs, model_config, name, **kwargs, ): orig_space = getattr(obs_space, "original_space", obs_space) assert (isinstance(orig_space, Dict) and "action_mask" in orig_space.spaces and "observations" in orig_space.spaces) TorchModelV2.__init__(self, obs_space, action_space, num_outputs, model_config, name, **kwargs) nn.Module.__init__(self) self.internal_model = TorchFC( orig_space["observations"], action_space, num_outputs, model_config, name + "_internal", ) # disable action masking --> will likely lead to invalid actions self.no_masking = False if "no_masking" in model_config["custom_model_config"]: self.no_masking = model_config["custom_model_config"]["no_masking"]
def __init__(self, obs_space, action_space, num_outputs, model_config, name): TorchModelV2.__init__(self, custom_input_space, action_space, num_outputs, model_config, name) nn.Module.__init__(self) self.torch_sub_model = TorchFC(custom_input_space, action_space, num_outputs, model_config, name) prev_safe_layer_size = int(np.product(custom_input_space.shape)) vf_layers = [] activation = model_config.get("fcnet_activation") hiddens = [32] for size in hiddens: vf_layers.append( SlimFC(in_size=prev_safe_layer_size, out_size=size, activation_fn=activation, initializer=normc_initializer(1.0))) prev_safe_layer_size = size vf_layers.append( SlimFC(in_size=prev_safe_layer_size, out_size=1, initializer=normc_initializer(0.01), activation_fn=None)) self.safe_branch_separate = nn.Sequential(*vf_layers) self.last_in = None
def __init__(self, obs_space, action_space, num_outputs, model_config, name): TorchModelV2.__init__(self, obs_space, action_space, num_outputs, model_config, name) nn.Module.__init__(self) true_obs_space = Box(low=0, high=1, shape=(266, ), dtype=int) self.action_model = TorchFC(true_obs_space, action_space, num_outputs, model_config, name)
def __init__(self, obs_space, action_space, num_outputs, model_config, name): TorchModelV2.__init__(self, obs_space, action_space, num_outputs, model_config, name) nn.Module.__init__(self) self.torch_sub_model = TorchFC(obs_space, action_space, num_outputs, model_config, name)
def __init__(self, obs_space, action_space, num_outputs, model_config, name): print(f'CUDA {torch.cuda.is_available()}') TorchModelV2.__init__(self, obs_space, action_space, num_outputs, model_config, name) nn.Module.__init__(self) self.torch_sub_model = TorchFC(obs_space, action_space, num_outputs, model_config, name)
def __init__(self, obs_space, action_space, num_outputs, model_config, name, **kwargs): DQNTorchModel.__init__(self, obs_space, action_space, num_outputs, model_config, name, **kwargs) true_obs_space = Box(low=0, high=1, shape=obs_space.original_space["state"].shape, dtype=int) self.action_model = TorchFC(true_obs_space, action_space, num_outputs, model_config, name)
def __init__(self, obs_space, action_space, num_outputs, model_config, name): TorchModelV2.__init__(self, obs_space, action_space, num_outputs, model_config, name) nn.Module.__init__(self) true_obs_space = Box(low=0.0, high=55.0, shape=(100, ), dtype=np.float32) self.torch_sub_model = TorchFC(true_obs_space, action_space, num_outputs, model_config, name)
def __init__(self, obs_space, action_space, num_outputs, model_config, name): TorchModelV2.__init__(self, obs_space, action_space, num_outputs, model_config, name) nn.Module.__init__(self) self.torch_sub_model = TorchFC(custom_input_space, action_space, num_outputs, model_config, name) self.torch_sub_model._logits = torch.nn.Sequential( self.torch_sub_model._logits, torch.nn.Hardtanh(min_val=-3, max_val=3))
def __init__( self, obs_space, action_space, num_outputs, model_config, name, input_files ): super().__init__(obs_space, action_space, num_outputs, model_config, name) nn.Module.__init__(self) self.input_files = input_files # Create a new input reader per worker. self.reader = JsonReader(self.input_files) self.fcnet = TorchFC( self.obs_space, self.action_space, num_outputs, model_config, name="fcnet" )
def __init__(self, obs_space, action_space, num_outputs, model_config, name, **kw): DQNTorchModel.__init__(self, obs_space, action_space, num_outputs, model_config, name, **kw) obs_len = obs_space.shape[0] - action_space.n orig_obs_space = Box(shape=(obs_len, ), low=obs_space.low[:obs_len], high=obs_space.high[:obs_len]) self.action_embed_model = TorchFC(orig_obs_space, action_space, action_space.n, model_config, name + "_action_embed")
def __init__(self, obs_space, action_space, num_outputs, model_config, name, input_files): super().__init__(obs_space, action_space, num_outputs, model_config, name) nn.Module.__init__(self) self.input_files = input_files self.fcnet = TorchFC( self.obs_space, self.action_space, num_outputs, model_config, name="fcnet")
def __init__(self, obs_space, action_space, num_outputs, model_config, name): TorchModelV2.__init__(self, obs_space, action_space, num_outputs, model_config, name) nn.Module.__init__(self) # Base of the model self.model = TorchFC(obs_space, action_space, num_outputs, model_config, name) # Central VF maps (obs, opp_obs, opp_act) -> vf_pred input_size = 6 + 6 + 2 # obs + opp_obs + opp_act self.central_vf_dense = SlimFC(input_size, 16, activation_fn=nn.Tanh) self.central_vf_out = SlimFC(16, 1)
def __init__(self, obs_space, action_space, num_outputs, model_config, name, true_obs_shape=(4, ), action_embed_size=2, **kw): DQNTorchModel.__init__(self, obs_space, action_space, num_outputs, model_config, name, **kw) self.action_embed_model = TorchFC( Box(-1, 1, shape=true_obs_shape), action_space, action_embed_size, model_config, name + "_action_embed")
def __init__(self, obs_space, action_space, num_outputs, model_config, name): self.custom_model_config = config # Reshape obs to vector and convert to float volume = np.prod(obs_space.shape) space = np.zeros(volume) flat_observation_space = spaces.Box(low=self.custom_model_config["observation_min"], high=self.custom_model_config["observation_max"], shape=space.shape, dtype=np.float32) # TODO: Transform to output of any other PyTorch and pass new shape to model. # Create default model (for RL) TorchModelV2.__init__(self, flat_observation_space, action_space, num_outputs, model_config, name) nn.Module.__init__(self) self.torch_sub_model = TorchFC(flat_observation_space, action_space, num_outputs, model_config, name)
def __init__( self, obs_space, action_space, num_outputs, model_config, name, action_embed_size=2, # Dimensionality of sentence embeddings TODO don't make this hard-coded **kw): DQNTorchModel.__init__(self, obs_space, action_space, num_outputs, model_config, name, **kw) self.true_obs_preprocessor = DictFlatteningPreprocessor( obs_space.original_space["true_obs"]) self.action_embed_model = TorchFC( Box(-10, 10, self.true_obs_preprocessor.shape), action_space, action_embed_size, model_config, name + "_action_embed")
def __init__( self, obs_space, action_space, num_outputs, model_config, name, **kwargs, ): orig_space = getattr(obs_space, "original_space", obs_space) assert isinstance(orig_space, Dict) and \ "action_mask" in orig_space.spaces and \ "observations" in orig_space.spaces TorchModelV2.__init__(self, obs_space, action_space, num_outputs, model_config, name, **kwargs) nn.Module.__init__(self) self.internal_model = TorchFC(orig_space["observations"], action_space, num_outputs, model_config, name + "_internal")