中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

帝國cms怎么做網(wǎng)站谷歌ads

帝國cms怎么做網(wǎng)站,谷歌ads,大美工素材網(wǎng),應(yīng)用開發(fā)工具有哪些PyTorch深度學(xué)習(xí)實戰(zhàn)(23)——從零開始實現(xiàn)SSD目標(biāo)檢測 0. 前言1. SSD 目標(biāo)檢測模型1.1 SSD 網(wǎng)絡(luò)架構(gòu)1.2 利用不同網(wǎng)絡(luò)層執(zhí)行邊界框和類別預(yù)測1.3 不同網(wǎng)絡(luò)層中默認(rèn)框的尺寸和寬高比1.4 數(shù)據(jù)準(zhǔn)備1.5 模型訓(xùn)練 2. 實現(xiàn) SSD 目標(biāo)檢測2.1 SSD300 架構(gòu)2.2 Mul…

PyTorch深度學(xué)習(xí)實戰(zhàn)(23)——從零開始實現(xiàn)SSD目標(biāo)檢測

    • 0. 前言
    • 1. SSD 目標(biāo)檢測模型
      • 1.1 SSD 網(wǎng)絡(luò)架構(gòu)
      • 1.2 利用不同網(wǎng)絡(luò)層執(zhí)行邊界框和類別預(yù)測
      • 1.3 不同網(wǎng)絡(luò)層中默認(rèn)框的尺寸和寬高比
      • 1.4 數(shù)據(jù)準(zhǔn)備
      • 1.5 模型訓(xùn)練
    • 2. 實現(xiàn) SSD 目標(biāo)檢測
      • 2.1 SSD300 架構(gòu)
      • 2.2 MultiBoxLoss
      • 2. 訓(xùn)練 SSD
    • 小結(jié)
    • 系列鏈接

0. 前言

SSD (Single Shot MultiBox Detector) 是一種基于單次前向傳遞的實時目標(biāo)檢測算法,它在速度和準(zhǔn)確性之間取得了很好的平衡。與傳統(tǒng)的兩階段目標(biāo)檢測算法(如 Faster R-CNN )不同,SSD 直接在圖像的多個尺度上進行預(yù)測,無需候選框生成和篩選。SSD 的核心思想是在卷積神經(jīng)網(wǎng)絡(luò)的不同層級上設(shè)置多個特征圖用于預(yù)測目標(biāo)。這些特征圖在空間上具有不同的尺度,可以檢測不同大小的目標(biāo)。每個特征圖上的每個位置都預(yù)測一組邊界框和對應(yīng)的類別概率。在本節(jié)中,將介紹 SSD 的工作原理,然后在自定義數(shù)據(jù)集上訓(xùn)練 SSD 目標(biāo)檢測模型。

1. SSD 目標(biāo)檢測模型

在 R-CNN 和 YOLO 目標(biāo)檢測模型中,通過數(shù)次應(yīng)用卷積和池化預(yù)測目標(biāo)對象類別和邊界框。同時,我們也知道不同的網(wǎng)絡(luò)層對原始圖像具有不同的感受野,初始層相對于最終層具有較小的感受野。在本節(jié)中,我們將學(xué)習(xí) SSD 如何利用這一現(xiàn)象來預(yù)測圖像中目標(biāo)對象的邊界框。
SSD (Single Shot Multibox Detector) 使用了多層感受野的特性來解決多尺度目標(biāo)檢測問題,檢測圖像中不同尺度的目標(biāo)對象,具體來說:

  • 使用額外的網(wǎng)絡(luò)層擴展預(yù)訓(xùn)練的 VGG 網(wǎng)絡(luò),直到獲得 1 x 1 的輸出
  • 與僅使用最終層進行邊界框和類別預(yù)測不同,SSD 利用這些添加的卷積層和池化層檢測大小不同的物體
  • SSD 使用特定比例和縱橫比的默認(rèn)框來代替錨框,并將這些框與不同特征圖中的不同尺寸的目標(biāo)相對應(yīng)
  • YOLO 使用錨框預(yù)測類別和偏移量一樣,SSD 通過對每個默認(rèn)框進行類別和偏移量預(yù)測來輸出目標(biāo)檢測結(jié)果

