Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Anmärkning
För större funktioner kan PyTorch också användas med DirectML i Windows.
I föregående steg i den här självstudien installerade vi PyTorch på datorn. Nu ska vi använda den för att konfigurera koden med de data som vi ska använda för att skapa vår modell.
Öppna ett nytt projekt i Visual Studio.
- Öppna Visual Studio och välj
create a new project.
- I sökfältet skriver
Pythonoch väljer duPython Applicationsom projektmall.
- I konfigurationsfönstret:
- Ge projektet ett namn. Här kallar vi det PyTorchTraining.
- Välj platsen för projektet.
- Om du använder VS2019 kontrollerar du att
Create directory for solutionär markerad. - Om du använder VS 2017 ska du se till att
Place solution and project in the same directoryär avmarkerad.
Tryck create för att skapa projektet.
Skapa en Python-tolk
Nu måste du definiera en ny Python-tolk. Detta måste inkludera PyTorch-paketet som du nyligen har installerat.
- Navigera till tolkalternativ och välj
Add environment:
- I fönstret
Add environmentväljer duExisting environmentoch väljerAnaconda3 (3.6, 64-bit). Detta inkluderar PyTorch-paketet.
Om du vill testa den nya Python-tolken och PyTorch-paketet anger du följande kod i PyTorchTraining.py filen:
from __future__ import print_function
import torch
x=torch.rand(2, 3)
print(x)
Utdata bör vara en slumpmässig 5x3 tensor som liknar nedanstående.
Anmärkning
Vill du veta mer? Besök PyTorchs officiella webbplats.
Läs in datauppsättningen
Du använder klassen PyTorch torchvision för att läsa in data.
Torchvision-biblioteket inkluderar flera populära dataset som Imagenet, CIFAR10, MNIST osv., modellarkitekturer och vanliga bildtransformationer för datorseende. Det gör datainläsningen i PyTorch ganska enkel.
CIFAR10
Här använder vi datauppsättningen CIFAR10 för att skapa och träna bildklassificeringsmodellen. CIFAR10 är en datauppsättning som används ofta för maskininlärningsforskning. Den består av 50 000 träningsbilder och 10 000 testbilder. Alla är av storlek 3x32x32, vilket innebär 3-kanals färgbilder med 32 x 32 bildpunkter i storlek.
Bilderna är uppdelade på 10 klasser: "flygplan" (0), "bil" (1), "fågel" (2), "katt" (3) , "hjort" (4), "hund" (5), "groda" (6), "häst" (7), "skepp" (8), "lastbil" (9).
Du följer tre steg för att läsa in och läsa CIFAR10 datauppsättningen i PyTorch:
- Definiera omvandlingar som ska tillämpas på bilden: Om du vill träna modellen måste du transformera bilderna till Tensors med normaliserat intervall [-1,1].
- Skapa en instans av den tillgängliga datamängden och läs in datauppsättningen: Om du vill läsa in data använder
torch.utils.data.Datasetdu klassen – en abstrakt klass för att representera en datauppsättning. Datauppsättningen laddas ned lokalt bara första gången du kör koden. - Få åtkomst till data med hjälp av DataLoader. För att få åtkomst till data och placera data i minnet använder
torch.utils.data.DataLoaderdu klassen . DataLoader i PyTorch omsluter en datauppsättning och ger åtkomst till underliggande data. Den här förpackningen kommer att hålla grupper med bilder efter definierad batchstorlek.
Du upprepar de här tre stegen för både tränings- och testuppsättningar.
-
PyTorchTraining.py fileÖppna i Visual Studio och lägg till följande kod. Detta hanterar de tre ovanstående stegen för tränings- och testdatauppsättningarna från CIFAR10-datasättet.
from torchvision.datasets import CIFAR10
from torchvision.transforms import transforms
from torch.utils.data import DataLoader
# Loading and normalizing the data.
# Define transformations for the training and test sets
transformations = transforms.Compose([
transforms.ToTensor(),
transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))
])
# CIFAR10 dataset consists of 50K training images. We define the batch size of 10 to load 5,000 batches of images.
batch_size = 10
number_of_labels = 10
# Create an instance for training.
# When we run this code for the first time, the CIFAR10 train dataset will be downloaded locally.
train_set =CIFAR10(root="./data",train=True,transform=transformations,download=True)
# Create a loader for the training set which will read the data within batch size and put into memory.
train_loader = DataLoader(train_set, batch_size=batch_size, shuffle=True, num_workers=0)
print("The number of images in a training set is: ", len(train_loader)*batch_size)
# Create an instance for testing, note that train is set to False.
# When we run this code for the first time, the CIFAR10 test dataset will be downloaded locally.
test_set = CIFAR10(root="./data", train=False, transform=transformations, download=True)
# Create a loader for the test set which will read the data within batch size and put into memory.
# Note that each shuffle is set to false for the test loader.
test_loader = DataLoader(test_set, batch_size=batch_size, shuffle=False, num_workers=0)
print("The number of images in a test set is: ", len(test_loader)*batch_size)
print("The number of batches per epoch is: ", len(train_loader))
classes = ('plane', 'car', 'bird', 'cat', 'deer', 'dog', 'frog', 'horse', 'ship', 'truck')
Första gången du kör den här koden laddas CIFAR10 datauppsättningen ned till enheten.
Nästa steg
När data är klara är det dags att träna vår PyTorch-modell