0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何使用NVIDIA DALI實現(xiàn)和使用GPU加速自動增強(qiáng)來訓(xùn)練

jf_pJlTbmA9 ? 來源:NVIDIA ? 作者:NVIDIA ? 2023-07-05 16:30 ? 次閱讀

深度學(xué)習(xí)模型需要數(shù)百 GB 的數(shù)據(jù)才能在看不見的樣本上很好地泛化。數(shù)據(jù)擴(kuò)充有助于增加數(shù)據(jù)集中示例的可變性。

傳統(tǒng)的數(shù)據(jù)擴(kuò)充方法可以追溯到統(tǒng)計學(xué)習(xí),當(dāng)時擴(kuò)充的選擇依賴于建立模型訓(xùn)練的工程師的領(lǐng)域知識、技能和直覺。

自動增強(qiáng)出現(xiàn)了減少對手動數(shù)據(jù)預(yù)處理的依賴。它結(jié)合了應(yīng)用自動調(diào)整和根據(jù)概率分布隨機(jī)選擇增強(qiáng)的思想。

事實證明,使用 AutoAugment 和 RandAugment 等自動數(shù)據(jù)增強(qiáng)方法可以通過使模型在訓(xùn)練中看到的樣本多樣化來提高模型的準(zhǔn)確性。自動擴(kuò)充使數(shù)據(jù)預(yù)處理更加復(fù)雜,因為一批中的每個樣本都可以用不同的隨機(jī)擴(kuò)充進(jìn)行處理。

在這篇文章中,我們介紹了如何使用 NVIDIA DALI 實現(xiàn)和使用 GPU 加速自動增強(qiáng)來訓(xùn)練,然后使用條件執(zhí)行。

自動數(shù)據(jù)擴(kuò)充方法

自動增強(qiáng)是基于標(biāo)準(zhǔn)的圖像變換,如旋轉(zhuǎn)、剪切、模糊或亮度調(diào)整。大多數(shù)操作都接受一個稱為幅值的控制參數(shù)。幅度越大,操作對圖像的影響就越大。

傳統(tǒng)上,擴(kuò)充策略是由工程師手工編寫的固定操作序列。自動增強(qiáng)策略與傳統(tǒng)策略的區(qū)別在于,增強(qiáng)和參數(shù)的選擇不是固定的,而是概率的。

AutoAugment采用強(qiáng)化學(xué)習(xí)從數(shù)據(jù)中學(xué)習(xí)最佳概率增強(qiáng)策略,將目標(biāo)模型的泛化視為獎勵信號。使用 AutoAugment ,我們發(fā)現(xiàn)了圖像數(shù)據(jù)集的新策略,例如ImageNet,CIFAR-10和SVHN,超過了最先進(jìn)的精度。

AutoAugment 策略是一組增強(qiáng)對。每個增強(qiáng)都用應(yīng)用或跳過操作的幅度和概率進(jìn)行參數(shù)化。運行策略時,隨機(jī)選擇并應(yīng)用其中一對,獨立于每個樣本。

學(xué)習(xí)策略意味著搜索最佳的增強(qiáng)對、它們的大小和概率。在策略搜索過程中,必須對目標(biāo)模型進(jìn)行多次再培訓(xùn)。這使得策略搜索的計算成本巨大。

為了避免計算成本高昂的搜索步驟,您可以重用在類似任務(wù)中找到的現(xiàn)有策略。或者,您可以使用其他自動數(shù)據(jù)擴(kuò)充方法,這些方法旨在將搜索步驟保持在最低限度。

RandAugment將策略搜索步驟減少到只調(diào)整兩個數(shù)字:N和M.N是要在序列中應(yīng)用的隨機(jī)選擇的操作數(shù),以及M是所有操作共享的大小。盡管 RandAugment 很簡單,但我們發(fā)現(xiàn),當(dāng)與相同的增強(qiáng)集一起使用時,這種數(shù)據(jù)增強(qiáng)方法優(yōu)于 AutoAugment 的策略。

TrivialAgument通過移除這兩個超參數(shù)來構(gòu)建 RandAugment 。我們建議對每個樣本隨機(jī)選擇一個增量。 TrivialAugment 和 RandAugment 之間的區(qū)別在于,幅度不是固定的,而是隨機(jī)均勻采樣的。

