diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 881fedb4d..8be6efe33 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -22,14 +22,14 @@ repos: - id: detect-private-key - repo: https://github.com/asottile/pyupgrade - rev: v3.4.0 + rev: v3.8.0 hooks: - id: pyupgrade args: [--py38-plus] name: Upgrade code - repo: https://github.com/PyCQA/docformatter - rev: v1.7.1 + rev: v1.7.3 hooks: - id: docformatter args: [--in-place, --wrap-summaries=115, --wrap-descriptions=120] @@ -56,7 +56,7 @@ repos: name: Format code - repo: https://github.com/asottile/yesqa - rev: v1.4.0 + rev: v1.5.0 hooks: - id: yesqa additional_dependencies: @@ -64,8 +64,8 @@ repos: - flake8-bandit - pep8-naming - - repo: https://github.com/charliermarsh/ruff-pre-commit - rev: v0.0.272 + - repo: https://github.com/astral-sh/ruff-pre-commit + rev: v0.0.276 hooks: - id: ruff args: ["--fix"] diff --git a/setup.py b/setup.py index 5ba698962..7e88ff306 100755 --- a/setup.py +++ b/setup.py @@ -102,13 +102,12 @@ def _load_readme_description(path_dir: str, homepage: str, ver: str) -> str: skip_begin = r"" skip_end = r"" # todo: wrap content as commented description - text = re.sub(rf"{skip_begin}.+?{skip_end}", "", text, flags=re.IGNORECASE + re.DOTALL) + return re.sub(rf"{skip_begin}.+?{skip_end}", "", text, flags=re.IGNORECASE + re.DOTALL) # # https://github.com/Borda/pytorch-lightning/releases/download/1.1.0a6/codecov_badge.png # github_release_url = os.path.join(homepage, "releases", "download", ver) # # download badge and replace url with local file # text = _parse_for_badge(text, github_release_url) - return text def _prepare_extras(): diff --git a/src/pl_bolts/losses/self_supervised_learning.py b/src/pl_bolts/losses/self_supervised_learning.py index ddf3d41ec..04571121f 100644 --- a/src/pl_bolts/losses/self_supervised_learning.py +++ b/src/pl_bolts/losses/self_supervised_learning.py @@ -83,8 +83,7 @@ def forward(self, z): if not torch.isnan(loss): losses.append(loss) - loss = torch.stack(losses).sum() - return loss + return torch.stack(losses).sum() @under_review() @@ -255,8 +254,7 @@ def feat_size_w_mask(self, w, feature_map): for i in range(w): for j in range(w): masks_r5[i, j, 0, i, j] = 1 - masks_r5 = masks_r5.reshape(-1, 1, w, w) - return masks_r5 + return masks_r5.reshape(-1, 1, w, w) def _sample_src_ftr(self, r_cnv, masks): # get feature dimensions diff --git a/src/pl_bolts/models/autoencoders/components.py b/src/pl_bolts/models/autoencoders/components.py index 4868bb5b0..b5c013d15 100644 --- a/src/pl_bolts/models/autoencoders/components.py +++ b/src/pl_bolts/models/autoencoders/components.py @@ -74,9 +74,7 @@ def forward(self, x): identity = self.downsample(x) out += identity - out = self.relu(out) - - return out + return self.relu(out) @under_review() @@ -117,8 +115,7 @@ def forward(self, x): identity = self.downsample(x) out += identity - out = self.relu(out) - return out + return self.relu(out) @under_review() @@ -150,9 +147,7 @@ def forward(self, x): identity = self.upsample(x) out += identity - out = self.relu(out) - - return out + return self.relu(out) @under_review() @@ -192,8 +187,7 @@ def forward(self, x): identity = self.upsample(x) out += identity - out = self.relu(out) - return out + return self.relu(out) @under_review() @@ -252,8 +246,7 @@ def forward(self, x): x = self.layer4(x) x = self.avgpool(x) - x = torch.flatten(x, 1) - return x + return torch.flatten(x, 1) @under_review() @@ -325,8 +318,7 @@ def forward(self, x): x = self.layer4(x) x = self.upscale(x) - x = self.conv1(x) - return x + return self.conv1(x) @under_review() diff --git a/src/pl_bolts/models/detection/yolo/utils.py b/src/pl_bolts/models/detection/yolo/utils.py index 2febe1620..0aab13d94 100644 --- a/src/pl_bolts/models/detection/yolo/utils.py +++ b/src/pl_bolts/models/detection/yolo/utils.py @@ -148,8 +148,7 @@ def box_size_ratio(wh1: Tensor, wh2: Tensor) -> Tensor: """ wh_ratio = wh1[:, None, :] / wh2[None, :, :] # [M, N, 2] wh_ratio = torch.max(wh_ratio, 1.0 / wh_ratio) - wh_ratio = wh_ratio.max(2).values # [M, N] - return wh_ratio + return wh_ratio.max(2).values # [M, N] @torch.jit.script diff --git a/src/pl_bolts/models/detection/yolo/yolo_module.py b/src/pl_bolts/models/detection/yolo/yolo_module.py index eb7328085..342f9f5ca 100644 --- a/src/pl_bolts/models/detection/yolo/yolo_module.py +++ b/src/pl_bolts/models/detection/yolo/yolo_module.py @@ -314,8 +314,7 @@ class labels. """ images, _ = batch detections = self(images) - detections = self.process_detections(detections) - return detections + return self.process_detections(detections) def infer(self, image: Tensor) -> PRED: """Feeds an image to the network and returns the detected bounding boxes, confidence scores, and class diff --git a/src/pl_bolts/models/gans/basic/components.py b/src/pl_bolts/models/gans/basic/components.py index 136a0b547..0ac9fe3aa 100644 --- a/src/pl_bolts/models/gans/basic/components.py +++ b/src/pl_bolts/models/gans/basic/components.py @@ -20,8 +20,7 @@ def forward(self, z): z = F.leaky_relu(self.fc2(z), 0.2) z = F.leaky_relu(self.fc3(z), 0.2) img = torch.tanh(self.fc4(z)) - img = img.view(img.size(0), *self.img_shape) - return img + return img.view(img.size(0), *self.img_shape) class Discriminator(nn.Module): diff --git a/src/pl_bolts/models/gans/srgan/components.py b/src/pl_bolts/models/gans/srgan/components.py index 433737125..99ad9d2e6 100644 --- a/src/pl_bolts/models/gans/srgan/components.py +++ b/src/pl_bolts/models/gans/srgan/components.py @@ -77,8 +77,7 @@ def forward(self, x: torch.Tensor) -> torch.Tensor: x_res = self.input_block(x) x = x_res + self.res_blocks(x_res) x = self.ps_blocks(x) - x = self.output_block(x) - return x + return self.output_block(x) @under_review() @@ -131,8 +130,7 @@ def _make_conv_block( def forward(self, x: torch.Tensor) -> torch.Tensor: x = self.conv_blocks(x) - x = self.mlp(x) - return x + return self.mlp(x) @under_review() diff --git a/src/pl_bolts/models/mnist_module.py b/src/pl_bolts/models/mnist_module.py index f322f6df8..502617740 100644 --- a/src/pl_bolts/models/mnist_module.py +++ b/src/pl_bolts/models/mnist_module.py @@ -39,8 +39,7 @@ def __init__(self, hidden_dim: int = 128, learning_rate: float = 1e-3, **kwargs: def forward(self, x: Tensor) -> Tensor: out = x.view(x.size(0), -1) out = torch.relu(self.l1(out)) - out = torch.relu(self.l2(out)) - return out + return torch.relu(self.l2(out)) def shared_step(self, batch: Any, batch_idx: int, step: str) -> Tensor: x, y = batch diff --git a/src/pl_bolts/models/rl/advantage_actor_critic_model.py b/src/pl_bolts/models/rl/advantage_actor_critic_model.py index 6e3d157df..43418378b 100644 --- a/src/pl_bolts/models/rl/advantage_actor_critic_model.py +++ b/src/pl_bolts/models/rl/advantage_actor_critic_model.py @@ -179,9 +179,7 @@ def compute_returns( returns.append(g) # reverse list and stop the gradients - returns = torch.tensor(returns[::-1]) - - return returns + return torch.tensor(returns[::-1]) def loss( self, diff --git a/src/pl_bolts/models/rl/vanilla_policy_gradient_model.py b/src/pl_bolts/models/rl/vanilla_policy_gradient_model.py index 344ebddd1..de463d351 100644 --- a/src/pl_bolts/models/rl/vanilla_policy_gradient_model.py +++ b/src/pl_bolts/models/rl/vanilla_policy_gradient_model.py @@ -172,9 +172,7 @@ def compute_returns(self, rewards): returns.insert(0, reward) returns = torch.tensor(returns) - returns = (returns - returns.mean()) / (returns.std() + self.eps) - - return returns + return (returns - returns.mean()) / (returns.std() + self.eps) def loss(self, states, actions, scaled_rewards) -> Tensor: """Calculates the loss for VPG. diff --git a/src/pl_bolts/models/self_supervised/cpc/networks.py b/src/pl_bolts/models/self_supervised/cpc/networks.py index 7acdb7906..dd67d8a4c 100644 --- a/src/pl_bolts/models/self_supervised/cpc/networks.py +++ b/src/pl_bolts/models/self_supervised/cpc/networks.py @@ -114,8 +114,7 @@ def _make_layer(self, sample_batch, block, planes, blocks, stride=1, dilate=Fals def flatten(self, x): x = x.view(self.batch_size, -1) - x = F.avg_pool1d(x.unsqueeze(1), 4).squeeze(1) - return x + return F.avg_pool1d(x.unsqueeze(1), 4).squeeze(1) def forward(self, x): x = self.conv1(x) @@ -126,9 +125,7 @@ def forward(self, x): x = self.layer1(x) x = self.layer2(x) x = self.layer3(x) - x = self.layer4(x) - - return x + return self.layer4(x) @under_review() @@ -202,9 +199,7 @@ def forward(self, x): identity = self.downsample(x) out += identity - out = self.relu(out) - - return out + return self.relu(out) @under_review() diff --git a/src/pl_bolts/models/self_supervised/resnets.py b/src/pl_bolts/models/self_supervised/resnets.py index 04b90a150..60dcfc8f5 100644 --- a/src/pl_bolts/models/self_supervised/resnets.py +++ b/src/pl_bolts/models/self_supervised/resnets.py @@ -88,9 +88,7 @@ def forward(self, x): identity = self.downsample(x) out += identity - out = self.relu(out) - - return out + return self.relu(out) @under_review() @@ -133,9 +131,7 @@ def forward(self, x): identity = self.downsample(x) out += identity - out = self.relu(out) - - return out + return self.relu(out) @under_review() diff --git a/src/pl_bolts/models/self_supervised/simclr/simclr_module.py b/src/pl_bolts/models/self_supervised/simclr/simclr_module.py index b2f61efd0..d17ddf7a1 100644 --- a/src/pl_bolts/models/self_supervised/simclr/simclr_module.py +++ b/src/pl_bolts/models/self_supervised/simclr/simclr_module.py @@ -27,9 +27,7 @@ def forward(ctx, tensor): gathered_tensor = [torch.zeros_like(tensor) for _ in range(torch.distributed.get_world_size())] torch.distributed.all_gather(gathered_tensor, tensor) - gathered_tensor = torch.cat(gathered_tensor, 0) - - return gathered_tensor + return torch.cat(gathered_tensor, 0) @staticmethod def backward(ctx, grad_output): diff --git a/src/pl_bolts/models/self_supervised/swav/swav_resnet.py b/src/pl_bolts/models/self_supervised/swav/swav_resnet.py index 9c702756c..65b09dbe9 100644 --- a/src/pl_bolts/models/self_supervised/swav/swav_resnet.py +++ b/src/pl_bolts/models/self_supervised/swav/swav_resnet.py @@ -67,9 +67,7 @@ def forward(self, x): identity = self.downsample(x) out += identity - out = self.relu(out) - - return out + return self.relu(out) class Bottleneck(nn.Module): @@ -120,9 +118,7 @@ def forward(self, x): identity = self.downsample(x) out += identity - out = self.relu(out) - - return out + return self.relu(out) class ResNet(nn.Module): @@ -294,9 +290,7 @@ def forward_backbone(self, x): return x x = self.avgpool(x) - x = torch.flatten(x, 1) - - return x + return torch.flatten(x, 1) def forward_head(self, x): if self.projection_head is not None: diff --git a/src/pl_bolts/models/vision/image_gpt/gpt2.py b/src/pl_bolts/models/vision/image_gpt/gpt2.py index 08048f189..4d6b4ec2e 100644 --- a/src/pl_bolts/models/vision/image_gpt/gpt2.py +++ b/src/pl_bolts/models/vision/image_gpt/gpt2.py @@ -26,8 +26,7 @@ def forward(self, x): a, _ = self.attn(x, x, x, attn_mask=attn_mask, need_weights=False) x = x + a m = self.mlp(self.ln_2(x)) - x = x + m - return x + return x + m @under_review() diff --git a/src/pl_bolts/models/vision/image_gpt/igpt_module.py b/src/pl_bolts/models/vision/image_gpt/igpt_module.py index b491e0f20..89c48c536 100644 --- a/src/pl_bolts/models/vision/image_gpt/igpt_module.py +++ b/src/pl_bolts/models/vision/image_gpt/igpt_module.py @@ -13,8 +13,7 @@ def _shape_input(x): """Shape batch of images for input into GPT2 model.""" x = x.view(x.shape[0], -1) # flatten images into sequences - x = x.transpose(0, 1).contiguous() # to shape [seq len, batch] - return x + return x.transpose(0, 1).contiguous() # to shape [seq len, batch] @under_review() diff --git a/src/pl_bolts/models/vision/pixel_cnn.py b/src/pl_bolts/models/vision/pixel_cnn.py index ef66e3a24..89237195f 100644 --- a/src/pl_bolts/models/vision/pixel_cnn.py +++ b/src/pl_bolts/models/vision/pixel_cnn.py @@ -1,8 +1,7 @@ """PixelCNN. Implemented by: William Falcon Reference -: https: //arxiv.org/pdf/1905.09272.pdf (page 15 -Accessed: May 14, 2020. +: https: //arxiv.org/pdf/1905.09272.pdf (page 15 Accessed: May 14, 2020. """ from torch import nn from torch.nn import functional as F # noqa: N812 diff --git a/src/pl_bolts/transforms/self_supervised/moco_transforms.py b/src/pl_bolts/transforms/self_supervised/moco_transforms.py index ec68cf0c4..f6117c39d 100644 --- a/src/pl_bolts/transforms/self_supervised/moco_transforms.py +++ b/src/pl_bolts/transforms/self_supervised/moco_transforms.py @@ -255,5 +255,4 @@ def __init__(self, sigma: List[float] = [0.1, 2.0]) -> None: def __call__(self, x): sigma = random.uniform(self.sigma[0], self.sigma[1]) # noqa: S311 - x = x.filter(ImageFilter.GaussianBlur(radius=sigma)) - return x + return x.filter(ImageFilter.GaussianBlur(radius=sigma)) diff --git a/src/pl_bolts/transforms/self_supervised/ssl_transforms.py b/src/pl_bolts/transforms/self_supervised/ssl_transforms.py index 99fec9e1c..8db1069c3 100644 --- a/src/pl_bolts/transforms/self_supervised/ssl_transforms.py +++ b/src/pl_bolts/transforms/self_supervised/ssl_transforms.py @@ -49,10 +49,9 @@ def __call__(self, old_image): new_image.paste(flipped_both, (xpad - xsize + 1, ypad + ysize - 1)) new_image.paste(flipped_both, (xpad + xsize - 1, ypad + ysize - 1)) - new_image = new_image.crop( + return new_image.crop( (xpad - xtranslation, ypad - ytranslation, xpad + xsize - xtranslation, ypad + ysize - ytranslation) ) - return new_image @under_review() @@ -75,6 +74,4 @@ def __call__(self, x): # reshape to have (b x patches, c, h, w) x = x.view(-1, c, self.patch_size, self.patch_size) - x = x.squeeze(0) - - return x + return x.squeeze(0) diff --git a/tests/callbacks/test_data_monitor.py b/tests/callbacks/test_data_monitor.py index ce51bd7ce..3d3ddc0c4 100644 --- a/tests/callbacks/test_data_monitor.py +++ b/tests/callbacks/test_data_monitor.py @@ -131,8 +131,7 @@ def forward(self, x): self.layer2_input = x x = self.layer2(x) self.layer2_output = x - x = torch.relu(x - 2) - return x + return torch.relu(x - 2) @mock.patch("pl_bolts.callbacks.data_monitor.ModuleDataMonitor.log_histogram")