精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

使用PyTorch進行知識蒸餾的代碼示例

人工智能 機器學習
隨著機器學習模型的復雜性和能力不斷增加。提高大型復雜模型在小數據集性能的一種有效技術是知識蒸餾,它包括訓練一個更小、更有效的模型來模仿一個更大的“教師”模型的行為。

隨著機器學習模型的復雜性和能力不斷增加。提高大型復雜模型在小數據集性能的一種有效技術是知識蒸餾,它包括訓練一個更小、更有效的模型來模仿一個更大的“教師”模型的行為。

在本文中,我們將探索知識蒸餾的概念,以及如何在PyTorch中實現它。我們將看到如何使用它將一個龐大、笨重的模型壓縮成一個更小、更高效的模型,并且仍然保留原始模型的準確性和性能。

我們首先定義知識蒸餾要解決的問題。

我們訓練了一個大型深度神經網絡來執行復雜的任務,比如圖像分類或機器翻譯。這個模型可能有數千層和數百萬個參數,這使得它很難部署在現實應用程序、邊緣設備等中。并且這個超大的模型還需要大量的計算資源來運行,這使得它在一些資源受限的平臺上無法工作。

解決這個問題的一種方法是使用知識蒸餾將大模型壓縮成較小的模型。這個過程包括訓練一個較小的模型來模仿給定任務中大型模型的行為。

我們將使用來自Kaggle的胸部x光數據集進行肺炎分類來進行知識蒸餾的示例。我們使用的數據集被組織成3個文件夾(train, test, val),并包含每個圖像類別的子文件夾(Pneumonia/Normal)。共有5,863張x射線圖像(JPEG)和2個類別(肺炎/正常)。

比較一下這兩個類的圖片:

圖片

數據的加載和預處理與我們是否使用知識蒸餾或特定模型無關,代碼片段可能如下所示:

transforms_train = transforms.Compose([
transforms.Resize((224, 224)),
transforms.RandomHorizontalFlip(),
transforms.ToTensor(),
transforms.Normalize([0.485, 0.456, 0.406],
[0.229, 0.224, 0.225])])

transforms_test = transforms.Compose([
transforms.Resize((224, 224)),
transforms.ToTensor(),
transforms.Normalize([0.485, 0.456, 0.406],
[0.229, 0.224, 0.225])])

train_data = ImageFolder(root=train_dir, transform=transforms_train)
test_data = ImageFolder(root=test_dir, transform=transforms_test)

train_loader = DataLoader(train_data, batch_size=32, shuffle=True)
test_loader = DataLoader(test_data, batch_size=32, shuffle=True)

教師模型

在這個背景中教師模型我們使用Resnet-18并且在這個數據集上進行了微調。

import torch
import torch.nn as nn
import torchvision

class TeacherNet(nn.Module):
def __init__(self):
super().__init__()
self.model = torchvision.models.resnet18(pretrained=True)
for params in self.model.parameters():
params.requires_grad_ = False

n_filters = self.model.fc.in_features
self.model.fc = nn.Linear(n_filters, 2)

def forward(self, x):
x = self.model(x)
return x

微調訓練的代碼如下

 def train(model, train_loader, test_loader, optimizer, criterion, device):
dataloaders = {'train': train_loader, 'val': test_loader}

for epoch in range(30):
print('Epoch {}/{}'.format(epoch, num_epochs - 1))
print('-' * 10)

for phase in ['train', 'val']:
if phase == 'train':
model.train()
else:
model.eval()

running_loss = 0.0
running_corrects = 0

for inputs, labels in tqdm.tqdm(dataloaders[phase]):
inputs = inputs.to(device)
labels = labels.to(device)

optimizer.zero_grad()

with torch.set_grad_enabled(phase == 'train'):
outputs = model(inputs)
loss = criterion(outputs, labels)

_, preds = torch.max(outputs, 1)

if phase == 'train':
loss.backward()
optimizer.step()

running_loss += loss.item() * inputs.size(0)
running_corrects += torch.sum(preds == labels.data)

epoch_loss = running_loss / len(dataloaders[phase].dataset)
epoch_acc = running_corrects.double() / len(dataloaders[phase].dataset)

print('{} Loss: {:.4f} Acc: {:.4f}'.format(phase, epoch_loss, epoch_acc))

