codingutf8 2022 the huggingface team and the huggingface inc team licensed under the apache license version 2 0 the license you may not use this file except in compliance with the license you may obtain a copy of the license at http www apache orglicenseslicense2 0 unless required by applicable law or agreed to in writing software distributed under the license is distributed on an as is basis without warranties or conditions of any kind either express or implied see the license for the specific language governing permissions and limitations under the license decision transformer model configuration from configurationutils import pretrainedconfig from utils import logging logger logging getloggername decisiontransformerpretrainedconfigarchivemap edbeechingdecisiontransformergymhoppermedium https huggingface coedbeechingdecisiontransformergymhoppermediumresolvemainconfig json see all decisiontransformer models at https huggingface comodels filterdecisiontransformer class decisiontransformerconfigpretrainedconfig coding utf 8 2022 the huggingface team and the huggingface inc team licensed under the apache license version 2 0 the license you may not use this file except in compliance with the license you may obtain a copy of the license at http www apache org licenses license 2 0 unless required by applicable law or agreed to in writing software distributed under the license is distributed on an as is basis without warranties or conditions of any kind either express or implied see the license for the specific language governing permissions and limitations under the license decision transformer model configuration see all decisiontransformer models at https huggingface co models filter decision_transformer this is the configuration class to store the configuration of a decisiontransformermodel it is used to instantiate a decision transformer model according to the specified arguments defining the model architecture instantiating a configuration with the defaults will yield a similar configuration to that of the standard decisiontransformer architecture many of the config options are used to instatiate the gpt2 model that is used as part of the architecture configuration objects inherit from pretrainedconfig and can be used to control the model outputs read the documentation from pretrainedconfig for more information args state_dim int optional defaults to 17 the state size for the rl environment act_dim int optional defaults to 4 the size of the output action space hidden_size int optional defaults to 128 the size of the hidden layers max_ep_len int optional defaults to 4096 the maximum length of an episode in the environment action_tanh bool optional defaults to true whether to use a tanh activation on action prediction vocab_size int optional defaults to 50257 vocabulary size of the gpt 2 model defines the number of different tokens that can be represented by the inputs_ids passed when calling decisiontransformermodel n_positions int optional defaults to 1024 the maximum sequence length that this model might ever be used with typically set this to something large just in case e g 512 or 1024 or 2048 n_layer int optional defaults to 3 number of hidden layers in the transformer encoder n_head int optional defaults to 1 number of attention heads for each attention layer in the transformer encoder n_inner int optional dimensionality of the inner feed forward layers if unset will default to 4 times n_embd activation_function str optional defaults to gelu activation function to be selected in the list relu silu gelu tanh gelu_new resid_pdrop float optional defaults to 0 1 the dropout probability for all fully connected layers in the embeddings encoder and pooler embd_pdrop int optional defaults to 0 1 the dropout ratio for the embeddings attn_pdrop float optional defaults to 0 1 the dropout ratio for the attention layer_norm_epsilon float optional defaults to 1e 5 the epsilon to use in the layer normalization layers initializer_range float optional defaults to 0 02 the standard deviation of the truncated_normal_initializer for initializing all weight matrices scale_attn_weights bool optional defaults to true scale attention weights by dividing by sqrt hidden_size use_cache bool optional defaults to true whether or not the model should return the last key values attentions not used by all models scale_attn_by_inverse_layer_idx bool optional defaults to false whether to additionally scale attention weights by 1 layer_idx 1 reorder_and_upcast_attn bool optional defaults to false whether to scale keys k prior to computing attention dot product and upcast attention dot product softmax to float when training with mixed precision example python from transformers import decisiontransformerconfig decisiontransformermodel initializing a decisiontransformer configuration configuration decisiontransformerconfig initializing a model with random weights from the configuration model decisiontransformermodel configuration accessing the model configuration configuration model config
from ...configuration_utils import PretrainedConfig
from ...utils import logging


logger = logging.get_logger(__name__)

DECISION_TRANSFORMER_PRETRAINED_CONFIG_ARCHIVE_MAP = {
    "edbeeching/decision-transformer-gym-hopper-medium": (
        "https://huggingface.co/edbeeching/decision-transformer-gym-hopper-medium/resolve/main/config.json"
    ),
    
}


class DecisionTransformerConfig(PretrainedConfig):
    

    model_type = "decision_transformer"
    keys_to_ignore_at_inference = ["past_key_values"]
    attribute_map = {
        "max_position_embeddings": "n_positions",
        "num_attention_heads": "n_head",
        "num_hidden_layers": "n_layer",
    }

    def __init__(
        self,
        state_dim=17,
        act_dim=4,
        hidden_size=128,
        max_ep_len=4096,
        action_tanh=True,
        vocab_size=1,
        n_positions=1024,
        n_layer=3,
        n_head=1,
        n_inner=None,
        activation_function="relu",
        resid_pdrop=0.1,
        embd_pdrop=0.1,
        attn_pdrop=0.1,
        layer_norm_epsilon=1e-5,
        initializer_range=0.02,
        scale_attn_weights=True,
        use_cache=True,
        bos_token_id=50256,
        eos_token_id=50256,
        scale_attn_by_inverse_layer_idx=False,
        reorder_and_upcast_attn=False,
        **kwargs,
    ):
        self.state_dim = state_dim
        self.act_dim = act_dim
        self.hidden_size = hidden_size
        self.max_ep_len = max_ep_len
        self.action_tanh = action_tanh
        self.vocab_size = vocab_size
        self.n_positions = n_positions
        self.n_layer = n_layer
        self.n_head = n_head
        self.n_inner = n_inner
        self.activation_function = activation_function
        self.resid_pdrop = resid_pdrop
        self.embd_pdrop = embd_pdrop
        self.attn_pdrop = attn_pdrop
        self.layer_norm_epsilon = layer_norm_epsilon
        self.initializer_range = initializer_range
        self.scale_attn_weights = scale_attn_weights
        self.use_cache = use_cache
        self.scale_attn_by_inverse_layer_idx = scale_attn_by_inverse_layer_idx
        self.reorder_and_upcast_attn = reorder_and_upcast_attn

        self.bos_token_id = bos_token_id
        self.eos_token_id = eos_token_id

        super().__init__(bos_token_id=bos_token_id, eos_token_id=eos_token_id, **kwargs)