總體而言,SSDYOLO 的主要區(qū)別包括:SSD 中使用默認(rèn)框 (default box) 替換了 YOLO 中的錨框 (anchor box),并且 SSD 中使用多層特征圖執(zhí)行預(yù)測,而 YOLO 中使用最終特征層。

1.1 SSD 網(wǎng)絡(luò)架構(gòu)

SSD 的網(wǎng)絡(luò)架構(gòu)如下:

SSD 架構(gòu)
如上圖中所示,將一張尺寸為 300 x 300 x 3 的圖像輸入到預(yù)訓(xùn)練的 VGG-16 網(wǎng)絡(luò)獲得 conv5_3 層的輸出,然后,通過在 conv5_3 后追加更多卷積層來擴展網(wǎng)絡(luò)。

1.2 利用不同網(wǎng)絡(luò)層執(zhí)行邊界框和類別預(yù)測

接下來,針對每個單元格和每個默認(rèn)框獲取邊界框偏移量和類別預(yù)測。conv5_3 輸出的預(yù)測總數(shù)為 38 x 38 x 4,其中 38 x 38conv5_3 層的輸出形狀,4 是在 conv5_3 層上的默認(rèn)框數(shù)量。以此類推,整個網(wǎng)絡(luò)的參數(shù)總數(shù)如下:

權(quán)重數(shù)
conv5_338 x 38 x 4 = 5776
FC619 x 19 x 6 = 2166
conv8_210 x 10 x 6 = 600
conv9_25 x 5 x 6 = 150
conv10_23 x 3 x 4 = 36
conv11_21 x 1 x 4 = 4
總計8732

可以看到,每個網(wǎng)絡(luò)層中特征圖網(wǎng)格單元上使用的默認(rèn)框數(shù)量并不相同。

1.3 不同網(wǎng)絡(luò)層中默認(rèn)框的尺寸和寬高比

本節(jié)中,我們學(xué)習(xí)如何確定默認(rèn)框的尺寸和寬高比,首先計算默認(rèn)框尺寸。假設(shè)目標(biāo)對象最小尺寸為圖像高度的 20%、寬度的 20%,最大尺寸為高度的 90%、寬度的 90%。在這種情況下,隨著網(wǎng)絡(luò)層的逐漸增加,圖像大小會顯著縮小:

圖像尺寸
圖像縮放的公式如下:

l e v e l i n d e x : l = 1 , . . . , L s c a l e o f b o x e s : s l = s m i n + s m a x ? s m i n L ? 1 ( l ? 1 ) level\ index:l=1,...,L \\ scale\ of\ boxes:s_l=s_{min}+\frac{s_{max}-s_{min}}{L-1}(l-1) level?index:l=1,...,Lscale?of?boxes:sl?=smin?+L?1smax??smin??(l?1)

了解了如何計算默認(rèn)框在不同網(wǎng)絡(luò)層的尺寸后,我們繼續(xù)學(xué)習(xí)如何確定默認(rèn)框的寬高比,常用的寬高比如下:

a s p e c t r a t i o : r ∈ 1 , 2 , 3 , 1 / 2 , 1 / 3 aspect\ ratio:r∈{1,2,3,1/2,1/3} aspect?ratio:r1,2,3,1/2,1/3

不同網(wǎng)絡(luò)層的默認(rèn)框框的中心坐標(biāo)如下:

c e n t e r l o c a t i o n : ( x l i , y l i ) = ( i + 0.5 m , j + 0.5 n ) center\ location:(x_l^i,y_l^i)=(\frac {i+0.5}{m},\frac{j+0.5}{n}) center?location:(xli?,yli?)=(mi+0.5?,nj+0.5?)

其中,使用 i i i j j j 表示第 l l l 層中的一個單元。

不同寬高比對應(yīng)的寬高計算如下:

