Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Poznámka:
Pro větší funkčnost lze PyTorch použít také s DirectML ve Windows.
V předchozí fázi tohoto kurzu jsme nainstalovali na váš počítač PyTorch. Teď ho použijeme k nastavení kódu s daty, která použijeme k vytvoření modelu.
Otevřete nový projekt v aplikaci Visual Studio.
- Otevřete Visual Studio a zvolte
create a new project.
- Na panelu hledání zadejte
Pythona vybertePython Applicationjako šablonu projektu.
- V okně konfigurace:
- Pojmenujte projekt. Tady tomu říkáme PyTorchTraining.
- Zvolte umístění projektu.
- Pokud používáte VS2019, zkontrolujte, jestli
Create directory for solutionje zaškrtnuté. - Pokud používáte VS 2017, ujistěte se, že
Place solution and project in the same directorynení zaškrtnuto.
Stisknutím create vytvoříte projekt.
Vytvoření interpreta Pythonu
Teď musíte definovat nový interpret Pythonu. To musí zahrnovat balíček PyTorch, který jste nedávno nainstalovali.
- Přejděte na výběr interpreta a vyberte
Add environment:
- V okně
Add environmentvyberteExisting environmenta zvolteAnaconda3 (3.6, 64-bit). To zahrnuje balíček PyTorch.
Pokud chcete otestovat nový interpret Pythonu a balíček PyTorch, zadejte do PyTorchTraining.py souboru následující kód:
from __future__ import print_function
import torch
x=torch.rand(2, 3)
print(x)
Výstup by měl být náhodný tensor 5x3 podobný následujícímu.
Poznámka:
Zajímá vás další informace? Navštivte oficiální stránky PyTorch.
Načtení datové sady
K načtení dat použijete třídu PyTorch torchvision .
Knihovna Torchvision obsahuje několik oblíbených datových sad, jako jsou Imagenet, CIFAR10, MNIST atd., architektury modelů a běžné transformace obrázků pro počítačové zpracování obrazu. Díky tomu je načítání dat v PyTorch poměrně snadné.
CIFAR10
V této části použijeme datovou sadu CIFAR10 k sestavení a trénování modelu klasifikace obrázků. CIFAR10 je široce používaná datová sada pro výzkum strojového učení. Skládá se z 50 000 trénovacích obrázků a 10 000 testovacích obrázků. Všechny jsou velikosti 3x32x32, což znamená, že jde o barevné obrazové kanály o velikosti 32x32 pixelů.
Obrázky jsou rozděleny na 10 tříd: „letadlo“ (0), „automobil“ (1), „pták“ (2), „kočka“ (3) , „srnec“ (4), „pes“ (5), „žába“ (6), „kůň“ (7), „loď“ (8), „nákladní auto“ (9).
Pokud chcete načíst a přečíst datovou sadu CIFAR10 v PyTorchu, postupujte podle tří kroků:
- Definujte transformace, které se mají použít na obrázek: Chcete-li vytrénovat model, musíte transformovat obrázky na Tensory normalizovaného rozsahu [-1,1].
- Vytvořte instanci dostupné datové sady a načtěte datovou sadu: K načtení dat použijete
torch.utils.data.Datasettřídu – abstraktní třídu pro reprezentaci datové sady. Datová sada se stáhne místně pouze při prvním spuštění kódu. - Přístup k datům pomocí DataLoaderu K získání přístupu k datům a vložení dat do paměti použijete
torch.utils.data.DataLoadertřídu. DataLoader v PyTorch zabalí datovou sadu a poskytuje přístup k podkladovým datům. Tento obal bude obsahovat dávky obrázků podle definované velikosti dávky.
Tyto tři kroky zopakujete pro trénovací i testovací sady.
- Otevřete
PyTorchTraining.py filev aplikaci Visual Studio a přidejte následující kód. Tím se zpracují tři výše uvedené kroky pro trénovací a testovací sady z datového souboru CIFAR10.
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')
Při prvním spuštění tohoto kódu se datová sada CIFAR10 stáhne do vašeho zařízení.
Další kroky
Když jsou data připravena, je čas vytrénovat náš model PyTorch.