PyTorch によるデータ拡張
Dataset にデータ拡張を組み込み、変換が期待どおりに適用されているかを画像で確認してみましょう。
まず、train_transforms に拡張用の変換を追加します。ここでは、ランダムな水平方向のフリップと、0〜45度の範囲でランダムに回転させます。続く Dataset と DataLoader の作成コードは、これまでとまったく同じです。最後に、画像をリシェイプして表示し、新しい拡張の効果が見えるか確認します。
必要なインポートはあらかじめ用意されています。
from torchvision.datasets import ImageFolder
from torch.utils.data import DataLoader
from torchvision import transforms
import matplotlib.pyplot as plt
さあ、雲の写真でデータ拡張を試してみましょう!
この演習はコースの一部です
PyTorchによる中級ディープラーニング
演習の手順
train_transformsに、ランダムな水平方向のフリップと、0〜45度の範囲でランダムに回転させる変換をこの順で追加します。- DataLoader から取り出した
imageテンソルを、表示に適した形にリシェイプします。 - 画像を表示します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
train_transforms = transforms.Compose([
# Add horizontal flip and rotation
____,
____,
transforms.ToTensor(),
transforms.Resize((128, 128)),
])
dataset_train = ImageFolder(
"clouds_train",
transform=train_transforms,
)
dataloader_train = DataLoader(
dataset_train, shuffle=True, batch_size=1
)
image, label = next(iter(dataloader_train))
# Reshape the image tensor
image = image.____.____(____, ____, ____)
# Display the image
____
plt.show()