w i d t h : w l r = s l r h e i g h t : h l r = s l r width:w_l^r=s_l\sqrt r\\ height:h_l^r=s_l\sqrt r width:wlr?=sl?r ?height:hlr?=sl?r ?

需要注意的是,我們在不同網(wǎng)絡(luò)層使用了不同數(shù)量的默認(rèn)框( 4 個或 6 個),如果想要使用 4 個默認(rèn)框,刪除縱橫比 {3,1/3},否則使用 6 個默認(rèn)框,結(jié)合不同層及其特征圖的比例和長寬比來檢測各種尺寸的對象,第 6 個默認(rèn)框的縱橫比計算方式如下:

a d d i t i o n a l s c a l e : s l ′ = s l s l + 1 w h e n r = 1 additional\ scale:s_l'=\sqrt{s_ls_l+1}\ \ \ \ when\ r=1 additional?scale:sl?=sl?sl?+1 ?????when?r=1

獲得了所有可能的默認(rèn)框后,我們繼續(xù)學(xué)習(xí)如何準(zhǔn)備訓(xùn)練數(shù)據(jù)集。

1.4 數(shù)據(jù)準(zhǔn)備

交并比 (Intersection over Union, IoU) 大于指定閾值(例如 0.5 ) 的默認(rèn)框被視為正匹配,其余為負(fù)匹配。在 SSD 的輸出中,我們預(yù)測默認(rèn)框?qū)儆谀硞€類別(其中第 0 個類別表示背景)的概率,以及默認(rèn)框相對于真實邊界框的偏移量。
最后,我們通過優(yōu)化分類和定位損失值來訓(xùn)練模型。

1.5 模型訓(xùn)練

分類損失:

L c l s = ? ∑ i ∈ p o s l i j k l o g ( c ^ i k ) ? ∑ i ∈ n e g l o g ( c ^ i 0 ) , w h e r e c ^ i k = s o f t m a x ( c i k ) L_{cls}=-\sum_{i∈pos}l_{ij}^klog(\hat c_i^k)-\sum_{i∈neg}log(\hat c_i^0),\ where\ \hat c_i^k\ =\ softmax(c_i^k) Lcls?=?ipos?lijk?log(c^ik?)?ineg?log(c^i0?),?where?c^ik??=?softmax(cik?)

其中,pos 表示與真實邊界框高度重疊的默認(rèn)框,而 neg 表示被錯誤分類的默認(rèn)框(模型預(yù)測這些默認(rèn)框中包含某個類別但實際上沒有包含目標(biāo)對象)。最后,需要確保 pos : neg 比率最多為 1:3,否則會因為背景類別默認(rèn)框過多導(dǎo)致預(yù)測偏差。

定位損失:對于定位,僅在目標(biāo)對象得分大于某個閾值時才計算損失值,定位損失計算如下:

