برنامه نویسی

AvgPool2d() در PyTorch

برای من یک قهوه بخر☕

*یادداشت ها:

  • پست من Pooling Layer را توضیح می دهد.

  • پست من AvgPool1d() را توضیح می دهد.

  • پست من MaxPool1d() را توضیح می دهد.

  • پست من MaxPool2d() را توضیح می دهد.

  • پست من MaxPool3d() را توضیح می دهد.

  • پست من نیاز_grad را توضیح می دهد.

AvgPool2d() می تواند تانسور سه بعدی یا چهار بعدی یک یا چند مقدار محاسبه شده با ادغام میانگین دوبعدی از تانسور 3 بعدی یا 4 بعدی یک یا چند عنصر را به دست آورد که در زیر نشان داده شده است:

*یادداشت ها:

  • آرگومان اول برای مقداردهی اولیه است kernel_size(الزامی-نوع:int یا tuple یا list از int). *باید باشد 1 <= x.
  • آرگومان دوم برای مقداردهی اولیه است stride(اختیاری-پیش فرض:None-نوع:int یا tuple یا list از int): *یادداشت ها:
    • باید باشد 1 <= x.
    • اگر None، kernel_size تنظیم شده است.
  • آرگومان سوم برای مقداردهی اولیه است padding(اختیاری-پیش فرض:0-نوع:int یا tuple یا list از int). *باید باشد 0 <= x.
  • آرگومان چهارم برای مقداردهی اولیه است ceil_mode(اختیاری-پیش فرض:False-نوع:bool).
  • آرگومان پنجم برای مقداردهی اولیه است count_include_pad(اختیاری-پیش فرض:True-نوع:bool).
  • آرگومان ششم برای مقداردهی اولیه است divisor_override(اختیاری-پیش فرض:None-نوع:int).
  • استدلال اول این است input(الزامی-نوع:tensor از int یا float).
  • تانسور requires_grad که هست False به طور پیش فرض روی تنظیم نشده است True توسط AvgPool2d().
import torch
from torch import nn

tensor1 = torch.tensor([[[8., -3., 0., 1., 5., -2.]]])

tensor1.requires_grad
# False

avgpool2d = nn.AvgPool2d(kernel_size=1)
tensor2 = avgpool2d(input=tensor1)
tensor2
# tensor([[[8., -3., 0., 1., 5., -2.]]])

tensor2.requires_grad
# False

avgpool2d
# AvgPool2d(kernel_size=1, stride=1, padding=0)

avgpool2d.kernel_size
# 1

avgpool2d.stride
# 1

avgpool2d.padding
# 0

avgpool2d.ceil_mode
# False

avgpool2d.count_include_pad
# True

avgpool2d.divisor_override
# None

avgpool2d = nn.AvgPool2d(kernel_size=1, stride=None, padding=0, 
                         ceil_mode=False, count_include_pad=True, 
                         divisor_override=None)
avgpool2d(input=tensor1)
# tensor([[[8., -3., 0., 1., 5., -2.]]])

avgpool2d = nn.AvgPool2d(kernel_size=2, padding=1)
avgpool2d(input=tensor1)
# tensor([[[2.0000, -0.7500, 1.5000, -0.5000]]])

avgpool2d = nn.AvgPool2d(kernel_size=2, padding=1, divisor_override=2)
avgpool2d(input=tensor1)
# tensor([[[4.0000, -1.5000, 3.0000, -1.0000]]])

avgpool2d = nn.AvgPool2d(kernel_size=3, padding=1)
avgpool2d(input=tensor1)
# tensor([[[0.5556, 0.6667]]])

avgpool2d = nn.AvgPool2d(kernel_size=4, padding=2)
avgpool2d(input=tensor1)
# tensor([[[0.3125, 0.2500]]])

avgpool2d = nn.AvgPool2d(kernel_size=5, padding=2)
avgpool2d(input=tensor1)
# tensor([[[0.2000, 0.1600]]])

avgpool2d = nn.AvgPool2d(kernel_size=6, padding=3)
avgpool2d(input=tensor1)
# tensor([[[0.1389, 0.1111]]])

avgpool2d = nn.AvgPool2d(kernel_size=7, padding=3)
avgpool2d(input=tensor1)
# tensor([[[0.1224]]])
etc.

my_tensor = torch.tensor([[[8.], [-3.], [0.]],
                          [[1.], [5.], [-2.]]])
avgpool2d = nn.AvgPool2d(kernel_size=1)
avgpool2d(input=my_tensor)
# tensor([[[8.], [-3.], [0.]],
#         [[1.], [5.], [-2.]]])

avgpool2d = nn.AvgPool2d(kernel_size=2, padding=1)
avgpool2d(input=my_tensor)
# tensor([[[2.0000], [-0.7500]],
#         [[0.2500], [0.7500]]])

avgpool2d = nn.AvgPool2d(kernel_size=2, padding=1, divisor_override=2)
avgpool2d(input=my_tensor)
# tensor([[[4.0000], [-1.5000]],
#         [[0.5000], [1.5000]]])

avgpool2d = nn.AvgPool2d(kernel_size=3, padding=1)
avgpool2d(input=my_tensor)
# tensor([[[0.5556]], [[0.6667]]])

avgpool2d = nn.AvgPool2d(kernel_size=4, padding=2)
avgpool2d(input=my_tensor)
# tensor([[[0.3125]], [[0.3750]]])

avgpool2d = nn.AvgPool2d(kernel_size=5, padding=2)
avgpool2d(input=my_tensor)
# tensor([[[0.2000]], [[0.1600]]])

avgpool2d = nn.AvgPool2d(kernel_size=6, padding=3)
avgpool2d(input=my_tensor)
# tensor([[[0.1389]], [[0.1111]]])

avgpool2d = nn.AvgPool2d(kernel_size=7, padding=3)
avgpool2d(input=my_tensor)
# tensor([[[0.1020]], [[0.0816]]])
etc.

my_tensor = torch.tensor([[[[8.], [-3.], [0.]],
                           [[1.], [5.], [-2.]]]])
avgpool2d = nn.AvgPool2d(kernel_size=1)
avgpool2d(input=my_tensor)
# tensor([[[[8.], [-3.], [0.]],
#          [[1.], [5.], [-2.]]]])

my_tensor = torch.tensor([[[[8], [-3], [0]],
                           [[1], [5], [-2]]]])
avgpool2d = nn.AvgPool2d(kernel_size=1)
avgpool2d(input=my_tensor)
# tensor([[[[8], [-3], [0]],
#          [[1], [5], [-2]]]])

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا