diff --git a/docs/misc/changelog.rst b/docs/misc/changelog.rst index d5968f92e..6baacb79f 100644 --- a/docs/misc/changelog.rst +++ b/docs/misc/changelog.rst @@ -4,7 +4,7 @@ Changelog ========== -Release 1.7.0a3 (WIP) +Release 1.7.0a4 (WIP) -------------------------- Breaking Changes: @@ -17,6 +17,7 @@ Breaking Changes: New Features: ^^^^^^^^^^^^^ - Introduced mypy type checking +- Added ``with_bias`` argument to ``create_mlp`` SB3-Contrib ^^^^^^^^^^^ diff --git a/stable_baselines3/common/torch_layers.py b/stable_baselines3/common/torch_layers.py index f87337c62..2ce0cc101 100644 --- a/stable_baselines3/common/torch_layers.py +++ b/stable_baselines3/common/torch_layers.py @@ -99,6 +99,7 @@ def create_mlp( net_arch: List[int], activation_fn: Type[nn.Module] = nn.ReLU, squash_output: bool = False, + with_bias: bool = True, ) -> List[nn.Module]: """ Create a multi layer perceptron (MLP), which is @@ -113,21 +114,22 @@ def create_mlp( to use after each layer. :param squash_output: Whether to squash the output using a Tanh activation function + :param with_bias: If set to False, the layers will not learn an additive bias :return: """ if len(net_arch) > 0: - modules = [nn.Linear(input_dim, net_arch[0]), activation_fn()] + modules = [nn.Linear(input_dim, net_arch[0], bias=with_bias), activation_fn()] else: modules = [] for idx in range(len(net_arch) - 1): - modules.append(nn.Linear(net_arch[idx], net_arch[idx + 1])) + modules.append(nn.Linear(net_arch[idx], net_arch[idx + 1], bias=with_bias)) modules.append(activation_fn()) if output_dim > 0: last_layer_dim = net_arch[-1] if len(net_arch) > 0 else input_dim - modules.append(nn.Linear(last_layer_dim, output_dim)) + modules.append(nn.Linear(last_layer_dim, output_dim, bias=with_bias)) if squash_output: modules.append(nn.Tanh()) return modules diff --git a/stable_baselines3/version.txt b/stable_baselines3/version.txt index 08b6b37ca..0952a4bef 100644 --- a/stable_baselines3/version.txt +++ b/stable_baselines3/version.txt @@ -1 +1 @@ -1.7.0a3 +1.7.0a4