欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

pytorch深度學習實戰(zhàn)lesson33-創(chuàng)新互聯(lián)

第三十三課 數(shù)據(jù)增廣

公司主營業(yè)務:成都做網(wǎng)站、成都網(wǎng)站設計、成都外貿(mào)網(wǎng)站建設、移動網(wǎng)站開發(fā)等業(yè)務。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)推出撫順免費做網(wǎng)站回饋大家。

數(shù)據(jù)增廣的不僅僅是處理圖片,還可以處理文本或語音。我們在這里其實主要專注的是圖片上的一些技術??梢钥吹竭@幾張圖是說是對一個松鼠做不同的一些處理,比如說可以把一些像素拿掉、把它的顏色做變換,然后最后面一個是對它的亮度做很多變換。

目錄

理論部分

實踐部分


理論部分

Ces上的真實故事是講在采集數(shù)據(jù)訓練模型的時候,現(xiàn)場的場景至關重要,在實際部署的時候要充足的對現(xiàn)場的場景進行數(shù)據(jù)采集。特別是對于比如說手機上的應用各種攝像頭那一塊的應用確實是非常不一樣。比如語音識別,在室內(nèi)識別和室外識別它整個背景噪音是不一樣的,而且聲音的反射也不一樣。攝像頭也是一樣的,不同手機拍的東西,攝像頭的質量不一樣顏色不一樣場景不一樣,都會給你導致問題。所以就是說訓練集應能夠盡可能的去模擬在部署的時候可以碰到的各種場景,是模型的泛化性的一個非常重要的部分。

所以數(shù)據(jù)增強是干嘛的呢?數(shù)據(jù)增強的意思是在一個已有的數(shù)據(jù)集上面,通過數(shù)據(jù)變換,使得它有多樣性。比如說語音的數(shù)據(jù)的話,那么可以在語音里面加入不同的背景噪音。如果是圖片數(shù)據(jù)的話,那么可以去改變圖片的形狀顏色。比如說這里的話上圖所示是原始的一張貓的圖片,這是這個數(shù)據(jù)集里面的。那我可以把整個圖片摳出一塊來,就是說理想情況下可能整個貓都拍過來了,但是在實際中我可能只拍到一個貓的一半,那么當我看到它的時候,我應該也能去識別出這是一只貓。第二個就是說我可以對這個圖片的亮度進行變化,有可能是比較暗,有可能是比較亮。第三個是說我可以對它的色溫進行變化,可以是藍一點黃紅一點。

一般來說數(shù)據(jù)增強是在線生成的,而不是說給我一個數(shù)據(jù)集,然后生成好圖片再存下來。一般的做法是說跟以前一樣去從原始數(shù)據(jù)讀圖片過來之后,對圖片隨機的做增強。就是說我從數(shù)據(jù)集讀出來之后,然后將一些不同的增強的方法隨機的應用在個圖片上就可以生成,可能是生出來一堆不一樣的圖片,然后對它再進入模型進行訓練。所以核心是說每一次是在線的生成,而且是隨機的,測試的時候一般是不會去進行突變增強的。

下圖所示的方法是一些數(shù)據(jù)增強的常用方法:

上下翻轉并總不是可行的,比如房子進行上下翻轉后會有些奇怪了。但是樹葉進行上下翻轉后就沒什么問題。

image aug里面提供了幾十種不一樣的做圖片增強的方法??梢钥吹奖热缯f去高斯模糊、銳化之類的方法。基本上可以認為photoshop 能夠干的事情,都可以把它作用在圖片上面。但實際上來說作用好不好就不知道了,這與測試集與部署的環(huán)境的關系有關。

實踐部分

代碼:

#圖像增廣
import torch
import torchvision
from torch import nn
from d2l import torch as d2l
import matplotlib.pyplot as plt
d2l.set_figsize()
img = d2l.Image.open('D:\shi.jpg')
d2l.plt.imshow(img)
plt.show()
def apply(img, aug, num_rows=2, num_cols=4, scale=1.5):#2行4列表示一共要對圖片作用八次,1.5表示生成的圖片的大小
    Y = [aug(img) for _ in range(num_rows * num_cols)]#把所有的圖片存在Y中
    d2l.show_images(Y, num_rows, num_cols, scale=scale)
#左右翻轉圖像
apply(img, torchvision.transforms.RandomHorizontalFlip())
#上下翻轉圖像
apply(img, torchvision.transforms.RandomVerticalFlip())
#隨機裁剪
#200,200表示在多大的區(qū)域進行,0,1,1表示圖片裁出來的東西要保留多大的原始圖片,從0.1到1隨機選一個數(shù);ratio表示高寬比
shape_aug = torchvision.transforms.RandomResizedCrop((200, 200), scale=(0.1, 1), ratio=(0.5, 2))
apply(img, shape_aug)
#隨機更改圖像的亮度
#分別表示亮度,對比度,飽和度,顏色四個參數(shù)
apply(img,torchvision.transforms.ColorJitter(brightness=0.5, contrast=0,saturation=0, hue=0))
#隨機更改圖像的色調(diào)
apply(img,torchvision.transforms.ColorJitter(brightness=0, contrast=0, saturation=0,hue=0.5))
#隨機更改圖像的亮度(brightness)、對比度(contrast)、飽和度(saturation)和色調(diào)(hue)
color_aug = torchvision.transforms.ColorJitter(brightness=0.5, contrast=0.5,saturation=0.5, hue=0.5)
apply(img, color_aug)
#結合多種圖像增廣方法
#先水平翻轉再顏色、形狀變(組合了)
augs = torchvision.transforms.Compose([torchvision.transforms.RandomHorizontalFlip(), color_aug, shape_aug])
apply(img, augs)
#使用圖像增廣進行訓練
all_images = torchvision.datasets.CIFAR10(train=True, root="../data",download=True)
d2l.show_images([all_images[i][0] for i in range(32)], 4, 8, scale=0.8)
plt.show()
#只使用最簡單的隨機左右翻轉
train_augs = torchvision.transforms.Compose([torchvision.transforms.RandomHorizontalFlip(),torchvision.transforms.ToTensor()])
test_augs = torchvision.transforms.Compose([torchvision.transforms.ToTensor()])
#定義一個輔助函數(shù),以便于讀取圖像和應用圖像增廣
def load_cifar10(is_train, augs, batch_size):
    dataset = torchvision.datasets.CIFAR10(root="../data", train=is_train,transform=augs, download=True)
    dataloader = torch.utils.data.DataLoader(dataset, batch_size=batch_size, shuffle=is_train,num_workers=d2l.get_dataloader_workers())
    return dataloader