結(jié)果表明,在訓(xùn)練過程中隨機(jī)采樣增強(qiáng)對于模型泛化可能比廣泛搜索仔細(xì)調(diào)整的策略更重要。

從開始1.24 版本發(fā)布, DALI 提供了AutoAugment,RandAugment和TrivialAugment在這篇文章中,我們向您展示了如何使用所有這些最先進(jìn)的實現(xiàn),并討論了 DALI 中新的條件執(zhí)行功能,這是它們實現(xiàn)的支柱。

DALI 和有條件執(zhí)行

現(xiàn)代 GPU 架構(gòu)顯著加快了深度學(xué)習(xí)模型訓(xùn)練。然而,為了實現(xiàn)最大的端到端性能,必須快速預(yù)處理模型消耗的數(shù)據(jù)批次,以避免 CPU 出現(xiàn)瓶頸。

NVIDIA DALI 通過異步執(zhí)行、預(yù)取、專用加載程序、一組豐富的面向批處理的擴(kuò)充以及與流行的 DL 框架(如PyTorch,TensorFlow,PaddlePaddle和MXNet.

為了創(chuàng)建一個數(shù)據(jù)處理管道,我們在 Python 函數(shù)中組合了所需的操作,并用@pipeline_def出于性能原因,該函數(shù)只定義 DALI 的執(zhí)行計劃,然后由 DALI 執(zhí)行器異步運行。

下面的代碼示例顯示了一個管道定義,該定義加載、解碼并將隨機(jī)噪聲增強(qiáng)應(yīng)用于圖像。

from nvidia.dali import pipeline_def, fn, types 
 
@pipeline_def(batch_size=8, num_threads=4, device_id=0) 
def pipeline(): 
    encoded, _ = fn.readers.file(file_root=data_path, random_shuffle=True) 
    image = fn.decoders.image(encoded, device="mixed") 
    prob = fn.random.uniform(range=[0, 0.15]) 
    distorted = fn.noise.salt_and_pepper(image, prob=prob) 
    return distorted 

管道的代碼是面向樣本的,而輸出是一批圖像。在指定運算符時不需要處理批處理,因為 DALI 在內(nèi)部進(jìn)行管理。

然而,到目前為止,還不可能表達(dá)對一批樣本子集進(jìn)行操作的操作。這阻止了使用 DALI 實現(xiàn)自動擴(kuò)增,因為它為每個樣本隨機(jī)選擇不同的操作。

DALI 中引入的條件執(zhí)行使您能夠使用正則 Python 語義為批處理中的每個樣本選擇單獨的操作: if 語句。下面的代碼示例隨機(jī)應(yīng)用兩個增強(qiáng)中的一個。

@pipeline_def(batch_size=4, num_threads=4, device_id=0,
              enable_conditionals=True)
def pipeline():
    encoded, _ = fn.readers.file(file_root=data_path, random_shuffle=True)
    image = fn.decoders.image(encoded, device="mixed")
    change_stauration = fn.random.coin_flip(dtype=types.BOOL)
    if change_stauration:
        distorted = fn.saturation(image, saturation=2)
    else:
        edges = fn.laplacian(image, window_size=5)
        distorted = fn.cast_like(0.5 * image + 0.5 * edges, image)
    return distorted

我們增加了一些樣本的飽和度,并在其他樣本中使用拉普拉斯算子檢測邊緣,基于fn.random.coin_flip后果 DALI 翻譯if-else語句轉(zhuǎn)換為執(zhí)行計劃,該執(zhí)行計劃根據(jù) if 條件將批處理拆分為兩個批處理。通過這種方式,部分批次分別并行處理,而樣本則屬于同一批次if-else分支仍然受益于批處理的 CUDA 內(nèi)核。

您可以很容易地擴(kuò)展該示例,以使用從任意集合中隨機(jī)選擇的擴(kuò)充。在下面的代碼示例中,我們定義了三個擴(kuò)充,并實現(xiàn)了一個選擇運算符,該運算符根據(jù)隨機(jī)選擇的整數(shù)選擇正確的一個。

def edges(image):
    edges = fn.laplacian(image, window_size=5)
    return fn.cast_like(0.5 * image + 0.5 * edges, image)

def rotation(image):
    angle = fn.random.uniform(range=[-45, 45])
    return fn.rotate(image, angle=angle, fill_value=0)

def salt_and_pepper(image):
    return fn.noise.salt_and_pepper(image, prob=0.15)


def select(image, operation_idx, operations, i=0):
    if i >= len(operations):
        return image
    if operation_idx == i:
        return operations[i](image)
    return select(image, operation_idx, operations, i + 1)

在下面的代碼示例中,我們選擇了一個隨機(jī)整數(shù),并在 DALI 管道內(nèi)使用 select 運算符運行相應(yīng)的操作。

@pipeline_def(batch_size=6, num_threads=4, device_id=0,
              enable_conditionals=True)
def pipeline():
    encoded, _ = fn.readers.file(file_root=data_path, random_shuffle=True)
    image = fn.decoders.image(encoded, device="mixed")
    operations = [edges, rotation, salt_and_pepper]
    operation_idx = fn.random.uniform(values=list(range(len(operations))))
    distorted = select(image, operation_idx, operations)
    return distorted

因此,我們得到了一批圖像,其中每個圖像都通過一個隨機(jī)選擇的操作進(jìn)行變換:邊緣檢測、旋轉(zhuǎn)和椒鹽噪聲失真。

DALI 自動增強(qiáng)

通過按樣本選擇運算符,您可以實現(xiàn)自動擴(kuò)充。為了便于使用, NVIDIA 推出了auto_augDALI 中的模塊,具有流行的自動增強(qiáng)的現(xiàn)成實現(xiàn):auto_aug.auto_augment,auto_aug.rand_augment和auto_aug.trivial_augment它們可以開箱即用,也可以通過調(diào)整增強(qiáng)幅度或構(gòu)建 DALI 基元的用戶定義的增強(qiáng)來定制。

這個auto_aug.augmentationsDALI 中的模塊提供由自動增強(qiáng)程序共享的默認(rèn)操作集:

auto_contrast

brightness

color

contrast

equalize

invert

posterize

rotate

sharpness

shear_x

shear_y

solarize

solarize_add

translate_x

translate_y

下面的代碼示例顯示了如何運行 RandAugment 。

import nvidia.dali.auto_aug.rand_augment as ra

@pipeline_def(batch_size=6, num_threads=4, device_id=0,
              enable_conditionals=True)
def pipeline():
    encoded, _ = fn.readers.file(file_root=data_path, random_shuffle=True)
    shape = fn.peek_image_shape(encoded)
    image = fn.decoders.image(encoded, device="mixed")
    distorted = ra.rand_augment(image, n=3, m=15, shape=shape, fill_value=0)
    return distorted

這個rand_augment操作員接受解碼后的圖像、圖像的形狀、要在序列中應(yīng)用的隨機(jī)增強(qiáng)的數(shù)量 (n=3) 以及這些行動應(yīng)該具有的規(guī)模 (m=15,在可定制的0, 30范圍)。

在某些應(yīng)用程序中,您可能必須限制已使用的擴(kuò)充集。例如,如果數(shù)據(jù)集由數(shù)字圖片組成,則將數(shù)字“ 9 ”旋轉(zhuǎn) 180 度將使相關(guān)標(biāo)簽無效。運行以下代碼示例rand_augment具有有限的增強(qiáng)集。

from nvidia.dali.auto_aug import augmentations as a

augmentations = [
    a.shear_x.augmentation((0, 0.3), randomly_negate=True),
    a.shear_y.augmentation((0, 0.3), randomly_negate=True),
    a.translate_x.augmentation((0, 0.45), randomly_negate=True),
    a.translate_y.augmentation((0, 0.45), randomly_negate=True),
    a.rotate.augmentation((0, 30), randomly_negate=True),
]

每個增強(qiáng)都可以通過幅度如何映射到變換強(qiáng)度來參數(shù)化。例如a.rotate.augmentation((0, 30))指定要將圖像旋轉(zhuǎn)不大于 30 度的角度。randomly_negate=True指定角度應(yīng)隨機(jī)取反,以便隨機(jī)順時針或逆時針旋轉(zhuǎn)圖像。

下面的代碼示例以類似 RandAugment 的方式應(yīng)用增強(qiáng)。

@pipeline_def(batch_size=8, num_threads=4, device_id=0,
              enable_conditionals=True)
def pipeline():
    encoded, _ = fn.readers.file(file_root=data_path, random_shuffle=True)
    shape = fn.peek_image_shape(encoded)
    image = fn.decoders.image(encoded, device="mixed")
    distorted = ra.apply_rand_augment(augmentations, image, n=3, m=15, shape=shape, fill_value=0)
    return distorted

前兩個管道定義之間的唯一區(qū)別是使用了更通用的apply_rand_augment接受附加參數(shù)的運算符,即擴(kuò)充列表。

接下來,將自定義擴(kuò)充添加到集合中。使用cutout作為一個例子。它使用 DALI 用一個歸零的矩形隨機(jī)覆蓋圖像的一部分fn.erase作用包fn.erase與@augmentation描述如何將幅度映射到cutout矩形。cutout_size是從 0 . 01 到 0 . 4 范圍的大小的元組,而不是普通大小。

from nvidia.dali.auto_aug.core import augmentation

def cutout_shape(size):
    # returns the shape of the rectangle
    return [size, size]

@augmentation(mag_range=(0.01, 0.4), mag_to_param=cutout_shape)
def cutout(image, cutout_size, fill_value=None):
    anchor = fn.random.uniform(range=[0, 1], shape=(2,))
    return fn.erase(image, anchor=anchor, shape=cutout_size, normalized=True, centered_anchor=True, fill_value=fill_value)

augmentations += [cutout]

對于更改,運行一組自定義的幾何增強(qiáng),如TrivialAugment,即具有隨機(jī)幅度。對代碼的更改是最小的;您導(dǎo)入并調(diào)用trivial_augment而不是rand_augment來自aut_aug單元

import nvidia.dali.auto_aug.trivial_augment as ta

@pipeline_def(batch_size=8, num_threads=4, device_id=0,
              enable_conditionals=True)
def pipeline():
    encoded, _ = fn.readers.file(file_root=data_path, random_shuffle=True)
    shape = fn.peek_image_shape(encoded)
    image = fn.decoders.image(encoded, device="mixed")
    distorted = ta.apply_trivial_augment(augmentations, image, shape=shape, fill_value=0)
    return distorted

DALI 的自動增強(qiáng)性能

現(xiàn)在,插上 DALI 和AutoAugment進(jìn)入模型訓(xùn)練并比較吞吐量,使用EfficientNet-b0例如,改編自NIVDIA Deep Learning Examples.AutoAugment是 EfficientNet 系列模型預(yù)處理階段的標(biāo)準(zhǔn)部分。

在鏈接的示例中AutoAugment策略使用 PyTorch 數(shù)據(jù)加載器實現(xiàn),并在 CPU 上運行,而模型訓(xùn)練在 GPU 上進(jìn)行。當(dāng) DALI 管道替換在 CPU 上運行的數(shù)據(jù)加載器時,吞吐量會增加。 EfficientNet 加 DALI 的源代碼可在DALI examples.

該模型在自動混合精度模式( AMP )下運行,批量大?。?DGX-1 V100 為 128 , DGX A100 為 256 。

我們用兩種硬件設(shè)置進(jìn)行了實驗: DGX-1 V100 16 GB 和 DGX A100 。我們測量了每秒處理的圖像數(shù)量(越多越好)。在這兩種情況下,速度都有所提高: DGX-1 V100 的速度提高了 33% , DGX A100 的速度增加了 12% 。

圖中虛線所示的理論吞吐量是通過單獨改進(jìn)數(shù)據(jù)預(yù)處理可以預(yù)期的訓(xùn)練速度的上限。為了測量理論極限,我們使用在每次迭代中重復(fù)的一批合成數(shù)據(jù)而不是真實數(shù)據(jù)進(jìn)行訓(xùn)練。這讓我們看到了在不需要預(yù)處理的情況下,模型處理批次的速度有多快。

合成情況和 CPU 數(shù)據(jù)加載器情況之間的顯著性能差距表明存在預(yù)處理瓶頸。為了驗證這一假設(shè),請查看訓(xùn)練期間 GPU 的使用情況。

Figure-16-GPU-utilization-on-DGX-1-V100-16GB-increases-during-EfficientNet-b0-training-1.jpg 圖 7 。在 EfficientNet-b0 培訓(xùn)期間, DGX-1V 16GB 的 GPU 利用率增加

(批量大小 128 ,具有 DALI 數(shù)據(jù)預(yù)處理的自動混合精度模式)

Figure-17-GPU-utilization-on-DGX-A100-increases-during-EfficientNet-b0-training-.jpg 圖 8 。在 EfficientNet-b0 培訓(xùn)期間, DGX-A100 的 GPU 利用率增加

(批量大小 256 ,自動混合精度模式,帶 DALI 數(shù)據(jù)預(yù)處理)

這些圖顯示了在給定的 GPU 利用率下我們花費了多少時間。您可以看到,當(dāng)使用在 CPU 上運行的數(shù)據(jù)加載器對數(shù)據(jù)進(jìn)行預(yù)處理時, GPU 的利用率會反復(fù)下降。值得注意的是,在大約 5% 的時間里,利用率下降到 10% 以下。這表明訓(xùn)練定期停滯,等待下一批數(shù)據(jù)從數(shù)據(jù)加載程序到達(dá)。

如果您將加載和自動增強(qiáng)步驟移動到帶有 DALI 的 GPU0, 10條消失,并且整體 GPU 利用率增加。圖 6 中顯示的使用 DALI 的訓(xùn)練吞吐量的增加證實了我們成功地克服了之前的預(yù)處理瓶頸。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • NVIDIA
    +關(guān)注

    關(guān)注

    14

    文章

    4823

    瀏覽量

    102655
  • 人工智能
    +關(guān)注

    關(guān)注

    1789

    文章

    46416

    瀏覽量

    236658
  • 深度學(xué)習(xí)
    +關(guān)注

    關(guān)注

    73

    文章

    5445

    瀏覽量

    120807
收藏 人收藏

    評論

    相關(guān)推薦

    NVIDIA火熱招聘GPU高性能計算架構(gòu)師

    GPU架構(gòu)設(shè)計者提供反饋,以改善和推進(jìn)未來GPU的架構(gòu)設(shè)計基本要求(其一即可): * 嚴(yán)謹(jǐn)?shù)倪壿嬎季S和分析能力* 有CUDA代碼調(diào)優(yōu)經(jīng)驗(或者SIMD等架構(gòu)的調(diào)優(yōu)經(jīng)驗)* 熟悉矩陣計算的優(yōu)化和加速* 較強(qiáng)C++編程能力、算法分析
    發(fā)表于 09-01 17:22

    NVIDIA-SMI:監(jiān)控GPU的絕佳起點

    nvidia-smi可執(zhí)行文件位于虛擬機(jī)管理程序上。如果在同一部署中您選擇在GPU上使用作為傳遞,那么GPU正在尋找訪客上的NVIDIA驅(qū)動程序,因此
    發(fā)表于 09-04 15:18

    GPU加速XenApp/Windows 2016/Office/IE性能會提高嗎

    Shark查看哪些程序/進(jìn)程使用GPU(硬件加速)。它看起來不像Internet Explorer 11或Office 2016根本不使用GPU。我已經(jīng)驗證IE和Office都啟用
    發(fā)表于 09-12 16:24

    購買哪款Nvidia GPU

    。Nvidia的NV 24核,224 GB RAM,1.4 GB臨時存儲。這是相當(dāng)昂貴的(每月費用超過3,400美元),除非我承諾1年或3年的承諾,略有減少。我認(rèn)為如果我購買GPU服務(wù)器,從長遠(yuǎn)來看可能會更便
    發(fā)表于 09-26 15:30

    Nvidia GPU風(fēng)扇和電源顯示ERR怎么解決

    問題最近在Ubuntu上使用Nvidia GPU訓(xùn)練模型的時候,如果機(jī)器鎖屏一段時間再打開的時候鼠標(biāo)非??D,或者說顯示界面非??D,使用nvidia-smi查看發(fā)現(xiàn),
    發(fā)表于 12-30 06:44

    在Ubuntu上使用Nvidia GPU訓(xùn)練模型

    問題最近在Ubuntu上使用Nvidia GPU訓(xùn)練模型的時候,沒有問題,過一會再訓(xùn)練出現(xiàn)非??D,使用nvidia-smi查看發(fā)現(xiàn),顯示
    發(fā)表于 01-03 08:24

    MathWorks 增加對 NVIDIA GPU Cloud (NGC) 和 DGX 系統(tǒng)的支持

    和工作站上的 NVIDIA GPU,應(yīng)用 MATLAB 中的深度學(xué)習(xí)工作流程。 構(gòu)建 AI 解決方案的研發(fā)人員需要訪問云和 HPC 資源,最大限度地縮短訓(xùn)練時間。利用來自 NGC 的 GPU
    發(fā)表于 11-01 00:22 ?395次閱讀

    混合精度訓(xùn)練的優(yōu)勢!將自動混合精度用于主流深度學(xué)習(xí)框架

    僅通過添加幾行代碼,TensorFlow、PyTorch和MXNet中的自動混合精確功能就能助力深度學(xué)習(xí)研究人員和工程師基于NVIDIA Volta和Turing GPU實現(xiàn)高達(dá)3倍的
    的頭像 發(fā)表于 04-03 11:31 ?6966次閱讀

    NVIDIA GPU加速計算之路

    NVIDIA從提出GPU以及CUDA核心開始,NVIDIA便開始逐步邁出游戲圈,不斷向全新的計算領(lǐng)域發(fā)起攻勢。時至今日,NVIDIA GPU
    的頭像 發(fā)表于 12-23 09:12 ?7238次閱讀

    Nvidia GPU風(fēng)扇和電源顯示ERR!

    問題最近在Ubuntu上使用Nvidia GPU訓(xùn)練模型的時候,沒有問題,過一會再訓(xùn)練出現(xiàn)非??D,使用nvidia-smi查看發(fā)現(xiàn),顯示
    發(fā)表于 01-12 12:25 ?0次下載
    <b class='flag-5'>Nvidia</b> <b class='flag-5'>GPU</b>風(fēng)扇和電源顯示ERR!

    NVIDIA GPU加快深度神經(jīng)網(wǎng)絡(luò)訓(xùn)練和推斷

    深度學(xué)習(xí)是推動當(dāng)前人工智能大趨勢的關(guān)鍵技術(shù)。在 MATLAB 中可以實現(xiàn)深度學(xué)習(xí)的數(shù)據(jù)準(zhǔn)備、網(wǎng)絡(luò)設(shè)計、訓(xùn)練和部署全流程開發(fā)和應(yīng)用。聯(lián)合高性能 NVIDIA GPU 加快深度神經(jīng)網(wǎng)絡(luò)
    的頭像 發(fā)表于 02-18 13:31 ?1975次閱讀

    NVIDIA DALI概述及主要特性

    NVIDIA 數(shù)據(jù)加載庫(DALI)是一個可移植的開源庫,專用于解碼及增強(qiáng)圖像、視頻和語音,從而加速深度學(xué)習(xí)應(yīng)用。
    的頭像 發(fā)表于 08-03 10:20 ?2586次閱讀

    NVIDIA GPU加速潞晨科技Colossal-AI大模型開發(fā)進(jìn)程

    通過 NVIDIA GPU 加速平臺,Colossal-AI 實現(xiàn)了通過高效多維并行、異構(gòu)內(nèi)存管理、大規(guī)模優(yōu)化庫、自適應(yīng)任務(wù)調(diào)度等方式,更高效快速部署 AI 大模型
    的頭像 發(fā)表于 10-19 09:39 ?1401次閱讀

    Oracle 云基礎(chǔ)設(shè)施提供新的 NVIDIA GPU 加速計算實例

    生成式 AI 和大語言模型(LLM)不斷推動突破性創(chuàng)新,訓(xùn)練和推理對算力的需求也隨之急劇上升。 這些現(xiàn)代生成式 AI 應(yīng)用需要全棧加速計算,首先要有能夠快速、準(zhǔn)確處理大量工作負(fù)載的先進(jìn)基礎(chǔ)設(shè)施
    的頭像 發(fā)表于 09-25 20:40 ?513次閱讀
    Oracle 云基礎(chǔ)設(shè)施提供新的 <b class='flag-5'>NVIDIA</b> <b class='flag-5'>GPU</b> <b class='flag-5'>加速</b>計算實例

    如何讓網(wǎng)絡(luò)模型加速訓(xùn)練

    ,對 Pytorch的AMP ( autocast與Gradscaler 進(jìn)行對比) 自動混合精度對模型訓(xùn)練加速 。 注意Pytorch1.6+,已經(jīng)內(nèi)置torch.cuda.amp,因此便不需要加載
    的頭像 發(fā)表于 11-03 10:00 ?1467次閱讀
    如何讓網(wǎng)絡(luò)模型<b class='flag-5'>加速</b><b class='flag-5'>訓(xùn)練</b>