L l o c = ∑ i , j ∑ m ∈ { x , y , w , h } 1 i j m a t c h L 1 s m o o t h ( d m i ? t m j ) 2 L 1 s m o o t h ( x ) = { 0.5 x 2 i f ∣ x ∣ < 1 ∣ x ∣ ? 0.5 o t h e r w i s e t x j = g x i ? p x i p w i t y j = g y i ? p y i p h i t w j = l o g g w i p w i t h j = l o g g h i p h i L_{loc}=\sum_{i,j}\sum_{m∈\{x,y,w,h\}}1_{ij}^{match}L_1^{smooth}(d_m^i-t_m^j)^2\\ L_1^{smooth}(x)=\left\{ \begin{array}{rcl} 0.5x^2 & & {if\ |x|<1}\\ |x|-0.5 & & {otherwise} \end{array} \right.\\ t_x^j=\frac {g_x^i-p_x^i}{p_w^i}\\ t_y^j=\frac {g_y^i-p_y^i}{p_h^i}\\ t_w^j=log\frac {g_w^i}{p_w^i}\\ t_h^j=log\frac {g_h^i}{p_h^i} Lloc?=i,j?m{x,y,w,h}?1ijmatch?L1smooth?(dmi??tmj?)2L1smooth?(x)={0.5x2x?0.5??if?x<1otherwise?txj?=pwi?gxi??pxi??tyj?=phi?gyi??pyi??twj?=logpwi?gwi??thj?=logphi?ghi??

其中, t t t 是預(yù)測的偏移量, d d d 是實際的偏移量。了解了如何訓(xùn)練 SSD 后,在下一節(jié)中,我們將使用 PyTorch 從零開始實現(xiàn) SSD 模型用于公共汽車與卡車目標(biāo)檢測任務(wù)。

2. 實現(xiàn) SSD 目標(biāo)檢測

2.1 SSD300 架構(gòu)

SSD300 模型架構(gòu)包含三個子模塊:

class SSD300(nn.Module):...def __init__(self, n_classes, device):...self.base = VGGBase()self.aux_convs = AuxiliaryConvolutions()self.pred_convs = PredictionConvolutions(n_classes)...

首先將圖片輸入到 VGGBase 主干網(wǎng)絡(luò),返回兩個維度為 (N, 512, 38, 38)(N, 1024, 19, 19) 的特征向量。第二個輸出將作為 AuxiliaryConvolutions 的輸入,并返回維度為 (N, 512, 10, 10)、(N, 256, 5, 5)(N, 256, 3, 3)(N, 256, 1, 1) 的輸出特征圖。最后,將 VGGBase 的第一個輸出和 AuxiliaryConvolutions 的四個輸出特征圖輸入到 PredictionConvolutions,返回 8,732 個默認(rèn)框。
SSD300 類的另一個關(guān)鍵是 create_prior_boxes 方法。對于每個特征圖,都有三個與之相關(guān)的參數(shù):網(wǎng)格大小、網(wǎng)格單元的比例(特征圖的基本默認(rèn)框)以及單元格中所有默認(rèn)框的寬高比。使用這三個配置,代碼使用三重 for 循環(huán)創(chuàng)建一個包含 8732 個默認(rèn)框 (cx, cy, w, h) 的列表。
最后,detect_objects 方法將預(yù)測的默認(rèn)框分類和回歸結(jié)果的張量轉(zhuǎn)換為實際的邊界框坐標(biāo)。

2.2 MultiBoxLoss

對于人類而言,我們只需關(guān)注少數(shù)幾個邊界框。但是對于 SSD 而言,需要比較來自多個特征圖的 8,732 個邊界框,并預(yù)測默認(rèn)框是否包含有價值的信息,使用 MultiBoxLoss 計算模型損失。前向傳播方法 forward 的輸入是模型的默認(rèn)框預(yù)測和真實邊界框。
首先,通過將模型中的每個默認(rèn)框與邊界框進行比較,將真實邊界框轉(zhuǎn)換為一個包含 8732 個默認(rèn)框的列表。如果 IoU 足夠高,那么特定的默認(rèn)框?qū)⒕哂蟹橇愕幕貧w坐標(biāo),并將對象類別作為分類的真實值。然后,計算分類置信度和定位損失,并返回這些損失的總和作為前向傳播的輸出。大多數(shù)默認(rèn)框會被歸類為背景類別,因為它們與真實邊界框的 IoU 非常小(甚至在大多數(shù)情況下為零)。
一旦將真實值轉(zhuǎn)換為包含 8,732 個默認(rèn)框的回歸和分類張量,就可以將它們與模型的預(yù)測進行比較。對回歸張量執(zhí)行 MSE-Loss,對定位張量執(zhí)行 CrossEntropy-Loss,并將它們加起來作為最終損失返回。

2. 訓(xùn)練 SSD

在本節(jié)中,我們將使用 PyTorch 實現(xiàn) SSD 模型來檢測圖像中目標(biāo)對象的邊界框,繼續(xù)使用與 R-CNN 一節(jié)中相同的數(shù)據(jù)集。

(1) 加載圖像數(shù)據(jù)集及所需庫:

from torchvision.ops import nms
import torch
import numpy as np
from torch.utils.data import DataLoader, Dataset
from glob import glob
from matplotlib import pyplot as plt
import pandas as pd
import matplotlib.patches as mpatches
from PIL import Image
from torchvision import transformsdevice = 'cuda' if torch.cuda.is_available() else 'cpu'DATA_ROOT = 'open-images-bus-trucks/'
IMAGE_ROOT = f'{DATA_ROOT}/images'
DF_RAW = df = pd.read_csv('open-images-bus-trucks/df.csv')
print(DF_RAW.head())df = df[df['ImageID'].isin(df['ImageID'].unique().tolist())]
label2target = {l:t+1 for t,l in enumerate(DF_RAW['LabelName'].unique())}
label2target['background'] = 0
target2label = {t:l for l,t in label2target.items()}
background_class = label2target['background']
num_classes = len(label2target)

(2) 預(yù)處理數(shù)據(jù):

normalize = transforms.Normalize(mean=[0.485, 0.456, 0.406],std=[0.229, 0.224, 0.225]
)
denormalize = transforms.Normalize(mean=[-0.485/0.229, -0.456/0.224, -0.406/0.255],std=[1/0.229, 1/0.224, 1/0.255]
)
def preprocess_image(img):img = torch.tensor(img).permute(2,0,1)img = normalize(img)return img.to(device).float()def find(item, original_list):results = []for o_i in original_list:if item in o_i:results.append(o_i)if len(results) == 1:return results[0]else:return results

(3) 定義數(shù)據(jù)集類:

class OpenDataset(torch.utils.data.Dataset):w, h = 300, 300def __init__(self, df, image_dir=IMAGE_ROOT):self.image_dir = image_dirself.files = glob(self.image_dir+'/*')self.df = dfself.image_infos = df.ImageID.unique()def __getitem__(self, ix):# load images and masksimage_id = self.image_infos[ix]img_path = find(image_id, self.files)img = Image.open(img_path).convert("RGB")img = np.array(img.resize((self.w, self.h), resample=Image.BILINEAR))/255.data = df[df['ImageID'] == image_id]labels = data['LabelName'].values.tolist()data = data[['XMin','YMin','XMax','YMax']].valuesdata[:,[0,2]] *= self.wdata[:,[1,3]] *= self.hboxes = data.astype(np.uint32).tolist() # convert to absolute coordinatesreturn img, boxes, labelsdef collate_fn(self, batch):images, boxes, labels = [], [], []for item in batch:img, image_boxes, image_labels = itemimg = preprocess_image(img)[None]images.append(img)boxes.append(torch.tensor(image_boxes).float().to(device)/300.)labels.append(torch.tensor([label2target[c] for c in image_labels]).long().to(device))images = torch.cat(images).to(device)return images, boxes, labelsdef __len__(self):return len(self.image_infos)

(4) 準(zhǔn)備訓(xùn)練和測試數(shù)據(jù)集以及數(shù)據(jù)加載器:

from sklearn.model_selection import train_test_split
trn_ids, val_ids = train_test_split(df.ImageID.unique(), test_size=0.1, random_state=99)
trn_df, val_df = df[df['ImageID'].isin(trn_ids)], df[df['ImageID'].isin(val_ids)]
len(trn_df), len(val_df)train_ds = OpenDataset(trn_df)
test_ds = OpenDataset(val_df)train_loader = DataLoader(train_ds, batch_size=4, collate_fn=train_ds.collate_fn, drop_last=True)
test_loader = DataLoader(test_ds, batch_size=4, collate_fn=test_ds.collate_fn, drop_last=True)

(5) 定義函數(shù)在批數(shù)據(jù)訓(xùn)練模型并計算驗證數(shù)據(jù)的準(zhǔn)確率和損失值:

def train_batch(inputs, model, criterion, optimizer):model.train()N = len(train_loader)images, boxes, labels = inputs_regr, _clss = model(images)loss = criterion(_regr, _clss, boxes, labels)optimizer.zero_grad()loss.backward()optimizer.step()return loss@torch.no_grad()
def validate_batch(inputs, model, criterion):model.eval()images, boxes, labels = inputs_regr, _clss = model(images)loss = criterion(_regr, _clss, boxes, labels)return loss

(6) 初始化模型(模型文件參考 ssd-utils)、優(yōu)化器和損失函數(shù):

from model import SSD300, MultiBoxLoss
from detect import *model = SSD300(num_classes, device)
optimizer = torch.optim.AdamW(model.parameters(), lr=1e-4, weight_decay=1e-5)
criterion = MultiBoxLoss(priors_cxcy=model.priors_cxcy, device=device)

(7) 訓(xùn)練 SSD 模型:

train_loss_epochs = []
val_loss_epochs = []for epoch in range(n_epochs):_n = len(train_loader)trn_loss = []val_loss = []for ix, inputs in enumerate(train_loader):loss = train_batch(inputs, model, criterion, optimizer)pos = (epoch + (ix+1)/_n)trn_loss.append(loss.item())train_loss_epochs.append(np.average(trn_loss))_n = len(test_loader)for ix,inputs in enumerate(test_loader):loss = validate_batch(inputs, model, criterion)pos = (epoch + (ix+1)/_n)val_loss.append(loss.item())
val_loss_epochs.append(np.average(val_loss))epochs = np.arange(n_epochs)+1
plt.plot(epochs, train_loss_epochs, 'bo', label='Training loss')
plt.plot(epochs, val_loss_epochs, 'r', label='Test loss')
plt.title('Training and Test loss over increasing epochs')
plt.xlabel('Epochs')
plt.ylabel('Loss')
plt.legend()
plt.grid('off')
plt.show()

訓(xùn)練和測試損失值隨時間的變化情況如下:

損失變化
(8) 對測試圖像執(zhí)行預(yù)測。

加載測試圖像:

def show_bbs(im, bbs, clss):fig, ax = plt.subplots(ncols=2, nrows=1, figsize=(6, 6))ax[0].imshow(im)ax[0].grid(False)ax[0].set_title('Original image')if len(bbs) == 0:ax[1].imshow(im)ax[1].set_title('No objects')plt.show()returnax[1].imshow(im)for ix, (xmin, ymin, xmax, ymax) in enumerate(bbs):rect = mpatches.Rectangle((xmin, ymin), xmax-xmin, ymax-ymin, fill=False, edgecolor='red', linewidth=1)ax[1].add_patch(rect)centerx = xmin # + new_w/2centery = ymin + 20# + new_h - 10plt.text(centerx, centery, clss[ix].replace('@', ''),fontsize = 10,color='red')ax[1].grid(False)ax[1].set_title('Predicted bounding box and class')plt.show()from random import choice
image_paths = glob.glob(f'{DATA_ROOT}/images/*')
image_id = choice(test_ds.image_infos)
print(image_id)
img_path = find(image_id, test_ds.files)
original_image = Image.open(img_path, mode='r')
original_image = original_image.convert('RGB')

獲取與圖像中的目標(biāo)對象對應(yīng)的邊界框、標(biāo)簽和置信度分?jǐn)?shù):

