Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Hybrid ViT fails in the constructor for image size = 200 #15

Open
pgagarinov opened this issue Feb 12, 2021 · 0 comments
Open

Hybrid ViT fails in the constructor for image size = 200 #15

pgagarinov opened this issue Feb 12, 2021 · 0 comments

Comments

@pgagarinov
Copy link

vit = VisionTransformer(CONFIGS['R50-ViT-B_16'], zero_head=False, img_size=200)

leads to "float division by zero" exception:


ZeroDivisionError Traceback (most recent call last)
in
----> 1 vit = VisionTransformer(CONFIGS['R50-ViT-B_16'], zero_head=False, img_size=200)

ViT-pytorch/models/modeling.py in init(self, config, img_size, num_classes, zero_head, vis)
267 self.classifier = config.classifier
268
--> 269 self.transformer = Transformer(config, img_size, vis)
270 self.head = Linear(config.hidden_size, num_classes)
271

ViT-pytorch/models/modeling.py in init(self, config, img_size, vis)
251 def init(self, config, img_size, vis):
252 super(Transformer, self).init()
--> 253 self.embeddings = Embeddings(config, img_size=img_size)
254 self.encoder = Encoder(config, vis)
255

ViT-pytorch/models/modeling.py in init(self, config, img_size, in_channels)
144 width_factor=config.resnet.width_factor)
145 in_channels = self.hybrid_model.width * 16
--> 146 self.patch_embeddings = Conv2d(in_channels=in_channels,
147 out_channels=config.hidden_size,
148 kernel_size=patch_size,

~/.conda/envs/ml-devenv2/lib/python3.8/site-packages/torch/nn/modules/conv.py in init(self, in_channels, out_channels, kernel_size, stride, padding, dilation, groups, bias, padding_mode)
408 padding = _pair(padding)
409 dilation = _pair(dilation)
--> 410 super(Conv2d, self).init(
411 in_channels, out_channels, kernel_size, stride, padding, dilation,
412 False, _pair(0), groups, bias, padding_mode)

~/.conda/envs/ml-devenv2/lib/python3.8/site-packages/torch/nn/modules/conv.py in init(self, in_channels, out_channels, kernel_size, stride, padding, dilation, transposed, output_padding, groups, bias, padding_mode)
81 else:
82 self.register_parameter('bias', None)
---> 83 self.reset_parameters()
84
85 def reset_parameters(self) -> None:

~/.conda/envs/ml-devenv2/lib/python3.8/site-packages/torch/nn/modules/conv.py in reset_parameters(self)
84
85 def reset_parameters(self) -> None:
---> 86 init.kaiming_uniform_(self.weight, a=math.sqrt(5))
87 if self.bias is not None:
88 fan_in, _ = init._calculate_fan_in_and_fan_out(self.weight)

~/.conda/envs/ml-devenv2/lib/python3.8/site-packages/torch/nn/init.py in kaiming_uniform_(tensor, a, mode, nonlinearity)
379 fan = _calculate_correct_fan(tensor, mode)
380 gain = calculate_gain(nonlinearity, a)
--> 381 std = gain / math.sqrt(fan)
382 bound = math.sqrt(3.0) * std # Calculate uniform bounds from standard deviation
383 with torch.no_grad():

ZeroDivisionError: float division by zero

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant