婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > PyTorch 如何將CIFAR100數據按類標歸類保存

PyTorch 如何將CIFAR100數據按類標歸類保存

熱門標簽:廣告地圖標注app 白銀外呼系統 哈爾濱ai外呼系統定制 激戰2地圖標注 騰訊外呼線路 海南400電話如何申請 公司電話機器人 唐山智能外呼系統一般多少錢 陜西金融外呼系統

few-shot learning的采樣

Few-shot learning 基于任務對模型進行訓練,在N-way-K-shot中,一個任務中的meta-training中含有N類,每一類抽取K個樣本構成support set, query set則是在剛才抽取的N類剩余的樣本中sample一定數量的樣本(可以是均勻采樣,也可以是不均勻采樣)。

對數據按類標歸類

針對上述情況,我們需要使用不同類別放置在不同文件夾的數據集。但有時,數據并沒有按類放置,這時就需要對數據進行處理。

下面以CIFAR100為列(不含N-way-k-shot的采樣):

import os
from skimage import io
import torchvision as tv
import numpy as np
import torch
def Cifar100(root):
    character = [[] for i in range(100)]
    train_set = tv.datasets.CIFAR100(root, train=True, download=True)
    test_set = tv.datasets.CIFAR100(root, train=False, download=True)
    dataset = []
    for (X, Y) in zip(train_set.train_data, train_set.train_labels):  # 將train_set的數據和label讀入列表
        dataset.append(list((X, Y)))
    for (X, Y) in zip(test_set.test_data, test_set.test_labels):  # 將test_set的數據和label讀入列表
        dataset.append(list((X, Y)))
    for X, Y in dataset:
        character[Y].append(X)  # 32*32*3
    character = np.array(character)
    character = torch.from_numpy(character)
    # 按類打亂
    np.random.seed(6)
    shuffle_class = np.arange(len(character))
    np.random.shuffle(shuffle_class)
    character = character[shuffle_class]
    # shape = self.character.shape
    # self.character = self.character.view(shape[0], shape[1], shape[4], shape[2], shape[3])  # 將數據轉成channel在前
    meta_training, meta_validation, meta_testing = \

    character[:64], character[64:80], character[80:]  # meta_training : meta_validation : Meta_testing = 64類:16類:20類
    dataset = []  # 釋放內存
    character = []
    os.mkdir(os.path.join(root, 'meta_training'))
    for i, per_class in enumerate(meta_training):
        character_path = os.path.join(root, 'meta_training', 'character_' + str(i))
        os.mkdir(character_path)
        for j, img in enumerate(per_class):
            img_path = character_path + '/' + str(j) + ".jpg"
            io.imsave(img_path, img)
    os.mkdir(os.path.join(root, 'meta_validation'))
    for i, per_class in enumerate(meta_validation):
        character_path = os.path.join(root, 'meta_validation', 'character_' + str(i))
        os.mkdir(character_path)
        for j, img in enumerate(per_class):
            img_path = character_path + '/' + str(j) + ".jpg"
            io.imsave(img_path, img)
    os.mkdir(os.path.join(root, 'meta_testing'))
    for i, per_class in enumerate(meta_testing):
        character_path = os.path.join(root, 'meta_testing', 'character_' + str(i))
        os.mkdir(character_path)
        for j, img in enumerate(per_class):
            img_path = character_path + '/' + str(j) + ".jpg"
            io.imsave(img_path, img)
if __name__ == '__main__':
    root = '/home/xie/文檔/datasets/cifar_100'
    Cifar100(root)
    print("-----------------")

補充:使用Pytorch對數據集CIFAR-10進行分類

主要是以下幾個步驟:

1、下載并預處理數據集

2、定義網絡結構

3、定義損失函數和優化器

4、訓練網絡并更新參數

5、測試網絡效果

#數據加載和預處理
#使用CIFAR-10數據進行分類實驗
import torch as t
import torchvision as tv
import torchvision.transforms as transforms
from torchvision.transforms import ToPILImage
show = ToPILImage() # 可以把Tensor轉成Image,方便可視化
 
