From d896b832a9dc60f512b037c0faaa494499349f1b Mon Sep 17 00:00:00 2001 From: Satya K Jandhyala Date: Mon, 27 Feb 2023 20:23:01 +0000 Subject: [PATCH 1/7] Temporarily fix https://github.com/microsoft/onnx-converters-private/issues/143 --- src/transformers/models/swinv2/modeling_swinv2.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/transformers/models/swinv2/modeling_swinv2.py b/src/transformers/models/swinv2/modeling_swinv2.py index 3104e5d2d20e..f1e7896371c8 100644 --- a/src/transformers/models/swinv2/modeling_swinv2.py +++ b/src/transformers/models/swinv2/modeling_swinv2.py @@ -352,7 +352,7 @@ def forward(self, pixel_values: Optional[torch.FloatTensor]) -> Tuple[torch.Tens pixel_values = self.maybe_pad(pixel_values, height, width) embeddings = self.projection(pixel_values) _, _, height, width = embeddings.shape - output_dimensions = (height, width) + output_dimensions = (height.item() if torch.is_tensor(height) else height, width.item() if torch.is_tensor(width) else width) embeddings = embeddings.flatten(2).transpose(1, 2) return embeddings, output_dimensions From 5eefd6f98acfa13443694495fa9079d405c6034a Mon Sep 17 00:00:00 2001 From: Satya K Jandhyala Date: Mon, 27 Feb 2023 21:28:49 +0000 Subject: [PATCH 2/7] Reduced column width --- src/transformers/models/swinv2/modeling_swinv2.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/transformers/models/swinv2/modeling_swinv2.py b/src/transformers/models/swinv2/modeling_swinv2.py index f1e7896371c8..33f01ed37f6a 100644 --- a/src/transformers/models/swinv2/modeling_swinv2.py +++ b/src/transformers/models/swinv2/modeling_swinv2.py @@ -352,7 +352,8 @@ def forward(self, pixel_values: Optional[torch.FloatTensor]) -> Tuple[torch.Tens pixel_values = self.maybe_pad(pixel_values, height, width) embeddings = self.projection(pixel_values) _, _, height, width = embeddings.shape - output_dimensions = (height.item() if torch.is_tensor(height) else height, width.item() if torch.is_tensor(width) else width) + output_dimensions = (height.item() if torch.is_tensor(height) else height, + width.item() if torch.is_tensor(width) else width) embeddings = embeddings.flatten(2).transpose(1, 2) return embeddings, output_dimensions From 649f4f9ca981d385cd48232eb63cf25b077ad870 Mon Sep 17 00:00:00 2001 From: Satya K Jandhyala Date: Mon, 27 Feb 2023 21:48:41 +0000 Subject: [PATCH 3/7] Fix formatting. --- src/transformers/models/swinv2/modeling_swinv2.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/transformers/models/swinv2/modeling_swinv2.py b/src/transformers/models/swinv2/modeling_swinv2.py index 33f01ed37f6a..28450d5757f5 100644 --- a/src/transformers/models/swinv2/modeling_swinv2.py +++ b/src/transformers/models/swinv2/modeling_swinv2.py @@ -352,8 +352,10 @@ def forward(self, pixel_values: Optional[torch.FloatTensor]) -> Tuple[torch.Tens pixel_values = self.maybe_pad(pixel_values, height, width) embeddings = self.projection(pixel_values) _, _, height, width = embeddings.shape - output_dimensions = (height.item() if torch.is_tensor(height) else height, - width.item() if torch.is_tensor(width) else width) + output_dimensions = ( + height.item() if torch.is_tensor(height) else height, + width.item() if torch.is_tensor(width) else width, + ) embeddings = embeddings.flatten(2).transpose(1, 2) return embeddings, output_dimensions @@ -1167,7 +1169,7 @@ def forward( >>> image_processor = AutoImageProcessor.from_pretrained("microsoft/swinv2-tiny-patch4-window8-256") >>> model = Swinv2ForMaskedImageModeling.from_pretrained("microsoft/swinv2-tiny-patch4-window8-256") - >>> num_patches = (model.config.image_size // model.config.patch_size) ** 2 + >>> num_patches = (model.config.image_size // model.config.patch_size)**2 >>> pixel_values = image_processor(images=image, return_tensors="pt").pixel_values >>> # create random boolean mask of shape (batch_size, num_patches) >>> bool_masked_pos = torch.randint(low=0, high=2, size=(1, num_patches)).bool() From 92decb97cb7282954b4c240b739a0a67f05ec695 Mon Sep 17 00:00:00 2001 From: Satya K Jandhyala Date: Tue, 14 Mar 2023 19:18:14 +0000 Subject: [PATCH 4/7] Revert "Temporarily fix https://github.com/microsoft/onnx-converters-private/issues/143" This reverts commit 6e95a108042118d204da447729f3834affa354fc. --- src/transformers/models/swinv2/modeling_swinv2.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/transformers/models/swinv2/modeling_swinv2.py b/src/transformers/models/swinv2/modeling_swinv2.py index 28450d5757f5..6c9b0369cc4a 100644 --- a/src/transformers/models/swinv2/modeling_swinv2.py +++ b/src/transformers/models/swinv2/modeling_swinv2.py @@ -352,10 +352,7 @@ def forward(self, pixel_values: Optional[torch.FloatTensor]) -> Tuple[torch.Tens pixel_values = self.maybe_pad(pixel_values, height, width) embeddings = self.projection(pixel_values) _, _, height, width = embeddings.shape - output_dimensions = ( - height.item() if torch.is_tensor(height) else height, - width.item() if torch.is_tensor(width) else width, - ) + output_dimensions = (height, width) embeddings = embeddings.flatten(2).transpose(1, 2) return embeddings, output_dimensions From 4d1a6321caf4970d3e8ae1b8644e9f2d5f8c62b1 Mon Sep 17 00:00:00 2001 From: Satya K Jandhyala Date: Tue, 14 Mar 2023 20:56:08 +0000 Subject: [PATCH 5/7] Fix export error. --- src/transformers/models/swinv2/modeling_swinv2.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/transformers/models/swinv2/modeling_swinv2.py b/src/transformers/models/swinv2/modeling_swinv2.py index 6c9b0369cc4a..0734cabc9279 100644 --- a/src/transformers/models/swinv2/modeling_swinv2.py +++ b/src/transformers/models/swinv2/modeling_swinv2.py @@ -662,8 +662,9 @@ def set_shift_and_window_size(self, input_resolution): if isinstance(self.shift_size, collections.abc.Iterable) else (self.shift_size, self.shift_size) ) + window_dim = input_resolution[0].item() if torch.is_tensor(input_resolution[0]) else input_resolution[0] self.window_size = ( - input_resolution[0] if input_resolution[0] <= target_window_size[0] else target_window_size[0] + window_dim if window_dim <= target_window_size[0] else target_window_size[0] ) self.shift_size = ( 0 From 0f2290a61c0d7fc64fab4ebd0953de5e96dd6116 Mon Sep 17 00:00:00 2001 From: Satya K Jandhyala Date: Wed, 15 Mar 2023 20:27:25 +0000 Subject: [PATCH 6/7] Revert "Fix formatting." This reverts commit 8310f60da10358edbdf77a2a2f3c83ee55066cb8. --- src/transformers/models/swinv2/modeling_swinv2.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/transformers/models/swinv2/modeling_swinv2.py b/src/transformers/models/swinv2/modeling_swinv2.py index 0734cabc9279..bb3e8a7d3fa3 100644 --- a/src/transformers/models/swinv2/modeling_swinv2.py +++ b/src/transformers/models/swinv2/modeling_swinv2.py @@ -1167,7 +1167,7 @@ def forward( >>> image_processor = AutoImageProcessor.from_pretrained("microsoft/swinv2-tiny-patch4-window8-256") >>> model = Swinv2ForMaskedImageModeling.from_pretrained("microsoft/swinv2-tiny-patch4-window8-256") - >>> num_patches = (model.config.image_size // model.config.patch_size)**2 + >>> num_patches = (model.config.image_size // model.config.patch_size) ** 2 >>> pixel_values = image_processor(images=image, return_tensors="pt").pixel_values >>> # create random boolean mask of shape (batch_size, num_patches) >>> bool_masked_pos = torch.randint(low=0, high=2, size=(1, num_patches)).bool() From d28aa7223b3376f2f06b1395ca5c635730bdc534 Mon Sep 17 00:00:00 2001 From: Satya K Jandhyala Date: Wed, 15 Mar 2023 20:58:02 +0000 Subject: [PATCH 7/7] Propagated changes made in SwinV2 to Swin2SR --- src/transformers/models/swin2sr/modeling_swin2sr.py | 5 ++--- src/transformers/models/swinv2/modeling_swinv2.py | 4 +--- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/src/transformers/models/swin2sr/modeling_swin2sr.py b/src/transformers/models/swin2sr/modeling_swin2sr.py index 256b8decda7e..cd58b7065058 100644 --- a/src/transformers/models/swin2sr/modeling_swin2sr.py +++ b/src/transformers/models/swin2sr/modeling_swin2sr.py @@ -520,9 +520,8 @@ def set_shift_and_window_size(self, input_resolution): if isinstance(self.shift_size, collections.abc.Iterable) else (self.shift_size, self.shift_size) ) - self.window_size = ( - input_resolution[0] if input_resolution[0] <= target_window_size[0] else target_window_size[0] - ) + window_dim = input_resolution[0].item() if torch.is_tensor(input_resolution[0]) else input_resolution[0] + self.window_size = window_dim if window_dim <= target_window_size[0] else target_window_size[0] self.shift_size = ( 0 if input_resolution diff --git a/src/transformers/models/swinv2/modeling_swinv2.py b/src/transformers/models/swinv2/modeling_swinv2.py index bb3e8a7d3fa3..21d61c4e5d65 100644 --- a/src/transformers/models/swinv2/modeling_swinv2.py +++ b/src/transformers/models/swinv2/modeling_swinv2.py @@ -663,9 +663,7 @@ def set_shift_and_window_size(self, input_resolution): else (self.shift_size, self.shift_size) ) window_dim = input_resolution[0].item() if torch.is_tensor(input_resolution[0]) else input_resolution[0] - self.window_size = ( - window_dim if window_dim <= target_window_size[0] else target_window_size[0] - ) + self.window_size = window_dim if window_dim <= target_window_size[0] else target_window_size[0] self.shift_size = ( 0 if input_resolution