diff --git a/README.md b/README.md index dcafeb49..a84ef225 100644 --- a/README.md +++ b/README.md @@ -13,16 +13,34 @@ python benchmarl/run.py algorithm=mappo task=vmas/balance [![Static Badge](https://img.shields.io/badge/Benchmarks-Wandb-yellow)]() --> +### What is BenchMARL 🧐? BenchMARL is a Multi-Agent Reinforcement Learning (MARL) training library created to enable reproducibility and benchmarking across different MARL algorithms and environments. Its mission is to present a standardized interface that allows easy integration of new algorithms and environments to provide a fair comparison with existing solutions. BenchMARL uses [TorchRL](https://github.com/pytorch/rl) as its backend, which grants it high performance -and state-of-the-art implementations. -BenchMARL data reporting is compatible with [marl-eval](https://sites.google.com/view/marl-standard-protocol/home) -for standardized and -statistically strong evaluations. +and state-of-the-art implementations. +It also uses [hydra](https://hydra.cc/docs/intro/) for flexible and modular configuration, +and its data reporting is compatible with [marl-eval](https://sites.google.com/view/marl-standard-protocol/home) +for standardised and statistically strong evaluations. + +BenchMARL **core design tenets** are: +* _Reproducibility through systematical grounding and standardization of configuration_ +* _Standardised and statistically-strong plotting and reporting_ +* _Experiments that are independent of the algorithm, environment, and model choices_ +* _Breadth over the MARL ecosystem_ +* _Easy implementation of new algorithms, environments, and models_ +* _Leveraging the know-how and infrastructure of [TorchRL](https://github.com/pytorch/rl), without reinventing the wheel_ + +### Why would I BenchMARL 🤔? + +Why would you BenchMARL, I see you ask. +Well, you can BenchMARL to compare different algorithms, environments, models, +to check how your new research compares to existing ones, or if you just want to approach +the domain and want to easily take a picture of the landscape. + +### Table of contents - [BenchMARL](#benchmarl) * [How to use](#how-to-use) @@ -160,7 +178,7 @@ benchmark.run_sequential() ## Concept The goal of BenchMARL is to bring different MARL environments and algorithms -under the same interfaces to enable fair and reproducible comaprison and benchmarking. +under the same interfaces to enable fair and reproducible comparison and benchmarking. BenchMARL is a full-pipline unified training library with the goal of enabling users to run any comparison they want across our algorithms and tasks in just one line of code. To achieve this, BenchMARL interconnects components from [TorchRL](https://github.com/pytorch/rl), @@ -209,10 +227,10 @@ They differ based on many aspects, here is a table with the current environments | Environment | Tasks | Cooperation | Global state | Reward function | Action space | Vectorized | |--------------------------------------------------------------------|-------------------------------------|---------------------------|--------------|-------------------------------|-----------------------|:----------------:| -| [VMAS](https://github.com/proroklab/VectorizedMultiAgentSimulator) | [5](benchmarl/conf/task/vmas) | Cooperative + Competitive | No | Shared + Independent + Global | Continuous + Discrete | ✅ | -| [SMACv2](https://github.com/oxwhirl/smacv2) | [15](benchmarl/conf/task/smacv2) | Cooperative | Yes | Global | Discrete | ❌ | -| [MPE](https://github.com/openai/multiagent-particle-envs) | [8](benchmarl/conf/task/pettingzoo) | Cooperative + Competitive | Yes | Shared + Independent | Continuous + Discrete | ❌ | -| [SISL](https://github.com/sisl/MADRL) | [2](benchmarl/conf/task/pettingzoo) | Cooperative | No | Shared | Continuous | ❌ | +| [VMAS](https://github.com/proroklab/VectorizedMultiAgentSimulator) | [5](benchmarl/conf/task/vmas) | Cooperative + Competitive | No | Shared + Independent + Global | Continuous + Discrete | Yes | +| [SMACv2](https://github.com/oxwhirl/smacv2) | [15](benchmarl/conf/task/smacv2) | Cooperative | Yes | Global | Discrete | No | +| [MPE](https://github.com/openai/multiagent-particle-envs) | [8](benchmarl/conf/task/pettingzoo) | Cooperative + Competitive | Yes | Shared + Independent | Continuous + Discrete | No | +| [SISL](https://github.com/sisl/MADRL) | [2](benchmarl/conf/task/pettingzoo) | Cooperative | No | Shared | Continuous | No | > [!NOTE] > BenchMARL uses the [TorchRL MARL API](https://github.com/pytorch/rl/issues/1463) for grouping agents. @@ -221,20 +239,20 @@ They differ based on many aspects, here is a table with the current environments > a custom algorithm](examples/extending/algorithm/custom_algorithm.py) for more info. **Models**. Models are neural networks used to process data. They can be used as actors (policies) or, -when possible, as critics. We provide a set of base models (layers) and a SequenceModel to concatenate -different. All the models can be used with or without parameter sharing within an +when requested, as critics. We provide a set of base models (layers) and a SequenceModel to concatenate +different layers. All the models can be used with or without parameter sharing within an agent group. Here is a table of the models implemented in BenchMARL | Name | Decentralized | Centralized with local inputs | Centralized with global input | |--------------------------------|:-------------:|:-----------------------------:|:-----------------------------:| -| [MLP](benchmarl/models/mlp.py) | ✅ | ✅ | ✅ | +| [MLP](benchmarl/models/mlp.py) | Yes | Yes | Yes | And the ones that are _work in progress_ | Name | Decentralized | Centralized with local inputs | Centralized with global input | |--------------------------------------------------------------|:-------------:|:-----------------------------:|:-----------------------------:| -| [GNN](https://github.com/facebookresearch/BenchMARL/pull/18) | ✅ | ✅ | ❌ | -| CNN | ✅ | ✅ | ✅ | +| [GNN](https://github.com/facebookresearch/BenchMARL/pull/18) | Yes | Yes | No | +| CNN | Yes | Yes | Yes | ## Premade scripts > [!WARNING] diff --git a/benchmarl/__init__.py b/benchmarl/__init__.py index 9cb5695f..f953c5ca 100644 --- a/benchmarl/__init__.py +++ b/benchmarl/__init__.py @@ -1,3 +1,9 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +# + import importlib _has_hydra = importlib.util.find_spec("hydra") is not None diff --git a/benchmarl/algorithms/__init__.py b/benchmarl/algorithms/__init__.py index f5fdfa06..b9e18647 100644 --- a/benchmarl/algorithms/__init__.py +++ b/benchmarl/algorithms/__init__.py @@ -1,3 +1,9 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +# + from .iddpg import Iddpg, IddpgConfig from .ippo import Ippo, IppoConfig from .iql import Iql, IqlConfig diff --git a/benchmarl/algorithms/common.py b/benchmarl/algorithms/common.py index e0d60c52..acf452be 100644 --- a/benchmarl/algorithms/common.py +++ b/benchmarl/algorithms/common.py @@ -1,3 +1,9 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +# + import pathlib from abc import ABC, abstractmethod from dataclasses import dataclass diff --git a/benchmarl/algorithms/iddpg.py b/benchmarl/algorithms/iddpg.py index 1ab3c0dd..5276e270 100644 --- a/benchmarl/algorithms/iddpg.py +++ b/benchmarl/algorithms/iddpg.py @@ -1,3 +1,9 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +# + from dataclasses import dataclass, MISSING from typing import Dict, Iterable, Tuple, Type diff --git a/benchmarl/algorithms/ippo.py b/benchmarl/algorithms/ippo.py index 1328cfc3..a11dddf8 100644 --- a/benchmarl/algorithms/ippo.py +++ b/benchmarl/algorithms/ippo.py @@ -1,3 +1,9 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +# + from dataclasses import dataclass, MISSING from typing import Dict, Iterable, Tuple, Type diff --git a/benchmarl/algorithms/iql.py b/benchmarl/algorithms/iql.py index a4d6b978..740dd779 100644 --- a/benchmarl/algorithms/iql.py +++ b/benchmarl/algorithms/iql.py @@ -1,3 +1,9 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +# + from dataclasses import dataclass, MISSING from typing import Dict, Iterable, Tuple, Type diff --git a/benchmarl/algorithms/isac.py b/benchmarl/algorithms/isac.py index a22b44d0..610b8522 100644 --- a/benchmarl/algorithms/isac.py +++ b/benchmarl/algorithms/isac.py @@ -1,3 +1,9 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +# + from dataclasses import dataclass, MISSING from typing import Dict, Iterable, Optional, Tuple, Type, Union diff --git a/benchmarl/algorithms/maddpg.py b/benchmarl/algorithms/maddpg.py index ee66a6a7..80f14acf 100644 --- a/benchmarl/algorithms/maddpg.py +++ b/benchmarl/algorithms/maddpg.py @@ -1,3 +1,9 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +# + from dataclasses import dataclass, MISSING from typing import Dict, Iterable, Tuple, Type diff --git a/benchmarl/algorithms/mappo.py b/benchmarl/algorithms/mappo.py index c53ea85a..c02686f1 100644 --- a/benchmarl/algorithms/mappo.py +++ b/benchmarl/algorithms/mappo.py @@ -1,3 +1,9 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +# + from dataclasses import dataclass, MISSING from typing import Dict, Iterable, Tuple, Type diff --git a/benchmarl/algorithms/masac.py b/benchmarl/algorithms/masac.py index fdb7545d..92671494 100644 --- a/benchmarl/algorithms/masac.py +++ b/benchmarl/algorithms/masac.py @@ -1,3 +1,9 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +# + from dataclasses import dataclass, MISSING from typing import Dict, Iterable, Optional, Tuple, Type, Union diff --git a/benchmarl/algorithms/qmix.py b/benchmarl/algorithms/qmix.py index f3bdf380..2dec0c47 100644 --- a/benchmarl/algorithms/qmix.py +++ b/benchmarl/algorithms/qmix.py @@ -1,3 +1,9 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +# + from dataclasses import dataclass, MISSING from typing import Dict, Iterable, Tuple, Type diff --git a/benchmarl/algorithms/vdn.py b/benchmarl/algorithms/vdn.py index 61639020..0b4e9a78 100644 --- a/benchmarl/algorithms/vdn.py +++ b/benchmarl/algorithms/vdn.py @@ -1,3 +1,9 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +# + from dataclasses import dataclass, MISSING from typing import Dict, Iterable, Tuple, Type diff --git a/benchmarl/benchmark.py b/benchmarl/benchmark.py index f2e432ea..a2a296a0 100644 --- a/benchmarl/benchmark.py +++ b/benchmarl/benchmark.py @@ -1,3 +1,9 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +# + from typing import Iterator, Optional, Sequence, Set from benchmarl.algorithms.common import AlgorithmConfig diff --git a/benchmarl/conf/__init__.py b/benchmarl/conf/__init__.py index e69de29b..b778bc2e 100644 --- a/benchmarl/conf/__init__.py +++ b/benchmarl/conf/__init__.py @@ -0,0 +1,5 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +# diff --git a/benchmarl/environments/__init__.py b/benchmarl/environments/__init__.py index cf572ca2..2024889b 100644 --- a/benchmarl/environments/__init__.py +++ b/benchmarl/environments/__init__.py @@ -1,3 +1,9 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +# + from .common import Task from .pettingzoo.common import PettingZooTask from .smacv2.common import Smacv2Task diff --git a/benchmarl/environments/common.py b/benchmarl/environments/common.py index 9f8d2643..5992182f 100644 --- a/benchmarl/environments/common.py +++ b/benchmarl/environments/common.py @@ -1,3 +1,9 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +# + from __future__ import annotations import importlib diff --git a/benchmarl/environments/pettingzoo/__init__.py b/benchmarl/environments/pettingzoo/__init__.py index e69de29b..b778bc2e 100644 --- a/benchmarl/environments/pettingzoo/__init__.py +++ b/benchmarl/environments/pettingzoo/__init__.py @@ -0,0 +1,5 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +# diff --git a/benchmarl/environments/pettingzoo/common.py b/benchmarl/environments/pettingzoo/common.py index f914f41a..10bb4bf2 100644 --- a/benchmarl/environments/pettingzoo/common.py +++ b/benchmarl/environments/pettingzoo/common.py @@ -1,3 +1,9 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +# + from typing import Callable, Dict, List, Optional from torchrl.data import CompositeSpec diff --git a/benchmarl/environments/pettingzoo/multiwalker.py b/benchmarl/environments/pettingzoo/multiwalker.py index ef6290bc..9ed0f7a7 100644 --- a/benchmarl/environments/pettingzoo/multiwalker.py +++ b/benchmarl/environments/pettingzoo/multiwalker.py @@ -1,3 +1,9 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +# + from dataclasses import dataclass, MISSING diff --git a/benchmarl/environments/pettingzoo/simple_adverasary.py b/benchmarl/environments/pettingzoo/simple_adverasary.py index 2935ebde..2769386d 100644 --- a/benchmarl/environments/pettingzoo/simple_adverasary.py +++ b/benchmarl/environments/pettingzoo/simple_adverasary.py @@ -1,3 +1,9 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +# + from dataclasses import dataclass, MISSING diff --git a/benchmarl/environments/pettingzoo/simple_crypto.py b/benchmarl/environments/pettingzoo/simple_crypto.py index 54e732cc..d2c37d56 100644 --- a/benchmarl/environments/pettingzoo/simple_crypto.py +++ b/benchmarl/environments/pettingzoo/simple_crypto.py @@ -1,3 +1,9 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +# + from dataclasses import dataclass, MISSING diff --git a/benchmarl/environments/pettingzoo/simple_push.py b/benchmarl/environments/pettingzoo/simple_push.py index a4c9cc46..bdee5e15 100644 --- a/benchmarl/environments/pettingzoo/simple_push.py +++ b/benchmarl/environments/pettingzoo/simple_push.py @@ -1,3 +1,9 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +# + from dataclasses import dataclass, MISSING diff --git a/benchmarl/environments/pettingzoo/simple_reference.py b/benchmarl/environments/pettingzoo/simple_reference.py index 54e732cc..d2c37d56 100644 --- a/benchmarl/environments/pettingzoo/simple_reference.py +++ b/benchmarl/environments/pettingzoo/simple_reference.py @@ -1,3 +1,9 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +# + from dataclasses import dataclass, MISSING diff --git a/benchmarl/environments/pettingzoo/simple_speaker_listener.py b/benchmarl/environments/pettingzoo/simple_speaker_listener.py index 54e732cc..d2c37d56 100644 --- a/benchmarl/environments/pettingzoo/simple_speaker_listener.py +++ b/benchmarl/environments/pettingzoo/simple_speaker_listener.py @@ -1,3 +1,9 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +# + from dataclasses import dataclass, MISSING diff --git a/benchmarl/environments/pettingzoo/simple_spread.py b/benchmarl/environments/pettingzoo/simple_spread.py index 0dc6bc88..768b6ea6 100644 --- a/benchmarl/environments/pettingzoo/simple_spread.py +++ b/benchmarl/environments/pettingzoo/simple_spread.py @@ -1,3 +1,9 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +# + from dataclasses import dataclass, MISSING diff --git a/benchmarl/environments/pettingzoo/simple_tag.py b/benchmarl/environments/pettingzoo/simple_tag.py index 9c6b3800..3609806a 100644 --- a/benchmarl/environments/pettingzoo/simple_tag.py +++ b/benchmarl/environments/pettingzoo/simple_tag.py @@ -1,3 +1,9 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +# + from dataclasses import dataclass, MISSING diff --git a/benchmarl/environments/pettingzoo/simple_world_comm.py b/benchmarl/environments/pettingzoo/simple_world_comm.py index b590cc5a..8d063529 100644 --- a/benchmarl/environments/pettingzoo/simple_world_comm.py +++ b/benchmarl/environments/pettingzoo/simple_world_comm.py @@ -1,3 +1,9 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +# + from dataclasses import dataclass, MISSING diff --git a/benchmarl/environments/pettingzoo/waterworld.py b/benchmarl/environments/pettingzoo/waterworld.py index 2cdcf9b7..ab81067c 100644 --- a/benchmarl/environments/pettingzoo/waterworld.py +++ b/benchmarl/environments/pettingzoo/waterworld.py @@ -1,3 +1,9 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +# + from dataclasses import dataclass, MISSING diff --git a/benchmarl/environments/smacv2/__init__.py b/benchmarl/environments/smacv2/__init__.py index e69de29b..b778bc2e 100644 --- a/benchmarl/environments/smacv2/__init__.py +++ b/benchmarl/environments/smacv2/__init__.py @@ -0,0 +1,5 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +# diff --git a/benchmarl/environments/smacv2/common.py b/benchmarl/environments/smacv2/common.py index d6ca00f2..f9dcc691 100644 --- a/benchmarl/environments/smacv2/common.py +++ b/benchmarl/environments/smacv2/common.py @@ -1,3 +1,9 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +# + from typing import Callable, Dict, List, Optional import torch diff --git a/benchmarl/environments/vmas/__init__.py b/benchmarl/environments/vmas/__init__.py index e69de29b..b778bc2e 100644 --- a/benchmarl/environments/vmas/__init__.py +++ b/benchmarl/environments/vmas/__init__.py @@ -0,0 +1,5 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +# diff --git a/benchmarl/environments/vmas/balance.py b/benchmarl/environments/vmas/balance.py index 12e13dc2..6d5c931b 100644 --- a/benchmarl/environments/vmas/balance.py +++ b/benchmarl/environments/vmas/balance.py @@ -1,3 +1,9 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +# + from dataclasses import dataclass, MISSING diff --git a/benchmarl/environments/vmas/common.py b/benchmarl/environments/vmas/common.py index f017c2a8..ba00c94d 100644 --- a/benchmarl/environments/vmas/common.py +++ b/benchmarl/environments/vmas/common.py @@ -1,3 +1,9 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +# + from typing import Callable, Dict, List, Optional from torchrl.data import CompositeSpec diff --git a/benchmarl/environments/vmas/navigation.py b/benchmarl/environments/vmas/navigation.py index a1b050d7..021e297a 100644 --- a/benchmarl/environments/vmas/navigation.py +++ b/benchmarl/environments/vmas/navigation.py @@ -1,3 +1,9 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +# + from dataclasses import dataclass, MISSING diff --git a/benchmarl/environments/vmas/sampling.py b/benchmarl/environments/vmas/sampling.py index b046a965..3ff63492 100644 --- a/benchmarl/environments/vmas/sampling.py +++ b/benchmarl/environments/vmas/sampling.py @@ -1,3 +1,9 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +# + from dataclasses import dataclass, MISSING diff --git a/benchmarl/environments/vmas/transport.py b/benchmarl/environments/vmas/transport.py index 1f153c5e..40683a36 100644 --- a/benchmarl/environments/vmas/transport.py +++ b/benchmarl/environments/vmas/transport.py @@ -1,3 +1,9 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +# + from dataclasses import dataclass, MISSING diff --git a/benchmarl/environments/vmas/wheel.py b/benchmarl/environments/vmas/wheel.py index 4bf1b384..2c4a9a01 100644 --- a/benchmarl/environments/vmas/wheel.py +++ b/benchmarl/environments/vmas/wheel.py @@ -1,3 +1,9 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +# + from dataclasses import dataclass, MISSING diff --git a/benchmarl/eval_results.py b/benchmarl/eval_results.py index 706a9a6c..83f7a572 100644 --- a/benchmarl/eval_results.py +++ b/benchmarl/eval_results.py @@ -1,3 +1,9 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +# + import collections import importlib import json diff --git a/benchmarl/experiment/__init__.py b/benchmarl/experiment/__init__.py index 08d74135..0e954fb2 100644 --- a/benchmarl/experiment/__init__.py +++ b/benchmarl/experiment/__init__.py @@ -1 +1,7 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +# + from .experiment import Experiment, ExperimentConfig diff --git a/benchmarl/experiment/callback.py b/benchmarl/experiment/callback.py index a2bdba1c..38e917ef 100644 --- a/benchmarl/experiment/callback.py +++ b/benchmarl/experiment/callback.py @@ -1,3 +1,9 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +# + from __future__ import annotations from typing import List diff --git a/benchmarl/experiment/experiment.py b/benchmarl/experiment/experiment.py index 723892f5..bb278067 100644 --- a/benchmarl/experiment/experiment.py +++ b/benchmarl/experiment/experiment.py @@ -1,3 +1,9 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +# + from __future__ import annotations import importlib diff --git a/benchmarl/experiment/logger.py b/benchmarl/experiment/logger.py index d32dd424..7ea169ee 100644 --- a/benchmarl/experiment/logger.py +++ b/benchmarl/experiment/logger.py @@ -1,3 +1,9 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +# + import json from pathlib import Path from typing import Any, Dict, List, Optional diff --git a/benchmarl/hydra_config.py b/benchmarl/hydra_config.py index 7dd65814..20f27737 100644 --- a/benchmarl/hydra_config.py +++ b/benchmarl/hydra_config.py @@ -1,3 +1,9 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +# + from omegaconf import DictConfig, OmegaConf from benchmarl.algorithms.common import AlgorithmConfig diff --git a/benchmarl/models/__init__.py b/benchmarl/models/__init__.py index 2fefe7ab..b437626a 100644 --- a/benchmarl/models/__init__.py +++ b/benchmarl/models/__init__.py @@ -1,3 +1,9 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +# + from .mlp import MlpConfig model_config_registry = {"mlp": MlpConfig} diff --git a/benchmarl/models/common.py b/benchmarl/models/common.py index 717a44c7..78b76beb 100644 --- a/benchmarl/models/common.py +++ b/benchmarl/models/common.py @@ -1,3 +1,9 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +# + import pathlib from abc import ABC, abstractmethod diff --git a/benchmarl/models/mlp.py b/benchmarl/models/mlp.py index 064da98b..bd5d58f9 100644 --- a/benchmarl/models/mlp.py +++ b/benchmarl/models/mlp.py @@ -1,3 +1,9 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +# + from __future__ import annotations from dataclasses import dataclass, MISSING diff --git a/benchmarl/run.py b/benchmarl/run.py index 8ec2addf..a2cfb299 100644 --- a/benchmarl/run.py +++ b/benchmarl/run.py @@ -1,3 +1,9 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +# + import hydra from hydra.core.hydra_config import HydraConfig from omegaconf import DictConfig, OmegaConf diff --git a/benchmarl/utils.py b/benchmarl/utils.py index a5444d49..3e3fcacc 100644 --- a/benchmarl/utils.py +++ b/benchmarl/utils.py @@ -1,3 +1,9 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +# + import importlib from typing import Any, Dict, Union