AI
2024/06/11
古川 直輝

画像分類における出力ピクセル数の求め方

今回は、画像分類の際にピクセル数がどのように変化していくのかを記述していきます。

はじめに

今回は、画像分類の際にピクセル数がどのように変化していくのかを記述していきます。


実際にAIモデルを構築して、画像分類をしてもピクセル数がどのように変化しているのかが分かりにくいと思います。しかしこのブログによって、層ごとに出力ピクセル数がどのように変化しているかが分かると思います。

ピクセル数の計算方法

出力ピクセル数 = (入力ピクセル数 + 2 × padding – kernel_size)/ stride + 1


この式でピクセル数を求めることができます。


出力ピクセル数が少数になってしまったら、特別な場合以外は整数に切り捨てましょう。

実践

まず必要なライブラリーをインポートします。



import torch
from torch import nn
import torch.functional as F


次にモデルを構築していきます。


今回は32ピクセル × 32ピクセルのRGBの画像を入力画像とします。



class Net(nn.Module):
def __init__(self):
super(Net,self).__init__()
self.conv1 = nn.Conv2d(3,32,padding = 1,kernel_size = 5,stride = 1)
self.conv2 = nn.Conv2d(32,64,padding = 1,kernel_size = 5,stride = 1)
self.pool = nn.MaxPool2d(2,2)
self.relu = nn.ReLU()

def forward(self,x):
x = self.pool(self.relu(self.conv1(x)))
x = self.pool(self.relu(self.conv2(x)))
return x


上記のモデルの出力サイズを計算していきましょう。



def output_size(input_size,padding,kernel_size,stride):
return (input_size + 2 * padding - kernel_size) / stride + 1


実行結果より、最終的なピクセル数は6になりました。

まとめ

今回はピクセル数がどのように変化するかをまとめました。


画像分類をする際に出力ピクセル数を求める必要があるので、その際にこの記事を思い出してもらえれば役に立つと思います。

New call-to-action