image_paths = glob.glob(f'{DATA_ROOT}/images/*')
for _ in range(20):image_id = choice(test_ds.image_infos)img_path = find(image_id, test_ds.files)original_image = Image.open(img_path, mode='r')bbs, labels, scores = detect(original_image, model, min_score=0.9, max_overlap=0.5,top_k=200, device=device)labels = [target2label[c.item()] for c in labels]label_with_conf = [f'{l} @ {s:.2f}' for l,s in zip(labels,scores)]print(bbs, label_with_conf)

在圖像上繪制輸出結(jié)果:

    show_bbs(original_image, bbs=bbs, clss=label_with_conf)#, text_sz=10)

目標(biāo)檢測結(jié)果

小結(jié)

SSD 使用基礎(chǔ)網(wǎng)絡(luò)(如 VGG16ResNet )提取圖像特征,然后,通過添加額外的卷積層和特征圖金字塔來獲取不同尺度的特征圖。每個特征圖單元預(yù)測固定數(shù)量的邊界框,并預(yù)測每個邊界框?qū)儆诓煌悇e的概率。為了提高檢測的準(zhǔn)確性,SSD 還引入了不同大小的默認(rèn)框,用于與預(yù)測的邊界框進行匹配。本文首先介紹了 SSD 模型的核心思想與目標(biāo)檢測流程,然后使用 PyTorch 從零開始實現(xiàn)了一個基于 SSD 的目標(biāo)檢測模型。

