前提・実現したいこと
数日前からpytorchを始めました初心者です。自作データセットを作っています。
transforms.Normalizeによって正規化する際によく、mean = [0.485, 0.456, 0.406],std=[0.229, 0.224, 0.225]
という値を見かけるのですがこの平均と標準偏差は基本的にこれを使った方がいいよという値なのでしょうか?
自作でデータセットを作る際に、画像一枚一枚に対して平均、偏差を求めて正規化をしたほうがいいと思ったのですがこれは間違った考え方でしょうか?
該当のソースコード
trans = transforms.Compose( [transforms.ToTensor(), transforms.Normalize(mean = [0.485, 0.456, 0.406],std=[0.229, 0.224, 0.225]) ])
試したこと
def __getitem__(self, i): #--- 省略 --- image = Image.open(path) tf = transforms.ToTensor() mean = [float(torch.mean(tf(image)[0])), float(torch.mean(tf(image)[1])), float(torch.mean(tf(image)[2]))] std = [float(torch.std(tf(image)[0])), float(torch.std(tf(image)[1])), float(torch.std(tf(image)[2]))] transform = transforms.Compose( [transforms.ToTensor(), transforms.Normalize(mean = mean, std = std)] ) img = transform(image) return img
などとして無理やりRGBの平均と標準偏差をを求めて使う。
補足情報(FW/ツールのバージョンなど)
SIGNATEの練習問題を解いてみようと思い始めました。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/10/04 09:08 編集
2020/10/04 09:50 編集