Bagikan melalui


Menyiapkan data

Pada tahap sebelumnya dari tutorial ini, kami menginstal PyTorch di komputer Anda. Sekarang, kita akan menggunakannya untuk menyiapkan kode kita dengan data yang akan kita gunakan untuk membuat model kita.

Buka proyek baru dalam Visual Studio.

  1. Buka Visual Studio dan pilih create a new project.

Create new Visual Studio project

  1. Di bilah pencarian, ketik Python dan pilih Python Application sebagai templat proyek Anda.

Create new Python app

  1. Di jendela konfigurasi:
  • Beri nama proyek Anda. Di sini, kami menyebutnya PyTorchTraining.
  • Pilih lokasi proyek Anda.
  • Jika Anda menggunakan VS2019, pastikan Create directory for solution dicentang.
  • Jika Anda menggugat VS 2017, pastikan Place solution and project in the same directory tidak dicentang.

Configure your new Python app

Tekan create untuk membuat proyek Anda.

Membuat penerjemah Python

Sekarang, Anda perlu menentukan penerjemah Python baru. Ini harus mencakup paket PyTorch yang baru saja Anda instal.

  1. Navigasikan ke pilihan penerjemah, dan pilih Add environment:

Python interpreter selection

  1. Di jendela Add environment , pilih Existing environment, dan pilih Anaconda3 (3.6, 64-bit). Ini termasuk paket PyTorch.

Configure a new Python environment

Untuk menguji penerjemah Python baru dan paket PyTorch, masukkan kode berikut ke PyTorchTraining.py file:

from __future__ import print_function 

import torch 

x=torch.rand(2, 3) 

print(x) 

Output harus berupa tensor 5x3 acak yang mirip dengan di bawah ini.

Test your new Python interpreter

Catatan

Tertarik untuk mempelajari lebih lanjut? Kunjungi situs web resmi PyTorch.

Memuat himpunan data

Anda akan menggunakan kelas PyTorch torchvision untuk memuat data.

Pustaka Torchvision mencakup beberapa himpunan data populer seperti Imagenet, CIFAR10, MNIST, dll, arsitektur model, dan transformasi gambar umum untuk visi komputer. Itu membuat pemuatan data di PyTorch cukup mudah.

CIFAR10

Di sini, kita akan menggunakan himpunan data CIFAR10 untuk membangun dan melatih model klasifikasi gambar. CIFAR10 adalah himpunan data yang banyak digunakan untuk penelitian pembelajaran mesin. Ini terdiri dari 50.000 gambar pelatihan dan 10.000 gambar pengujian. Semuanya berukuran 3x32x32, yang berarti gambar warna 3 saluran berukuran 32x32 piksel.

Gambar dibagi menjadi 10 kelas: 'pesawat terbang' (0), 'mobil' (1), 'burung' (2), 'kucing' (3) , 'rusa' (4), 'anjing' (5), 'katak' (6), 'kuda' (7), 'kapal' (8), 'truk' (9).

Anda akan mengikuti tiga langkah untuk memuat dan membaca himpunan data CIFAR10 di PyTorch:

  • Tentukan transformasi yang akan diterapkan pada gambar: Untuk melatih model, Anda perlu mengubah gambar menjadi Tensor rentang yang dinormalisasi [-1,1].
  • Buat instans himpunan data yang tersedia dan muat himpunan data: Untuk memuat data, Anda akan menggunakan torch.utils.data.Dataset kelas - kelas abstrak untuk mewakili himpunan data. Himpunan data akan diunduh secara lokal hanya saat pertama kali Anda menjalankan kode.
  • Akses data menggunakan DataLoader. Untuk mendapatkan akses ke data dan memasukkan data ke dalam memori, Anda akan menggunakan torch.utils.data.DataLoader kelas . DataLoader di PyTorch membungkus himpunan data dan menyediakan akses ke data yang mendasar. Pembungkus ini akan menyimpan batch gambar per ukuran batch yang ditentukan.

Anda akan mengulangi tiga langkah ini untuk set pelatihan dan pengujian.

  1. PyTorchTraining.py file Buka di Visual Studio, dan tambahkan kode berikut. Ini menangani tiga langkah di atas untuk pelatihan dan menguji himpunan data dari himpunan data 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')

Pertama kali Anda menjalankan kode ini, himpunan data CIFAR10 akan diunduh ke perangkat Anda.

CIFAR10 dataset download

Langkah berikutnya

Dengan data siap digunakan, saatnya untuk melatih model PyTorch kami