一、人民幣二分類
描述:輸入人民幣,通過模型判定類別並輸出。
- 數據:四個子模塊
數據收集 -> img,label 原始數據和標簽
數據划分 -> train訓練集 valid驗證集 test測試集
數據讀取 -> DataLoader ->(1)Sampler(生成index) (2)Dataset(讀取Img,Label)
數據預處理 -> transforms
1、DataLoader
- torch.utils.data.DataLoader 功能:構建可迭代的數據裝載器
- dataset:Dataset類,決定數據從哪里讀取及如何讀取
- batchsize:批大小
- num_works:是否多進程讀取數據
- shuffle:每個epoch是否亂序
- drop_last:當樣本數不能被batchsize整除時,是否舍棄最后一批數據
- Epoch、Iteration、Batchsize關系
Epoch:所有訓練樣本都已輸入到模型中,稱為一個epoch
Iteration:一批樣本輸入到模型中,稱之為一個Iteration
Batchsize:批大小,決定一個Epoch有多少個iteration
例如:樣本總數:80 batchsize:8
1 epoch = 10 iteration 一次iteration輸入8個樣本,所以一次的epoch=8
樣本總數:87 batchsize:8
if drop_last = true 1 epoch = 10 iteration
else drop_last = false 1 epoch = 11 iteration
2、Dataset
- torch.utils.data.Dataset 功能:Dataset抽象類,所有自定義的Dataset需要繼承它,並且復寫
- __getitem__() :接收一個索引,返回一個樣本及標簽
3、數據讀取:
思考:讀哪些數據?從哪里讀數據?怎么讀數據?
二、Dataloader與Dataset
三、transform運行機制
torchvision:計算機視覺工具包
- torchvision.transforms:常用的圖像預處理方法
- torchvision.datasets:常用數據集的dataset實現,MNIST,CIFAR-10,ImageNet
- torchvision.model:常用的模型預訓練,AlexNet,VGG,ResNet,GoogLeNet等
1、torchvision.transforms --- 提高泛化能力
- l 數據中心化
- l 數據標准化
- l 縮放
- l 剪裁
- l 旋轉
- l 翻轉
- l 填充
- l 噪聲添加
- l 灰度變換
- l 線性變換
- l 仿射變換
- l 亮度、飽和度及對比度變換
四、數據標准化—transforms.normalize
transforms.normalize 功能:逐channel的對圖像進行標准化
output = (input - mean)/ std;
-
- mean:各通道的均值
- std:各通道的標准差
- inplace:是否原地操作