通過網(wǎng)站做詐騙立案嗎福州百度推廣電話
?Pytorch torchvision 包提供了很多常用數(shù)據(jù)集
數(shù)據(jù)按照用途一般分為三組:訓(xùn)練(train)、驗(yàn)證(validation)和測(cè)試(test)。使用訓(xùn)練數(shù)據(jù)集來訓(xùn)練模型,使用驗(yàn)證數(shù)據(jù)集跟蹤模型在訓(xùn)練期間的性能,使用測(cè)試數(shù)據(jù)集對(duì)模型進(jìn)行最終評(píng)估。
目錄
導(dǎo)入MNIST訓(xùn)練數(shù)據(jù)集
提取訓(xùn)練數(shù)據(jù)和標(biāo)簽
同理操作驗(yàn)證數(shù)據(jù)集
給張量添加維度
打印示例圖像
導(dǎo)入MNIST訓(xùn)練數(shù)據(jù)集
從 torchvision導(dǎo)入MNIST訓(xùn)練數(shù)據(jù)集
import torch
import torchvision
from torchvision import datasets
train_data=datasets.MNIST("./data",train=True,download=True)
datasets.MNIST是Pytorch的內(nèi)置函數(shù)
train=True指導(dǎo)入的數(shù)據(jù)作為訓(xùn)練數(shù)據(jù)集
download=True若根目錄下沒有數(shù)據(jù)集時(shí)自動(dòng)下載
?導(dǎo)入完成后可以看到MINST文件內(nèi)的數(shù)據(jù)集
提取訓(xùn)練數(shù)據(jù)和標(biāo)簽
x_train, y_train=train_data.data,train_data.targets
print(x_train.shape)
print(y_train.shape)
x_train存儲(chǔ)60000張28*28的圖片,y_train存儲(chǔ)60000張圖片對(duì)應(yīng)的數(shù)字(label)
同理操作驗(yàn)證數(shù)據(jù)集
從 torchvision導(dǎo)入MNIST驗(yàn)證數(shù)據(jù)集并提取數(shù)據(jù)和標(biāo)簽
val_data=datasets.MNIST("./data", train=False, download=True)
x_val,y_val=val_data.data, val_data.targets
print(x_val.shape)
print(y_val.shape)
?
給張量添加維度
Pytorch中張量可以是一維、二維、三維或者更高維度的數(shù)據(jù)結(jié)構(gòu)。一維張量類似于向量,二維張量類似于矩陣,三維張量類似一系列矩陣的堆疊。添加新的維度可以更好地對(duì)數(shù)據(jù)進(jìn)行表示和處理。
if len(x_train.shape)==3:x_train=x_train.unsqueeze(1)
print(x_train.shape)if len(x_val.shape)==3:x_val=x_val.unsqueeze(1)
print(x_val.shape)
?.unsqueeze(0)指添加在第一個(gè)維度
也可以通過x_train.view(60000,1,28,28)添加維度
可以看到張量由三維變?yōu)榱怂木S?
打印示例圖像
引入所需的包,定義一個(gè)輔助函數(shù),將張量顯示為圖像
from torchvision import utils
import matplotlib.pyplot as plt
import numpy as np
def show(img):npimg = img.numpy()npimg_tr=np.transpose(npimg, (1,2,0))plt.imshow(npimg_tr,interpolation='nearest')
創(chuàng)建一個(gè)10*10的網(wǎng)格,每行10張圖片,pedding=3指間隔為3
x_grid=utils.make_grid(x_train[:100], nrow=10, padding=3)
print(x_grid.shape)
show(x_grid)
utils.make_grid實(shí)際上是將多張圖片拼接起來,參照官方介紹: