[PYTHON] Afficher l'image après l'augmentation des données avec Pytorch

Contexte

** Je veux afficher l'image après l'augmentation des données! ** **

Je l'ai pensé et mis en œuvre.

L'augmentation des données est une technologie de remplissage d'une seule image, et les opérations suivantes sont ajoutées.

--Random Crop (Recadrer l'image au hasard) -Random Horizontal Flip (Retourner l'image à gauche et à droite avec une certaine probabilité)

Il y a beaucoup d'autres choses.

la mise en oeuvre

Cette fois, j'ai chargé l'ensemble de données d'image d'apprentissage de CIFAR-10 et j'ai essayé d'incorporer le retournement horizontal aléatoire et l'effacement aléatoire dans les transformations.

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

#Chargement des images
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):

  #Lire les données d'image augmentées
  tmp = iter(data_loader)
  images,labels = tmp.next()

  #Convertir une image de tenseur en numpy
  images = images.numpy()

  #Retirez n images une par une et affichez-les
  for i in range(n):
    image = np.transpose(images[i],[1,2,0])
    plt.imshow(image)
    plt.show()

image_show(train_loader,10)

La fonction image_show est une fonction qui affiche l'image après Augmentation.

Obtenez un mini-lot de DataLoader avec iter ().

Ensuite, .next () stocke les données d'image dans les images et les étiquettes dans les étiquettes.

images = images.numpy () convertit les données d'image du tensor en numpy.

À ce stade, les images ont une structure de ** [taille du lot, nombre de canaux, largeur, hauteur] **, mais pour afficher les images avec pyplot de matplotlib ** [largeur, hauteur, nombre de canaux] Doit être **.

Par conséquent, il est transformé à l'aide de np.transpose.

Exemple de résultat d'exécution

1.png 02.png

Il a été confirmé qu'il était retourné horizontalement et que le bruit avait été ajouté par effacement aléatoire.

Recommended Posts

Afficher l'image après l'augmentation des données avec Pytorch
Afficher l'image après l'augmentation des données avec PyTorch
Comment augmenter les données avec PyTorch
Affichage de l'image prise avec l'ISIGHT intégré
Augmentation des données avec openCV
[PyTorch] Augmentation des données pour la segmentation
Installez le fichier de données avec setup.py
Essayez de brouiller l'image avec opencv2
[Django] Afficher les données d'inscription associées aux utilisateurs sur le formulaire d'inscription / d'édition (formulaire)
Afficher Python 3 dans le navigateur avec MAMP
Essayez d'imaginer les données d'élévation du National Land Research Institute avec Python
Envoyer et recevoir des données d'image au format JSON en Python sur le réseau
Faites un clic droit sur l'image → Réalisez "Compresser avec TinyPNG"
J'ai essayé de jouer avec l'image avec Pillow
Afficher les marqueurs au-dessus de la bordure avec matplotlib
Exécuter du SQL brut avec redash à l'aide de la source de données Python et afficher le résultat
Comment afficher dans toute la fenêtre lors de la définition de l'image d'arrière-plan avec tkinter
Affichage des données d'informations de position en Python --Essayez de tracer avec la bibliothèque d'affichage de carte (folium) -
Lorsque vous passez la souris sur Matplotlib, l'image correspondante s'affiche.
J'ai essayé de "lisser" l'image avec Python + OpenCV
Coupez l'image aux coins arrondis avec pythonista
J'ai essayé de "différencier" l'image avec Python + OpenCV
Générer et publier des données d'image factice avec Django
J'ai essayé de sauvegarder les données avec discorde
Afficher dynamiquement les données épidémiques à l'aide du tableau de bord Grafana
Déterminez les nombres dans l'image prise avec la webcam
J'ai essayé de "binariser" l'image avec Python + OpenCV
Afficher le 邊
Jouez avec PyTorch
Validation croisée avec PyTorch
Afficher n chiffres après la virgule décimale en python
Extraire le tableau des fichiers image avec OneDrive et Python
Comment récupérer des données d'image de Flickr avec Python
Accédez à l'API Twitter après l'authentification Oauth avec Django
[Python] Obtenez les nombres dans l'image graphique avec OCR
Identifiez le nom de l'image de la fleur avec des keras (flux tenseur)
Convertissez l'image au format .zip en PDF avec Python
[Tutoriel PyTorch ⑦] Visualisation des modèles, des données et de la formation avec Tensorboard
Obtenez des commentaires et des abonnés avec l'API de données YouTube
Préparation de l'environnement d'exécution de PyTorch avec Docker Novembre 2019
Challenge classification des images par TensorFlow2 + Keras 3 ~ Visualiser les données MNIST ~
POSTER l'image avec json et la recevoir avec flask
Afficher le graphique lors de la modification des paramètres avec PySimpleGUI + Matplotlib
Supprimer les données DynamoDB après 5 minutes avec AWS Step Functions
J'ai essayé d'afficher les données du groupe de points DB de la préfecture de Shizuoka avec Vue + Leaflet