| --- |
| 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"], |
| ) |
| ``` |
|
|
|
|