這是一個標準的微調訓練步驟,訓練后我們可以看到該模型在測試集上達到了91%的準確性,這也就是我們沒有選擇更大模型的原因,因為作為測試91的準確率已經足夠作為基類模型來使用了。

我們知道模型有1170萬個參數,因此不一定能夠適應邊緣設備或其他特定場景。

學生模型

我們的學生是一個更淺的CNN,只有幾層和大約100k個參數。

class StudentNet(nn.Module):
def __init__(self):
super().__init__()
self.layer1 = nn.Sequential(
nn.Conv2d(3, 4, kernel_size=3, padding=1),
nn.BatchNorm2d(4),
nn.ReLU(),
nn.MaxPool2d(kernel_size=2, stride=2)
)
self.fc = nn.Linear(4 * 112 * 112, 2)

def forward(self, x):
out = self.layer1(x)
out = out.view(out.size(0), -1)
out = self.fc(out)
return out

看代碼就非常的簡單,對吧。

如果我可以簡單地訓練這個更小的神經網絡,我為什么還要費心進行知識蒸餾呢?我們最后會附上我們通過超參數調整等手段從頭訓練這個網絡的結果最為對比。

但是現在我們繼續我們的知識蒸餾的步驟

知識蒸餾訓練

訓練的基本步驟是不變的,但是區別是如何計算最終的訓練損失,我們將使用教師模型損失,學生模型的損失和蒸餾損失一起來計算最終的損失。

class DistillationLoss:
def __init__(self):
self.student_loss = nn.CrossEntropyLoss()
self.distillation_loss = nn.KLDivLoss()
self.temperature = 1
self.alpha = 0.25

def __call__(self, student_logits, student_target_loss, teacher_logits):
distillation_loss = self.distillation_loss(F.log_softmax(student_logits / self.temperature, dim=1),
F.softmax(teacher_logits / self.temperature, dim=1))

loss = (1 - self.alpha) * student_target_loss + self.alpha * distillation_loss
return loss

損失函數是下面兩個東西的加權和:

  • 分類損失,稱為student_target_loss
  • 蒸餾損失,學生對數和教師對數之間的交叉熵損失

圖片

簡單的講,我們的教師模型需要教導學生如何“思考”的,這就是指的是它的不確定性;例如,如果教師模型的最終輸出概率是[0.53,0.47],我們希望學生也得到同樣類似結果,這些預測之間的差異就是蒸餾損失。

為了控制損失,還有有兩個主要參數:

  • 蒸餾損失的權重:0意味著我們只考慮蒸餾損失,反之亦然。
  • 溫度:衡量教師預測的不確定性。

在上面的要點中,alpha和temperature的值都是根據我們嘗試過一些組合得到的最佳結果的值。

結果對比

這是這個實驗的表格摘要。

圖片

我們可以清楚地看到使用更小(99.14%),更淺的CNN所獲得的巨大好處:與無蒸餾訓練相比,準確率提升了10點,并且比Resnet-18快11倍!也就是說,我們的小模型真的從大模型中學到了有用的東西。


責任編輯:華軒 來源: DeepHub IMBA
相關推薦

2023-10-20 16:14:43

2024-01-30 01:12:37

自然語言時間序列預測Pytorch

2023-05-05 00:16:08

深度學習圖像分割Pytorch

2023-02-19 15:26:51

深度學習數據集

2025-02-27 10:41:53

2023-08-15 16:20:42

Pandas數據分析

2020-05-14 10:00:06

Python數據技術

2022-10-30 15:00:40

小樣本學習數據集機器學習

2024-07-19 08:00:00

深度學習知識蒸餾

2011-08-23 15:32:43

Oracle rege正則表達式

2024-07-17 11:46:10

2024-12-02 01:10:04

神經網絡自然語言DNN

2023-06-06 15:42:13

Optuna開源

2009-11-13 14:22:11

ADO.NET Dat

2024-01-25 10:19:10

2024-11-04 14:42:12

2024-06-11 00:00:01

用ReactGraphQLCRUD

2025-10-30 02:25:00

大型語言模型CoD注入蒸餾

2024-12-04 09:15:00

AI模型

2021-03-19 17:59:30

深度學習音頻程序
點贊
收藏

51CTO技術棧公眾號

