Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Uyarı
Daha fazla işlevsellik için PyTorch, Windows üzerinde DirectML ile de kullanılabilir.
Bu öğreticinin önceki aşamasında, makinenize PyTorch'u yükledik. Şimdi bunu kullanarak modelimizi oluşturmak için kullanacağımız verilerle kodumuzu ayarlayacağız.
Visual Studio'da yeni bir proje açın.
- Visual Studio'yu açın ve öğesini seçin
create a new project.
- Arama çubuğuna yazın
Pythonve proje şablonunuz olarak seçinPython Application.
- Yapılandırma penceresinde:
- Projenize bir ad verin. Burada pyTorchTraining diyoruz.
- Projenizin konumunu seçin.
- VS2019 kullanıyorsanız işaretli olduğundan emin olun
Create directory for solution. - VS 2017'yi kullanıyorsanız,
Place solution and project in the same directoryseçeneğinin işaretlenmediğinden emin olun.
Projenizi oluşturmak için basın create .
Python yorumlayıcısı oluşturma
Şimdi yeni bir Python yorumlayıcısı tanımlamanız gerekir. Bu, yakın zamanda yüklediğiniz PyTorch paketini içermelidir.
- Tercüman seçimine gidin ve
Add environmentseçin.
-
Add environmentpenceresinde,Existing environmentseçin ve ardındanAnaconda3 (3.6, 64-bit)seçin. Buna PyTorch paketi de dahildir.
Yeni Python yorumlayıcısını ve PyTorch paketini test etmek için dosyaya PyTorchTraining.py aşağıdaki kodu girin:
from __future__ import print_function
import torch
x=torch.rand(2, 3)
print(x)
Çıkış, aşağıdakine benzer rastgele bir 5x3 tensor olmalıdır.
Uyarı
Daha fazla bilgi edinmek istiyor musunuz? PyTorch resmi web sitesini ziyaret edin.
Veri kümesini yükleme
Verileri yüklemek için PyTorch torchvision sınıfını kullanacaksınız.
Torchvision kitaplığı Imagenet, CIFAR10, MNIST vb. gibi birçok popüler veri kümesini, model mimarilerini ve görüntü işleme için ortak görüntü dönüşümlerini içerir. Bu, PyTorch'ta veri yükleme işlemini oldukça kolay hale getirir.
CIFAR10
Burada, görüntü sınıflandırma modelini oluşturmak ve eğitmek için CIFAR10 veri kümesini kullanacağız. CIFAR10, makine öğrenmesi araştırması için yaygın olarak kullanılan bir veri kümesidir. 50.000 eğitim görüntüsü ve 10.000 test görüntüsünden oluşur. Hepsi 3x32x32 boyutundadır, yani 32x32 piksel boyutunda 3 kanallı renkli görüntüler.
Görüntüler 10 sınıfa ayrılmıştır: 'uçak' (0), 'otomobil' (1), 'kuş' (2), 'kedi' (3) , 'geyik' (4), 'köpek' (5), 'kurbağa' (6), 'at' (7), 'ship' (8), 'truck' (9).
PyTorch'ta CIFAR10 veri kümesini yüklemek ve okumak için üç adımı izleyeceksiniz:
- Görüntüye uygulanacak dönüştürmeleri tanımlama: Modeli eğitmek için görüntüleri normalleştirilmiş aralığın Tensor'larına dönüştürmeniz gerekir [-1,1].
- Kullanılabilir veri kümesinin bir örneğini oluşturun ve veri kümesini yükleyin: Verileri yüklemek için, veri kümesini temsil eden soyut bir sınıf olan
torch.utils.data.Datasetsınıfını kullanacaksınız. Veri kümesi yalnızca kodu ilk kez çalıştırdığınızda yerel olarak indirilir. - DataLoader'i kullanarak verilere erişin. Verilere erişimi almak ve verileri belleğe yerleştirmek için sınıfını
torch.utils.data.DataLoaderkullanacaksınız. PyTorch'taki DataLoader bir veri kümesini sarmalar ve temel alınan verilere erişim sağlar. Bu kapsayıcı, tanımlanmış toplu iş boyutuna göre görüntü kümelerini barındıracaktır.
Bu üç adımı hem eğitim hem de test kümeleri için yineleyacaksınız.
-
PyTorchTraining.py filedosyasını Visual Studio'da açın ve aşağıdaki kodu ekleyin. Bu, CIFAR10 veri kümesinden eğitim ve test veri kümeleri için yukarıdaki üç adımı işler.
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')
Bu kodu ilk kez çalıştırdığınızda CIFAR10 veri kümesi cihazınıza indirilir.
Sonraki Adımlar
Veriler kullanıma hazır olduğunda PyTorch modelimizi eğitme zamanı geldi