系列鏈接

PyTorch深度學(xué)習(xí)實戰(zhàn)(1)——神經(jīng)網(wǎng)絡(luò)與模型訓(xùn)練過程詳解
PyTorch深度學(xué)習(xí)實戰(zhàn)(2)——PyTorch基礎(chǔ)
PyTorch深度學(xué)習(xí)實戰(zhàn)(3)——使用PyTorch構(gòu)建神經(jīng)網(wǎng)絡(luò)
PyTorch深度學(xué)習(xí)實戰(zhàn)(4)——常用激活函數(shù)和損失函數(shù)詳解
PyTorch深度學(xué)習(xí)實戰(zhàn)(5)——計算機視覺基礎(chǔ)
PyTorch深度學(xué)習(xí)實戰(zhàn)(6)——神經(jīng)網(wǎng)絡(luò)性能優(yōu)化技術(shù)
PyTorch深度學(xué)習(xí)實戰(zhàn)(7)——批大小對神經(jīng)網(wǎng)絡(luò)訓(xùn)練的影響
PyTorch深度學(xué)習(xí)實戰(zhàn)(8)——批歸一化
PyTorch深度學(xué)習(xí)實戰(zhàn)(9)——學(xué)習(xí)率優(yōu)化
PyTorch深度學(xué)習(xí)實戰(zhàn)(10)——過擬合及其解決方法
PyTorch深度學(xué)習(xí)實戰(zhàn)(11)——卷積神經(jīng)網(wǎng)絡(luò)
PyTorch深度學(xué)習(xí)實戰(zhàn)(12)——數(shù)據(jù)增強
PyTorch深度學(xué)習(xí)實戰(zhàn)(13)——可視化神經(jīng)網(wǎng)絡(luò)中間層輸出
PyTorch深度學(xué)習(xí)實戰(zhàn)(14)——類激活圖
PyTorch深度學(xué)習(xí)實戰(zhàn)(15)——遷移學(xué)習(xí)
PyTorch深度學(xué)習(xí)實戰(zhàn)(16)——面部關(guān)鍵點檢測
PyTorch深度學(xué)習(xí)實戰(zhàn)(17)——多任務(wù)學(xué)習(xí)
PyTorch深度學(xué)習(xí)實戰(zhàn)(18)——目標(biāo)檢測基礎(chǔ)
PyTorch深度學(xué)習(xí)實戰(zhàn)(19)——從零開始實現(xiàn)R-CNN目標(biāo)檢測
PyTorch深度學(xué)習(xí)實戰(zhàn)(20)——從零開始實現(xiàn)Fast R-CNN目標(biāo)檢測
PyTorch深度學(xué)習(xí)實戰(zhàn)(21)——從零開始實現(xiàn)Faster R-CNN目標(biāo)檢測
PyTorch深度學(xué)習(xí)實戰(zhàn)(22)——從零開始實現(xiàn)YOLO目標(biāo)檢測
PyTorch深度學(xué)習(xí)實戰(zhàn)(23)——使用U-Net架構(gòu)進行圖像分割
PyTorch深度學(xué)習(xí)實戰(zhàn)(24)——從零開始實現(xiàn)Mask R-CNN實例分割
PyTorch深度學(xué)習(xí)實戰(zhàn)(25)——自編碼器(Autoencoder)
PyTorch深度學(xué)習(xí)實戰(zhàn)(26)——卷積自編碼器(Convolutional Autoencoder)
PyTorch深度學(xué)習(xí)實戰(zhàn)(27)——變分自編碼器(Variational Autoencoder, VAE)
PyTorch深度學(xué)習(xí)實戰(zhàn)(28)——對抗攻擊(Adversarial Attack)
PyTorch深度學(xué)習(xí)實戰(zhàn)(29)——神經(jīng)風(fēng)格遷移
PyTorch深度學(xué)習(xí)實戰(zhàn)(30)——Deepfakes
PyTorch深度學(xué)習(xí)實戰(zhàn)(31)——生成對抗網(wǎng)絡(luò)(Generative Adversarial Network, GAN)
PyTorch深度學(xué)習(xí)實戰(zhàn)(32)——DCGAN詳解與實現(xiàn)
PyTorch深度學(xué)習(xí)實戰(zhàn)(33)——條件生成對抗網(wǎng)絡(luò)(Conditional Generative Adversarial Network, CGAN)
PyTorch深度學(xué)習(xí)實戰(zhàn)(34)——Pix2Pix詳解與實現(xiàn)