#定義一個函數(shù),使用多GPU對模型進行訓練和評估
def train_batch_ch13(net, X, y, loss, trainer, devices):
    if isinstance(X, list):
        X = [x.to(devices[0]) for x in X]
    else:
        X = X.to(devices[0])
    y = y.to(devices[0])
    net.train()
    trainer.zero_grad()
    pred = net(X)
    l = loss(pred, y)
    l.sum().backward()
    trainer.step()
    train_loss_sum = l.sum()
    train_acc_sum = d2l.accuracy(pred, y)
    return train_loss_sum, train_acc_sum
def train_ch13(net, train_iter, test_iter, loss, trainer, num_epochs,devices=d2l.try_all_gpus()):
    timer, num_batches = d2l.Timer(), len(train_iter)
    animator = d2l.Animator(xlabel='epoch', xlim=[1, num_epochs], ylim=[0, 1],legend=['train loss', 'train acc', 'test acc'])
    net = nn.DataParallel(net, device_ids=devices).to(devices[0])
    for epoch in range(num_epochs):
        metric = d2l.Accumulator(4)
        for i, (features, labels) in enumerate(train_iter):
            timer.start()
            l, acc = train_batch_ch13(net, features, labels, loss, trainer,devices)
            metric.add(l, acc, labels.shape[0], labels.numel())
            timer.stop()
            if (i + 1) % (num_batches // 5) == 0 or i == num_batches - 1:
                animator.add(epoch + (i + 1) / num_batches,(metric[0] / metric[2], metric[1] / metric[3], None))
        test_acc = d2l.evaluate_accuracy_gpu(net, test_iter)
        animator.add(epoch + 1, (None, None, test_acc))
    print(f'loss {metric[0] / metric[2]:.3f}, train acc 'f'{metric[1] / metric[3]:.3f}, test acc {test_acc:.3f}')
    print(f'{metric[2] * num_epochs / timer.sum():.1f} examples/sec on ')
#定義 train_with_data_aug 函數(shù),使用圖像增廣來訓練模型
batch_size, devices, net = 256, d2l.try_all_gpus(), d2l.resnet18(10, 3)
def init_weights(m):
    if type(m) in [nn.Linear, nn.Conv2d]:
        nn.init.xavier_uniform_(m.weight)
net.apply(init_weights)
def train_with_data_aug(train_augs, test_augs, net, lr=0.001):
    train_iter = load_cifar10(True, train_augs, batch_size)
    test_iter = load_cifar10(False, test_augs, batch_size)
    loss = nn.CrossEntropyLoss(reduction="none")
    trainer = torch.optim.Adam(net.parameters(), lr=lr)#Adam是平滑的SGD
    train_ch13(net, train_iter, test_iter, loss, trainer, 10, devices)
    plt.show()
#訓練模型
train_with_data_aug(train_augs, test_augs, net)

你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧

當前題目:pytorch深度學習實戰(zhàn)lesson33-創(chuàng)新互聯(lián)
文章起源:http://aaarwkj.com/article30/dijeso.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)、網(wǎng)頁設計公司網(wǎng)站導航、企業(yè)網(wǎng)站制作、建站公司、定制網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站
老女人性生交大片免费| 日韩一区二区三区免费播放| av天堂官网在线人妻| 日本和亚洲的香蕉视频| 久久精品国产亚洲av久一一区| 国产av无毛一区二区三区| 女人的天堂av免费在线观看| 亚洲国产天堂久久综合| 亚洲中文字幕在线乱码| 成人av在线天堂一区二区三区 | 国产传媒网站在线观看| av福利一区二区三区| 七十二式性日韩视频| 久久久人妻精品一区二区三区四区 | 精品熟妇人妻一区二区三区| 国产毛片一区二区在线| 日本欧美中文字幕一区| 欧美亚洲综合激情在线| 91日韩人妻一区二区三区| 日韩在线不卡免费视频一区| 亚洲综合成人av在线| 国产精品久久久久久爽| 婷婷五五月深爱开心激情| 国产 亚洲 一区 二区| 国产91极品尤物白丝美女| 天天操天天干蜜桃av| 国产精品亚洲视频欧美视频| 亚洲成人不卡一区二区三区| 亚洲1区2区中文字幕| 亚洲欧洲国产视频一区二区 | 五月色婷婷六月色丁香| 欧美一区二区三区十区| 丰满人妻毛片一区二区三区| 成人黄网站色大片免费| 亚洲免费av第一区第二区| 欧美日韩av在线一区二区| 青青草原一区在线观看| 亚洲女人淫片在线观看| 色婷婷精品二区久久蜜臀av| 欧美亚洲另类色自拍偷拍| 午夜毛片免费在线播放|