--- license: mit --- # Towards a Physics Foundation Model Weights for the Physics Foundation Models presented in [Towards a Physics Foundation Model](https://arxiv.org/abs/2509.13805). The weights correspond to the different sizes (S,M,L,XL). The exact configs for these models are found in the [github repo](https://github.com/FloWsnr/General-Physics-Transformer), specificly in the ``model_specs`` file. Use the following function or similar to initialize the model and then load the state dicts: ```python def get_model(model_config: dict): """Get the model.""" transformer_config: dict = model_config["transformer"] tokenizer_config: dict = model_config["tokenizer"] if transformer_config["model_size"] == "GPT_S": gpt_config = model_specs.GPT_S() elif transformer_config["model_size"] == "GPT_M": gpt_config = model_specs.GPT_M() elif transformer_config["model_size"] == "GPT_L": gpt_config = model_specs.GPT_L() elif transformer_config["model_size"] == "GPT_XL": gpt_config = model_specs.GPT_XL() else: raise ValueError(f"Invalid model size: {transformer_config['model_size']}") return PhysicsTransformer( num_fields=transformer_config["input_channels"], hidden_dim=gpt_config.hidden_dim, mlp_dim=gpt_config.mlp_dim, num_heads=gpt_config.num_heads, num_layers=gpt_config.num_layers, att_mode=transformer_config.get("att_mode", "full"), integrator=transformer_config.get("integrator", "Euler"), pos_enc_mode=transformer_config["pos_enc_mode"], img_size=model_config["img_size"], patch_size=transformer_config["patch_size"], use_derivatives=transformer_config["use_derivatives"], tokenizer_mode=tokenizer_config["tokenizer_mode"], detokenizer_mode=tokenizer_config["detokenizer_mode"], tokenizer_overlap=tokenizer_config["tokenizer_overlap"], detokenizer_overlap=tokenizer_config["detokenizer_overlap"], tokenizer_net_channels=gpt_config.conv_channels, detokenizer_net_channels=gpt_config.conv_channels, dropout=transformer_config["dropout"], stochastic_depth_rate=transformer_config["stochastic_depth_rate"], ) ```