国产成人精品一区二| 亚洲网站免费| 国产伦精品一区二区三区免费优势| 一本加勒比北条麻妃| 精品国产欧美一区二区三区成人| 日本一区二区高清视频| 中文字幕一区二区三区四区视频 | 国产成人无码精品亚洲| 国产成人澳门| 欧美色图在线观看| 成人免费在线网| 国产专区在线播放| 国产裸体歌舞团一区二区| 色综合色综合久久综合频道88| 日韩成人av一区二区| 激情小说亚洲| 欧美日韩综合视频| 最新av网址在线观看| 精品乱码一区二区三四区视频 | 91久久大香伊蕉在人线| 精品人妻一区二区色欲产成人| 一区二区电影| 尤物九九久久国产精品的特点 | 国产日本一区二区| 97人人模人人爽人人少妇| 波多野结衣av无码| 中文亚洲字幕| 欧美高清电影在线看| 天天色天天综合| 国产精品午夜一区二区三区| 欧美精品一区二区三区四区| 一个色综合久久| 午夜精品成人av| 欧美性极品xxxx娇小| a级黄色小视频| 黄色成人在线| 中文字幕一区二区三中文字幕| 麻豆精品视频| 五月婷婷丁香花| 丁香六月久久综合狠狠色| 91久久久久久| 国产有码在线观看| 毛片av中文字幕一区二区| 亲子乱一区二区三区电影| 国产主播在线播放| 中文日本在线观看| 99精品国自产在线| 欧美色视频日本版| 国产精品久久中文字幕| 成人性生交大片免费看网站| 亚洲精品高清在线观看| 看一级黄色录像| aa在线视频| 亚洲自拍另类综合| 99久久久精品视频| 丁香花电影在线观看完整版| 亚洲一区二区三区四区在线 | 欧美激情视频一区二区三区在线播放 | 黄色一级免费大片| 深夜成人影院| 欧美午夜不卡在线观看免费| 国产xxxxx视频| 国产精品高清乱码在线观看| 91久久国产最好的精华液| 成人黄色一区二区| 九九久久国产| 欧美一区二区网站| 五月天丁香社区| 卡通动漫精品一区二区三区| 精品亚洲一区二区三区在线播放| 黄色工厂在线观看| re久久精品视频| 日韩视频永久免费观看| jizz亚洲少妇| 丁香花在线影院| 欧美成人精品午夜一区二区| 欧美日韩精品三区| 日韩欧美中文在线视频| 九九99久久精品在免费线bt| 精品久久久久久无| 亚洲国产欧美视频| 日本不卡免费一区| 欧美黑人国产人伦爽爽爽| 日韩欧美亚洲视频| 日韩电影免费在线观看网站| 国产美女精品视频免费观看| 国内老熟妇对白xxxxhd| av一二三不卡影片| 五月天亚洲综合小说网| 日皮视频在线观看| 色婷婷av一区二区三区之一色屋| 在线视频观看一区二区| 久久婷婷国产| 日韩中文娱乐网| 日本五十路女优| 中文字幕一区日韩精品| 亚洲国产精品福利| 91麻豆制片厂| 亚洲国产专区校园欧美| 国产精品视频地址| 人妻精品一区一区三区蜜桃91| 久久久久高清精品| 免费观看国产视频在线| 中文字幕在线直播| 日韩欧美亚洲国产精品字幕久久久| 成人免费无码大片a毛片| 欧美日一区二区| 欧美激情精品在线| 伊人免费在线观看高清版| 成人视屏免费看| 亚洲成人在线视频网站| 不卡专区在线| 91精品国产福利在线观看| 国产精品毛片一区二区| 国产精品激情电影| 国产日韩精品一区二区| 天堂影院在线| 亚洲一区在线看| 中文字幕 欧美日韩| 久久av免费| 久久琪琪电影院| 欧洲亚洲一区二区三区四区五区| 最近日韩免费视频| va亚洲va日韩不卡在线观看| 中文字幕剧情在线观看一区| 超碰一区二区| 亚洲黄色www| 免费人成视频在线| 精品无人码麻豆乱码1区2区| 日本不卡免费新一二三区| 2001个疯子在线观看| 欧美高清视频一二三区| 亚洲一二三精品| 麻豆9191精品国产| 国内精品**久久毛片app| 成人免费网址| 欧美一区二区视频免费观看| 无码人中文字幕| 日本网站在线观看一区二区三区 | 久久久之久亚州精品露出| 国产精品热久久| 中文字幕一区二区在线观看| 亚洲这里只有精品| 清纯唯美综合亚洲| 国产精品人人做人人爽| 岛国视频免费在线观看| 色网站国产精品| 精品人伦一区二区| 男人的天堂亚洲一区| 日韩中文不卡| 成人a在线观看高清电影| 亚洲天堂影视av| 波多野结衣高清在线| 欧美国产97人人爽人人喊| 97公开免费视频| 日韩欧美一区二区三区在线视频 | 欧美激情一区三区| 国产成人手机视频| 日韩一区电影| 999精品在线观看| heyzo在线欧美播放| 亚洲第一av网| 精品久久久久久久久久久久久久久久| 久久久久综合网| 国产超碰在线播放| 国产无遮挡裸体视频在线观看| 午夜视频一区| 国产日韩欧美在线| 成人欧美在线| 亚洲激情视频网站| 日本一区二区免费电影| 久久精子c满五个校花| 天天干天天操天天玩| 亚洲电影影音先锋| 国产日韩欧美一区二区| 中文字幕人成乱码在线观看 | 欧美做受xxxxxⅹ性视频| 久久亚洲图片| 国产又粗又爽又黄的视频| 天堂精品在线视频| 欧美最猛性xxxxx(亚洲精品)| 成在在线免费视频| 日韩欧美资源站| 九九九在线观看| 国产精品成人在线观看| wwwww在线观看| 99在线精品视频在线观看| 日韩中文一区| av日韩精品| 国产精品免费小视频| 午夜影院免费在线| 国产一区二区三区网站| 国产高潮在线观看| 色悠悠亚洲一区二区| 免费在线观看h片| 久久综合狠狠综合久久综合88| 色啦啦av综合| 免费在线欧美黄色| 日日噜噜夜夜狠狠久久丁香五月 | 亚洲国产精品电影| 一级特黄aa大片| 欧美日韩精品在线播放| 疯狂撞击丝袜人妻| 久久你懂得1024| 亚洲911精品成人18网站| 日韩福利电影在线| 日韩黄色短视频| 久久久久午夜电影| 秋霞久久久久久一区二区| 欧美影院在线| 国产精品视频999| 最新中文字幕在线播放| 精品少妇v888av| 亚洲免费视频一区二区三区| 亚洲视频一区二区在线| 亚洲最大免费视频| 国产在线视频不卡二| 日本精品久久久久中文字幕| 你懂的亚洲视频| 亚洲欧洲一区二区| 美女久久久久| 国产日韩一区二区三区| 成人短视频软件网站大全app| 欧美在线影院在线视频| 免费网站在线观看人| 日韩在线播放av| 国产高清视频在线| 日韩精品在线影院| 日韩一区二区三区在线观看视频| 3d动漫精品啪啪1区2区免费| 亚洲av无码精品一区二区| 午夜久久久影院| 久久一二三四区| 亚洲乱码国产乱码精品精98午夜| 亚洲高潮女人毛茸茸| 久久综合网色—综合色88| 国产精九九网站漫画| 国产精品一区二区无线| 五月天开心婷婷| 麻豆91精品视频| 少妇网站在线观看| 日本欧美在线观看| 成人羞羞国产免费网站| 免费亚洲一区| 午夜欧美福利视频| 久久精品欧洲| 青青在线视频免费| 日本免费新一区视频| 黄在线观看网站| 日韩av一区二区在线影视| 欧美精品色婷婷五月综合| 亚洲欧美日本国产专区一区| 亚洲一区二区三区av无码| 亚洲一级黄色| 国产极品在线视频| 亚洲一区二区三区免费在线观看 | 可以直接看的黄色网址| 亚洲欧美日韩中文字幕一区二区三区 | 男男gay无套免费视频欧美| 欧美日韩精品中文字幕一区二区| 女厕嘘嘘一区二区在线播放| 品久久久久久久久久96高清| 国产欧美一区二区三区精品观看| 日本a级片久久久| 国产精品99久久| 毛片在线视频观看| 亚洲高清av| 日韩欧美xxxx| 久久99精品久久久久久动态图| www激情五月| av亚洲精华国产精华| 中国毛片在线观看| 国产精品区一区二区三区| 老熟妇高潮一区二区三区| 一卡二卡欧美日韩| 一级片中文字幕| 欧美午夜一区二区| 亚洲AV午夜精品| 亚洲美女精品成人在线视频| 91美女视频在线| 色综合老司机第九色激情| 伊人色综合一区二区三区影院视频| 国产精品成人国产乱一区 | 蜜桃av.com| 亚洲高清免费观看高清完整版在线观看| 精品成人久久久| 欧美日韩亚州综合| 蜜桃在线一区二区| 一区二区三区黄色| 不卡av免费观看| 国产精品美女主播在线观看纯欲| 日韩在线观看一区二区三区| 久久伦理网站| 欧美a级一区| 国产成人精品视频ⅴa片软件竹菊| 国产综合成人久久大片91| 插我舔内射18免费视频| 国产精品美女久久久久aⅴ| 久久综合久久鬼| 欧美亚洲日本一区| 人妻无码一区二区三区久久99 | 国产精品一区二区av| 狠狠做六月爱婷婷综合aⅴ | 美女黄毛**国产精品啪啪| 国产精品久久观看| 日本一本二本在线观看| 国产毛片精品一区| 中文字幕伦理片| 精品国产91久久久| 99久久亚洲精品日本无码| 亚洲裸体xxxx| av手机免费在线观看| 91欧美激情另类亚洲| 日本三级中文字幕| 日韩中文在线| 欧美日韩一区二区在线| 欧美日韩一区二区视频在线| 国产中文字幕免费| 中文字幕一区二区三区不卡| 好吊操这里只有精品| 91精品国产一区二区人妖| 成人在线观看网站| 51精品国产黑色丝袜高跟鞋| 午夜视频在线观看精品中文| 亚洲精品中文字幕在线| 久久一区视频| 免费中文字幕av| 亚洲二区在线视频| 国产极品久久久| 久久夜色精品国产亚洲aⅴ| 成人在线免费| 日韩av在线电影观看| 久久av在线| 动漫精品一区二区三区| 婷婷亚洲久悠悠色悠在线播放| 亚洲风情第一页| 国产精品男女| 久久av一区二区三区漫画| 欧美激情综合| 一区二区三区人妻| 亚洲色图欧洲色图| 97精品人妻一区二区三区| 中文字幕一区二区精品| 成人全视频免费观看在线看| 日本一区二区三区视频在线观看| 久久精品二区三区| 日韩一级av毛片| 在线亚洲一区二区| sese一区| 成人福利视频在线观看| 欧美国产一级| 亚洲小视频网站| ...xxx性欧美| 99精品在线视频观看| 九九热这里只有精品免费看| 日本一区二区三区电影免费观看| 亚洲色婷婷久久精品av蜜桃| 国产精品亚洲成人| 久久久.www| 亚洲国产小视频| 成人直播视频| 午夜精品一区二区三区在线观看| 日韩不卡在线观看日韩不卡视频| 女人十八毛片嫩草av| 欧美日本高清视频在线观看| 欧美激情午夜| 99影视tv| 免费视频一区二区三区在线观看| 成年人免费观看视频网站| 欧美日韩另类一区| www红色一片_亚洲成a人片在线观看_| 91亚色免费| 亚洲一区二区三区高清不卡| 中文字幕人妻一区二区三区在线视频| 欧美三级日韩三级国产三级| 超碰人人在线| 久久一区二区精品| 免费欧美在线视频| 黄色一级片在线| 亚洲欧美中文字幕在线一区| 青草综合视频| 日韩中字在线观看| 亚洲国产高清不卡| 亚洲高清视频在线播放| 欧美亚洲伦理www| 欧美gvvideo网站| 在线播放av网址| 色久优优欧美色久优优| 亚洲区欧洲区| 日本10禁啪啪无遮挡免费一区二区| 狠狠色丁香九九婷婷综合五月| 久久久美女视频| 中文字幕在线观看日韩| jizz性欧美23| 五月婷婷丁香色| 五月天亚洲婷婷| 国产精品扒开做爽爽爽的视频| 欧美激情精品久久久久久免费印度 | 91嫩草视频在线观看| 午夜精品久久久久99热蜜桃导演 |