#定義對數據的預處理
transform = transforms.Compose([
    transforms.ToTensor(),
    transforms.Normalize((0.5,0.5,0.5),(0.5,0.5,0.5)),  #歸一化
])
 
#訓練集
trainset = tv.datasets.CIFAR10(
    root = './data/',
    train = True,
    download = True,
    transform = transform
)
 
trainloader = t.utils.data.DataLoader(
    trainset,
    batch_size = 4,
    shuffle = True,
    num_workers = 2,
)
 
#測試集
testset = tv.datasets.CIFAR10(
    root = './data/',
    train = False,
    download = True,
    transform = transform,
)
testloader = t.utils.data.DataLoader(
    testset,
    batch_size = 4,
    shuffle = False,
    num_workers = 2,
)
 
classes = ('plane', 'car', 'bird', 'cat',
           'deer', 'dog', 'frog', 'horse', 'ship', 'truck')

初次下載需要一些時間,運行結束后,顯示如下:

import torch.nn as nn
import torch.nn.functional as F
import time
start = time.time()#計時
#定義網絡結構
class Net(nn.Module):
    def __init__(self):
        super(Net,self).__init__()
        self.conv1 = nn.Conv2d(3,6,5)
        self.conv2 = nn.Conv2d(6,16,5)
        self.fc1 = nn.Linear(16*5*5,120)
        self.fc2 = nn.Linear(120,84)
        self.fc3 = nn.Linear(84,10)
        
    def forward(self,x):
        x = F.max_pool2d(F.relu(self.conv1(x)),2)
        x = F.max_pool2d(F.relu(self.conv2(x)),2)
        
        x = x.view(x.size()[0],-1)
        x = F.relu(self.fc1(x))
        x = F.relu(self.fc2(x))
        x = self.fc3(x)
        return x
net = Net()
print(net)

顯示net結構如下:

#定義優化和損失
loss_func = nn.CrossEntropyLoss()  #交叉熵損失函數
optimizer = t.optim.SGD(net.parameters(),lr = 0.001,momentum = 0.9)
 
#訓練網絡
for epoch in range(2):
    running_loss = 0
    for i,data in enumerate(trainloader,0):
        inputs,labels = data
       
        outputs = net(inputs)
        loss = loss_func(outputs,labels)
        optimizer.zero_grad()
        loss.backward()
        optimizer.step()
        running_loss +=loss.item()
        if i%2000 ==1999:
            print('epoch:',epoch+1,'|i:',i+1,'|loss:%.3f'%(running_loss/2000))
            running_loss = 0.0
end = time.time()
time_using = end - start
print('finish training')
print('time:',time_using)

結果如下:

下一步進行使用測試集進行網絡測試:

#測試網絡
correct = 0 #定義的預測正確的圖片數
total = 0#總共圖片個數
with t.no_grad():
    for data in testloader:
        images,labels = data
        outputs = net(images)
        _,predict = t.max(outputs,1)
        total += labels.size(0)
        correct += (predict == labels).sum()
print('測試集中的準確率為:%d%%'%(100*correct/total))

結果如下:

簡單的網絡訓練確實要比10%的比例高一點:)

在GPU中訓練:

#在GPU中訓練
device = t.device('cuda:0' if t.cuda.is_available() else 'cpu')
 
net.to(device)
images = images.to(device)
labels = labels.to(device)
 
output = net(images)
loss = loss_func(output,labels)
 
