#pytorch #average #dimensionality-reduction #pooling
Вопрос:
Есть ли в Pytorch какой-либо способ уменьшить размеры тензора в модели?
Комментарии:
1. пожалуйста, отметьте соответствующие ответы как правильные
Ответ №1:
Адаптивное среднее объединение или фактически любое типичное объединение в Pytorch не уменьшает размеры тензора. Вы можете найти все типы пулов, которые предлагает Pytorch, здесь: https://pytorch.org/docs/master/nn.html#pooling-layers
Я предлагаю использовать этот код шаблона, чтобы опробовать различные объединения и их влияние на размеры:
m = nn.AdaptiveAvgPool2d((5,7))
input = torch.randn(1, 64, 8, 9)
output = m(input)
print(output.size())
Чтобы уменьшить размерность в моделях Pytorch, вы можете указать блок, который сжимает() тензор или даже сглаживает тензор, например, с помощью example_tensor.view(-1, x, y).
Сартак Джайн
Ответ №2:
Этот код должен работать для сжатия (1,64,224,224) —> (1,64)
import torch
import torch.nn as nn
m = nn.AdaptiveAvgPool2d((1,1))
input = torch.randn(1, 64, 224, 224)
output = m(input).view(1,-1)
print(output.size()) #torch.Size([1, 64])