** Ich möchte das Bild nach der Datenerweiterung anzeigen! ** **.
Ich habe es gedacht und umgesetzt.
Die Datenerweiterung ist eine Technologie zum Auffüllen eines einzelnen Bildes. Die folgenden Vorgänge werden hinzugefügt.
Es gibt viele andere Dinge.
Dieses Mal habe ich den Trainingsbilddatensatz von CIFAR-10 geladen und versucht, Random Horizontal Flip und Random Erasing in Transformationen zu integrieren.
test.py
import torch
import numpy as np
import torchvision
import torchvision.transforms as transforms
from torch.utils.data import Dataset,DataLoader
import torchvision.datasets as dsets
import matplotlib.pyplot as plt
#Bilder laden
batch_size = 100
train_data = dsets.CIFAR10(root='./tmp/cifar-10', train=True, download=False, transform=transforms.Compose([transforms.RandomHorizontalFlip(p=0.5), transforms.ToTensor(), transforms.RandomErasing(p=0.5, scale=(0.02, 0.4), ratio=(0.33, 3.0))]))
train_loader = DataLoader(train_data,batch_size=batch_size,shuffle=True)
test_data = dsets.CIFAR10(root='./tmp/cifar-10', train=False, download=False, transform=transforms.Compose([transforms.ToTensor(),]))
test_loader = DataLoader(test_data,batch_size=batch_size,shuffle=False)
def image_show(data_loader,n):
#Erweiterte Bilddaten lesen
tmp = iter(data_loader)
images,labels = tmp.next()
#Bild vom Tensor in Numpy konvertieren
images = images.numpy()
#Nehmen Sie n Bilder einzeln heraus und zeigen Sie sie an
for i in range(n):
image = np.transpose(images[i],[1,2,0])
plt.imshow(image)
plt.show()
image_show(train_loader,10)
Die Funktion image_show ist eine Funktion, die das Bild nach der Augmentation anzeigt.
Holen Sie sich mit iter () einen Mini-Batch von DataLoader.
Verwenden Sie dann .next (), um die Bilddaten in Bildern und die Beschriftungen in Beschriftungen zu speichern.
images = images.numpy () konvertiert Bilddaten vom Tensor in numpy.
Zu diesem Zeitpunkt haben Bilder eine Struktur von ** [Stapelgröße, Anzahl der Kanäle, Breite, Höhe] **, aber um Bilder mit einem Pyplot von Matplotlib anzuzeigen ** [Breite, Höhe, Anzahl der Kanäle] Muss sein **.
Daher wird es mit np.transpose transformiert.
Es wurde bestätigt, dass es horizontal gespiegelt wurde und dass durch zufälliges Löschen Rauschen hinzugefügt wurde.
Recommended Posts