http://m.risenshineclean.com/news/66206.html

相關(guān)文章:

  • 電腦哪里做模板下載網(wǎng)站查找關(guān)鍵詞的工具叫什么
  • 德陽市住房和城鄉(xiāng)建設(shè)局網(wǎng)站首頁網(wǎng)站推廣上首頁
  • 做網(wǎng)站的不給源文件搜索引擎網(wǎng)站
  • 網(wǎng)站備案到公司搜狗搜索網(wǎng)
  • wordpress將用戶鎖在前臺seo如何優(yōu)化網(wǎng)站
  • 網(wǎng)站建設(shè)需求分析報告seo搜索引擎優(yōu)化推廣專員
  • 淘客網(wǎng)站模版泉州seo培訓(xùn)
  • 哪個網(wǎng)站可以做信用社的題百度宣傳廣告要多少錢
  • 網(wǎng)站建設(shè)所需知識網(wǎng)絡(luò)推廣軟文怎么寫
  • 58同城做網(wǎng)站要錢嗎南京網(wǎng)絡(luò)優(yōu)化培訓(xùn)
  • 門戶網(wǎng)站建設(shè)自查整改怎么根據(jù)視頻鏈接找到網(wǎng)址
  • 網(wǎng)站注冊怎么做北京seo排名優(yōu)化網(wǎng)站
  • 唐山市住房和城鄉(xiāng)建設(shè)局門戶網(wǎng)站如何讓百度收錄
  • 兩學(xué)一做網(wǎng)站答題網(wǎng)址長春最專業(yè)的seo公司
  • 商城網(wǎng)站源碼大全愛站工具seo綜合查詢
  • 中國建設(shè)銀行網(wǎng)站荊門網(wǎng)點查詢推推蛙品牌策劃
  • 2007年怎么做網(wǎng)站網(wǎng)絡(luò)推廣營銷策劃方案
  • 網(wǎng)站設(shè)計公司種類推薦一個seo優(yōu)化軟件
  • 蘇州有什么好玩的東莞百度搜索優(yōu)化
  • 有不收費的網(wǎng)站seo引擎優(yōu)化培訓(xùn)
  • 哪個網(wǎng)站教做ppt怎么做業(yè)務(wù)推廣技巧
  • jsp servlet 網(wǎng)站實例東莞網(wǎng)絡(luò)公司電話
  • 蚌埠做網(wǎng)站建設(shè)費用營銷推廣計劃書
  • 怎樣用網(wǎng)站做單筆外貿(mào)網(wǎng)站優(yōu)化公司
  • 龍巖網(wǎng)站設(shè)計找哪家好網(wǎng)址大全實用網(wǎng)址
  • 導(dǎo)購網(wǎng)站如何做淘寶客百度指數(shù)網(wǎng)頁版
  • 建設(shè)禮品網(wǎng)站的策劃書sem推廣什么意思
  • 限制網(wǎng)站訪問ip臺州網(wǎng)站建設(shè)方案推廣
  • 繁體中文網(wǎng)站 怎么做推文關(guān)鍵詞生成器
  • b2c商城網(wǎng)站營銷方案百度做網(wǎng)站