loss

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • pytorch_detach 切斷網絡反傳方式
  • pytorch 禁止/允許計算局部梯度的操作
  • 如何利用Pytorch計算三角函數
  • 聊聊PyTorch中eval和no_grad的關系
  • Pytorch實現圖像識別之數字識別(附詳細注釋)
  • Pytorch實現全連接層的操作
  • pytorch 優化器(optim)不同參數組,不同學習率設置的操作
  • PyTorch的Debug指南
  • Python深度學習之使用Pytorch搭建ShuffleNetv2
  • win10系統配置GPU版本Pytorch的詳細教程
  • 淺談pytorch中的nn.Sequential(*net[3: 5])是啥意思
  • pytorch visdom安裝開啟及使用方法
  • PyTorch CUDA環境配置及安裝的步驟(圖文教程)
  • pytorch中的nn.ZeroPad2d()零填充函數實例詳解
  • 使用pytorch實現線性回歸
  • pytorch實現線性回歸以及多元回歸
  • PyTorch學習之軟件準備與基本操作總結

標簽:益陽 鷹潭 黑龍江 常德 四川 上海 惠州 黔西

巨人網絡通訊聲明:本文標題《PyTorch 如何將CIFAR100數據按類標歸類保存》,本文關鍵詞  PyTorch,如何,將,CIFAR100,數據,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《PyTorch 如何將CIFAR100數據按類標歸類保存》相關的同類信息!
  • 本頁收集關于PyTorch 如何將CIFAR100數據按類標歸類保存的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    欧美mv日韩mv| 国产欧美一区二区在线| 国产69精品久久99不卡| 美女网站视频久久| 五月天中文字幕一区二区| 亚洲最大色网站| 亚洲成人高清在线| 日韩av电影免费观看高清完整版| 亚洲电影激情视频网站| 午夜精品一区二区三区免费视频| 亚洲国产欧美在线| 日韩国产高清影视| 免费在线看成人av| 久久99精品视频| 国产成人av电影在线观看| 成人av动漫网站| 欧美亚洲国产一区二区三区va | 欧美自拍丝袜亚洲| 制服丝袜成人动漫| 久久久噜噜噜久久人人看| 国产欧美日韩另类视频免费观看 | 欧美精品在线观看一区二区| 欧美一区二区在线不卡| 亚洲精品在线观看网站| 成人欧美一区二区三区黑人麻豆| 亚洲欧美日韩一区二区| 午夜不卡av免费| 国产aⅴ精品一区二区三区色成熟| voyeur盗摄精品| 久久99精品国产91久久来源| 欧洲激情一区二区| 国产精品亲子乱子伦xxxx裸| 91精品综合久久久久久| 六月丁香婷婷色狠狠久久| 亚洲人成电影网站色mp4| 日本不卡视频一二三区| 91成人免费在线| 欧美videossexotv100| 亚洲婷婷在线视频| 久久www免费人成看片高清| 99国内精品久久| 精品乱人伦一区二区三区| 亚洲精品你懂的| 老司机精品视频一区二区三区| 91免费看`日韩一区二区| 欧美zozozo| 亚洲成人自拍网| 成人三级伦理片| 日韩午夜在线观看视频| 日韩一级精品视频在线观看| 日韩电影在线观看网站| 欧美视频一区在线| 日韩专区欧美专区| 88在线观看91蜜桃国自产| 亚洲视频在线一区| 欧美精品一卡二卡| 国产伦理精品不卡| 亚洲男人天堂av网| 日韩一级成人av| 91玉足脚交白嫩脚丫在线播放| 5566中文字幕一区二区电影 | 午夜a成v人精品| 色综合中文字幕国产| 日韩女优毛片在线| 日本不卡在线视频| 欧美精品色综合| 亚洲第一在线综合网站| 在线一区二区观看| 一区二区三区精品视频| 97久久超碰国产精品电影| 国产欧美日韩不卡| 国产乱人伦精品一区二区在线观看| 日韩欧美国产一区二区在线播放| 午夜国产精品一区| 欧美日韩久久一区二区| 午夜国产不卡在线观看视频| 在线播放91灌醉迷j高跟美女| 日本一道高清亚洲日美韩| 日韩亚洲欧美高清| 精品一区精品二区高清| 精品va天堂亚洲国产| 国产成人av福利| 中文字幕一区视频| 一本大道久久a久久综合婷婷| 一级做a爱片久久| 欧美区在线观看| 另类小说综合欧美亚洲| 国产午夜精品一区二区三区四区| 国产乱对白刺激视频不卡| 国产亚洲视频系列| 色综合久久久久| 亚洲第一电影网| 久久综合久久综合九色| www.av精品| 天天色综合天天| 久久久久国产精品人| 成人午夜私人影院| 亚洲一级二级三级| 26uuu亚洲综合色| 97精品久久久久中文字幕| 午夜视频在线观看一区二区三区| 日韩欧美国产电影| 成人一道本在线| 国产精品欧美综合在线| 看片网站欧美日韩| 日韩一区二区在线看| 中文字幕第一区综合| 亚洲一区二区三区三| 久久99热这里只有精品| 成人福利电影精品一区二区在线观看 | 国产999精品久久久久久绿帽| 国产精品一区二区91| 亚洲福利视频三区| 91在线无精精品入口| 久久精品国产**网站演员| 国产精品网站在线| 日韩欧美一区在线| 在线精品视频小说1| 国产在线精品视频| 亚洲成在线观看| 自拍偷拍亚洲综合| 久久亚洲一级片| 欧美久久久久久久久中文字幕| 成人午夜视频免费看| 久久精品国产**网站演员| 亚洲免费资源在线播放| 日本一区二区视频在线观看| 欧美人妇做爰xxxⅹ性高电影| 成人91在线观看| 国产成人综合网| 国产一区二区三区国产| 亚洲高清一区二区三区| 亚洲欧美日韩国产手机在线| 国产日韩视频一区二区三区| 欧美成人精品福利| 欧美巨大另类极品videosbest | 欧美一区二区在线播放| 欧洲另类一二三四区| 99国产欧美久久久精品| 成人网页在线观看| 国产成人综合亚洲91猫咪| 国产成人一级电影| 国产乱子伦一区二区三区国色天香| 日本伊人午夜精品| 视频一区视频二区中文| 日日欢夜夜爽一区| 青青青伊人色综合久久| 午夜精品福利一区二区蜜股av | 精品成人佐山爱一区二区| 日韩欧美视频在线| 亚洲精品一区二区三区香蕉| 精品裸体舞一区二区三区| 日韩欧美一区二区久久婷婷| 精品久久久久av影院| 久久亚洲综合av| 国产精品久久久久久久久动漫| 国产欧美日韩综合| 亚洲欧美日韩中文播放| 中文幕一区二区三区久久蜜桃| 国产亚洲欧美激情| 日本韩国精品在线| 国产精品日日摸夜夜摸av| 欧美日韩国产另类不卡| 91丨九色丨尤物| 成人午夜激情视频| 波波电影院一区二区三区| 亚洲成av人片在线观看无码| 伊人性伊人情综合网| 国产精品对白交换视频| 国产偷国产偷亚洲高清人白洁| 在线91免费看| 国产精品成人一区二区三区夜夜夜 | 97久久超碰精品国产| 色成人在线视频| 欧美日韩精品系列| 久久综合999| 亚洲欧美视频一区| 蜜桃精品在线观看| 99久久久久久99| 日韩一级大片在线| 亚洲视频一二三区| 男男成人高潮片免费网站| 国产成人免费在线观看不卡| 日本乱人伦aⅴ精品| 久久综合久色欧美综合狠狠| 亚洲六月丁香色婷婷综合久久| 日本不卡一二三| 99久久久国产精品| 日韩一区二区免费高清| 中文字幕一区二区三区不卡在线| 蜜臀久久久99精品久久久久久| 91亚洲精品久久久蜜桃网站| 日韩你懂的在线观看| 一区二区视频在线| 国产成人精品综合在线观看| 欧美日韩在线精品一区二区三区激情 | 国产精品亚洲第一| 51午夜精品国产| 亚洲精品免费在线播放| 懂色一区二区三区免费观看 |