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

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

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

用于圖像分類和物體檢測(cè)的深度學(xué)習(xí)

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

這個(gè)Dataiku platform日常人工智能簡(jiǎn)化了深度學(xué)習(xí)。用例影響深遠(yuǎn),從圖像分類到對(duì)象檢測(cè)和自然語言處理( NLP )。 Dataiku 可幫助您對(duì)代碼和代碼環(huán)境進(jìn)行標(biāo)記、模型培訓(xùn)、可解釋性、模型部署以及集中管理。

本文深入探討了用于圖像分類和對(duì)象檢測(cè)的高級(jí) Dataiku 和 NVIDIA 集成。它還涵蓋了實(shí)時(shí)推理的深度學(xué)習(xí)模型部署以及如何使用開源RAPIDS和 cuML 庫,用于客戶支持 Tweet 主題建模用例。 NVIDIA 提供硬件 (NVIDIA A10 Tensor Core GPUs,在這種情況下)和各種 OSS(CUDA,RAPIDS) 完成工作

請(qǐng)注意,本文中的所有 NVIDIA AI 軟件都可以通過NVIDIA AI Enterprise,一個(gè)用于生產(chǎn)人工智能的安全端到端軟件套件,由 NVIDIA 提供企業(yè)支持

用于圖像分類和物體檢測(cè)的深度學(xué)習(xí)

本節(jié)介紹使用 Dataiku 和 NVIDIA GPU 訓(xùn)練和評(píng)估用于圖像分類或?qū)ο髾z測(cè)的深度學(xué)習(xí)模型的步驟

無代碼方法

從 Dataiku 11.3 開始,您可以使用可視化的無代碼工具來實(shí)現(xiàn)圖像分類或?qū)ο髾z測(cè)工作流程的核心領(lǐng)域。您可以使用本地 web 應(yīng)用程序標(biāo)記圖像、繪制邊界框和查看/管理注釋。圖像標(biāo)記是訓(xùn)練性能模型的關(guān)鍵:→ 很好的模型。

使用 Dataiku 的圖像標(biāo)記工具,您可以將所有貓標(biāo)記為“貓”,或者更精細(xì)地標(biāo)記,以適應(yīng)獨(dú)特的外表或個(gè)性特征

Dataiku 使您能夠訓(xùn)練圖像分類和對(duì)象檢測(cè)模型,特別是使用遷移學(xué)習(xí)來微調(diào)基于自定義圖像/標(biāo)簽/邊界框的預(yù)訓(xùn)練模型。數(shù)據(jù)增強(qiáng)重新著色、旋轉(zhuǎn)和裁剪訓(xùn)練圖像是增加訓(xùn)練集大小并將模型暴露在各種情況下的常用方法。

EfficientNet (圖像分類)和 Faster R-CNN (對(duì)象檢測(cè))神經(jīng)網(wǎng)絡(luò)可以在模型再訓(xùn)練用戶界面中與預(yù)先訓(xùn)練的權(quán)重一起使用,開箱即用。

在將模型訓(xùn)練為自定義圖像標(biāo)簽和邊界框之后,可以使用疊加的熱圖模型焦點(diǎn)來解釋模型的預(yù)測(cè)。

一旦您對(duì)模型的性能感到滿意,就將經(jīng)過訓(xùn)練的模型作為容器化推理服務(wù)部署到 Kubernetes 集群中。這是由 Dataiku API Deployer 工具管理的。

計(jì)算發(fā)生在哪里?

Dataiku 可以將深度學(xué)習(xí)模型訓(xùn)練、解釋和推理背后的所有計(jì)算推送給 NVIDIA PyTorch (圖 4 )。您甚至可以通過 GPU 利用多個(gè) GPU 進(jìn)行分布式培訓(xùn)DistributedDataParallel模塊和 TensorFlowMirroredStrategy.

dataiku-deep-learning-model-training-interface-625x552.png 圖 4 。使用 Dataiku 接口激活 NVIDIA GPU 進(jìn)行深度學(xué)習(xí)模型訓(xùn)練

通過Dataiku Elastic AI集成。首先,將您的 Dataiku 實(shí)例連接到具有 NVIDIA GPU 資源(通過 EKS 、 GKE 、 AKS 、 OpenShift 管理)的 Kubernetes 集群。然后 Dataiku 將創(chuàng)建 Docker 鏡像并在后臺(tái)部署容器

深度學(xué)習(xí)訓(xùn)練和推理作業(yè)可以在 Kubernetes 集群上運(yùn)行,也可以在任意 Python 代碼或 Apache Spark 作業(yè)上運(yùn)行。

對(duì)模型訓(xùn)練腳本進(jìn)行編碼

如果你想在 Python 中自定義你自己的深度學(xué)習(xí)模型,可以嘗試在 MLflow 實(shí)驗(yàn)跟蹤器中封裝一個(gè) train 函數(shù)。圖 6 顯示了一個(gè)基于 Python 的流程。請(qǐng)參閱中的機(jī)器學(xué)習(xí)教程Dataiku Developer Guide例如。這種方法提供了自定義代碼的完全靈活性,以及一些開箱即用的實(shí)驗(yàn)跟蹤、模型分析可視化,以及 Dataiku 中經(jīng)過可視化訓(xùn)練的模型的點(diǎn)擊式模型部署

自定義 Python 深度學(xué)習(xí)模型可以通過容器化執(zhí)行來利用 NVIDIA GPU ,就像 Dataiku 中經(jīng)過視覺訓(xùn)練的深度學(xué)習(xí)模型一樣(圖 7 )。

python-script-in-dataiku-containerized-compute-options.png 圖 7 。 Dataiku 中的任何 Python 工作負(fù)載都可以推送到具有 NVIDIA GPU 資源的 Kubernetes 集群

用于實(shí)時(shí)推理的模型部署

一旦模型經(jīng)過訓(xùn)練,就到了部署它進(jìn)行實(shí)時(shí)推理的時(shí)候了。如果您使用 Dataiku 的視覺圖像分類、對(duì)象檢測(cè)或帶有 MLflow 的自定義編碼模型,然后作為 Dataiku 模型導(dǎo)入,只需單擊幾下即可在經(jīng)過訓(xùn)練的模型上創(chuàng)建容器化推理 API 服務(wù)。

首先,將 Dataiku API Deployer 工具連接到 Kubernetes 集群,以托管這些推理 API 服務(wù),同樣在集群節(jié)點(diǎn)中提供 NVIDIA GPU 。然后在負(fù)載均衡器后面部署容器化服務(wù)的 1-N 個(gè)副本。從這里開始,邊緣設(shè)備可以向 API 服務(wù)發(fā)送請(qǐng)求,并接收來自模型的預(yù)測(cè)。圖 8 顯示了整個(gè)體系結(jié)構(gòu)。

dataiku-trained-model-workflow.png create API service in the API Designer > push the API service to the Deployer > push the API Service to a K8S cluster with NVIDIA GPU resources. From there, edge devices can submit requests to the API service with data, images, and receive predictions back.” width=”1262″ height=”589″> 圖 8 。從在 Dataiku 中訓(xùn)練的模型到托管在具有 NVIDIA GPU 的 Kubernetes 集群上的 API 服務(wù)的工作流,用于推理

教程:在 Dataiku 中使用帶有 RAPIDS 的 BERT 模型加速主題建模

為了更深入地了解,本節(jié)將介紹如何在 Dataiku 中設(shè)置 Python 環(huán)境,以便將 BERTopic 與 RAPIDS 中的 GPU 加速 cuML 庫一起使用。它還強(qiáng)調(diào)了使用 cuML 獲得的性能增益

此示例使用Kaggle Customer Support on Twitter dataset以及主題建模的關(guān)鍵客戶投訴主題。

步驟 1 。準(zhǔn)備數(shù)據(jù)集

首先,通過刪除標(biāo)點(diǎn)符號(hào)、停止詞和詞尾詞來規(guī)范推文文本。還要將數(shù)據(jù)集過濾為客戶在推特上用英語發(fā)布的投訴。所有這些都可以使用 Dataiku 可視化配方來完成。

使用拆分配方從初始用戶推文中過濾公司的回復(fù)。接下來,使用 Dataiku 的Text Preparation plugin檢測(cè)用戶推文中語言分布的配方。



使用過濾配方過濾掉所有非英語和空白的推文。一定要使用文本準(zhǔn)備方法來過濾停止詞、標(biāo)點(diǎn)符號(hào)、 URL 、表情符號(hào)等。將文本轉(zhuǎn)換為小寫。

最后,使用分割配方來分割用于訓(xùn)練和測(cè)試的數(shù)據(jù)(簡(jiǎn)單的 80% / 20% 隨機(jī)分割)。

步驟 2 。使用 BERTopic 和 RAPIDS 庫設(shè)置 Python 環(huán)境

運(yùn)行 Python 進(jìn)程需要一個(gè)具有 NVIDIA GPU 的彈性計(jì)算環(huán)境BERTopic package(及其所需的包裝),以及 RAPIDS 容器圖像。此示例使用 Amazon EKS 集群(實(shí)例類型: g4dnNVIDIA A10 Tensor Core GPUs) ,RAPIDS Release Stable 22.12和 BERTopic ( 0.12.0 )。

首先,在 Dataiku 中啟動(dòng)一個(gè) EKS 集群。設(shè)置集群后,您可以在“管理”下的“集群”選項(xiàng)卡中檢查其狀態(tài)和配置。

BER 主題

使用 Dataiku 的托管虛擬代碼環(huán)境,使用 BERTopic 及其所需的包創(chuàng)建 Dataiku 代碼環(huán)境。

RAPIDS

使用 Docker Hub 中的 RAPIDS 映像構(gòu)建一個(gè)容器環(huán)境。在 Dataiku 中,為您的代碼環(huán)境使用 Dataiku 基本映像,或者從 DockerHub 或NGC。然后,將您的 Dataiku 代碼環(huán)境附加到它。請(qǐng)注意, NVIDIA 已經(jīng)在 PyPi 上發(fā)布了 RAPIDS ,所以您現(xiàn)在可以只使用默認(rèn)的 Dataiku 基本映像。

步驟 3 。使用默認(rèn) UMAP 運(yùn)行 BERTopic

接下來,使用 BERTopic 從 Twitter 投訴中找出前五個(gè)話題。要在 GPU 上加速 UMAP 進(jìn)程,請(qǐng)使用 cuML UMAP 。默認(rèn) UMAP 如下所示:

# -------------------------------------------------------------------------------- NOTEBOOK-CELL: CODE
# -*- coding: utf-8 -*-
import dataiku
import pandas as pd, numpy as np
from dataiku import pandasutils as pdu
from bertopic import BERTopic

# -------------------------------------------------------------------------------- NOTEBOOK-CELL: CODE
# Read the train dataset in the dataframe and the variable sample_size which defines the number of records to be used
sample_size = dataiku.get_custom_variables()["sample_size"]
train_data = dataiku.Dataset("train_cleaned")
train_data_df = train_data.get_dataframe(sampling='head',limit=sample_size)

# -------------------------------------------------------------------------------- NOTEBOOK-CELL: CODE
# Create Bertopic object and run fit transform
topic_model = BERTopic(calculate_probabilities=True,nr_topics=4)
topics, probs = topic_model.fit_transform(train_data_df["Review Description_cleaned"])
all_topics_rapids_df = topic_model.get_topic_info()

# -------------------------------------------------------------------------------- NOTEBOOK-CELL: CODE
#Write the List of Topics output as a DSS Dataset

Topic_Model_df = all_topics_rapids_df 
Topic_Model_w_Rapids = dataiku.Dataset("Topic_Model")
Topic_Model_w_Rapids.write_with_schema(Topic_Model_df)


RAPIDS cuML UMAP:

# -*- coding: utf-8 -*-
import dataiku
import pandas as pd, numpy as np
from dataiku import pandasutils as pdu

from bertopic import BERTopic
from cuml.manifold import UMAP
from cuml.cluster.hdbscan.prediction import approximate_predict

# -------------------------------------------------------------------------------- NOTEBOOK-CELL: CODE
# Read the train dataset in the dataframe and the variable sample_size which defines the number of records to be used
sample_size = dataiku.get_custom_variables()["sample_size"]
train_data = dataiku.Dataset("train_cleaned")
train_data_df = train_data.get_dataframe(sampling='head',limit=sample_size)

# -------------------------------------------------------------------------------- NOTEBOOK-CELL: CODE
# Create a cuML UMAP Obejct and pass it in the Bertopic object and run fit transform
umap_model = UMAP(n_components=5, n_neighbors=15, min_dist=0.0)
cu_topic_model = BERTopic(calculate_probabilities=True,umap_model=umap_model,nr_topics=4)
cu_topics, cu_probs = cu_topic_model.fit_transform(train_data_df["Review Description_cleaned"])
all_topics_rapids_df = cu_topic_model.get_topic_info()

# -------------------------------------------------------------------------------- NOTEBOOK-CELL: CODE
# Write the List of Topics output as a DSS Dataset

Topic_Model_w_Rapids_df = all_topics_rapids_df 
Topic_Model_w_Rapids = dataiku.Dataset("Topic_Model_w_Rapids")
Topic_Model_w_Rapids.write_with_schema(Topic_Model_w_Rapids_df)

UMAP 對(duì)整個(gè)計(jì)算時(shí)間有很大貢獻(xiàn)。在帶有 cuML RAPIDS 的 NVIDIA GPU 上運(yùn)行 UMAP 可實(shí)現(xiàn) 4 倍的性能提升。可以通過在 GPU 上運(yùn)行更多的算法來實(shí)現(xiàn)額外的改進(jìn),例如使用 cuML HDBSCAN 。

不帶 RAPIDS 的主題建模過程 運(yùn)行時(shí)
不帶 RAPIDS 12 分 21 秒
帶 RAPIDS 2 分 59 秒

表 1 。使用 RAPIDS AI 進(jìn)行配置可實(shí)現(xiàn) 4 倍的性能提升

步驟 4 。投訴聚類儀表板

最后,您可以在 Dataiku 中的輸出數(shù)據(jù)集(帶有干凈的 Tweet 文本和主題)上構(gòu)建各種看起來很酷的圖表,并將其推送到儀表板上進(jìn)行執(zhí)行團(tuán)隊(duì)審查(圖 13 )。



圖 13 。 Dataiku 儀表板在一個(gè)中心位置顯示各種指標(biāo)

把它們放在一起

如果您希望將深度學(xué)習(xí)用于圖像分類、對(duì)象檢測(cè)或 NLP 用例, Dataiku 可以幫助您標(biāo)記、模型訓(xùn)練、可解釋性、模型部署以及集中管理代碼和代碼環(huán)境。與最新的 NVIDIA 數(shù)據(jù)科學(xué)庫和計(jì)算硬件的緊密集成構(gòu)成了一個(gè)完整的堆棧。

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

    關(guān)注

    14

    文章

    4818

    瀏覽量

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

    關(guān)注

    1789

    文章

    46397

    瀏覽量

    236603
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    華為云ModelArts入門開發(fā)(完成物體分類、物體檢測(cè))

    利用ModelArts框架可以完成圖像分類、物體檢測(cè)、預(yù)測(cè)分析、聲音分類、文本分類等功能。介紹如何使用ModelArts完成
    的頭像 發(fā)表于 07-10 16:26 ?1608次閱讀
    華為云ModelArts入門開發(fā)(完成<b class='flag-5'>物體</b><b class='flag-5'>分類</b>、<b class='flag-5'>物體檢測(cè)</b>)

    深度學(xué)習(xí)DeepLearning實(shí)戰(zhàn)

    內(nèi)容2:課程一: Tensorflow入門到熟練:課程二:圖像分類:課程三:物體檢測(cè):課程四:人臉識(shí)別:課程五:算法實(shí)現(xiàn):1、卷積神經(jīng)網(wǎng)絡(luò)CNN2、循環(huán)神經(jīng)網(wǎng)絡(luò)RNN3、強(qiáng)化學(xué)習(xí)DRL
    發(fā)表于 01-09 17:01

    深度強(qiáng)化學(xué)習(xí)實(shí)戰(zhàn)

    內(nèi)容2:課程一: TensoRFlow入門到熟練:課程二:圖像分類:課程三:物體檢測(cè):課程四:人臉識(shí)別:課程五:算法實(shí)現(xiàn):1、卷積神經(jīng)網(wǎng)絡(luò)CNN2、循環(huán)神經(jīng)網(wǎng)絡(luò)RNN3、強(qiáng)化學(xué)習(xí)DRL
    發(fā)表于 01-10 13:42

    基于深度學(xué)習(xí)和3D圖像處理的精密加工件外觀缺陷檢測(cè)系統(tǒng)

    的要求; 創(chuàng)新點(diǎn)三:深度學(xué)習(xí)應(yīng)用于3D圖像的分析處理。直接聯(lián)通三維圖像數(shù)據(jù)與深度
    發(fā)表于 03-08 13:59

    設(shè)計(jì)一個(gè)紅外物體檢測(cè)設(shè)備

    描述使用 PIR 傳感器的紅外物體檢測(cè)設(shè)備-PCB 設(shè)計(jì)項(xiàng)目背后的動(dòng)機(jī):這種物體檢測(cè)傳感器專門設(shè)計(jì)用于防止未經(jīng)授權(quán)的物體或身體進(jìn)入。在您不在的情況下,除非您允許,否則它不會(huì)讓任何人進(jìn)入
    發(fā)表于 06-27 06:18

    討論紋理分析在圖像分類中的重要性及其在深度學(xué)習(xí)中使用紋理分析

    地執(zhí)行基于紋理特征的分類任務(wù)。為了讓深度學(xué)習(xí)在基于紋理的數(shù)據(jù)上更好地工作,需要有一種方法,可以從圖像中提取紋理特定的特征,并將其傳遞給全連接層,同時(shí)保留全局特征。這樣的架構(gòu)設(shè)置將使全連
    發(fā)表于 10-26 16:57

    基于運(yùn)動(dòng)估計(jì)的運(yùn)動(dòng)物體檢測(cè)技術(shù)研究

    運(yùn)動(dòng)物體檢測(cè)圖像處理和分析系統(tǒng)的關(guān)鍵技術(shù),為了能夠更準(zhǔn)確的檢測(cè)視頻流中的運(yùn)動(dòng)物體,本文提出了一種基于運(yùn)動(dòng)估計(jì)的運(yùn)動(dòng)物體檢測(cè)方法,該方法以運(yùn)
    發(fā)表于 12-14 13:37 ?16次下載

    圖像分類的方法之深度學(xué)習(xí)與傳統(tǒng)機(jī)器學(xué)習(xí)

    實(shí)際情況非常復(fù)雜,傳統(tǒng)的分類方法不堪重負(fù)?,F(xiàn)在,我們不再試圖用代碼來描述每一個(gè)圖像類別,決定轉(zhuǎn)而使用機(jī)器學(xué)習(xí)的方法處理圖像分類問題。 目前,
    發(fā)表于 09-28 19:43 ?0次下載

    深度學(xué)習(xí)在計(jì)算機(jī)視覺上的四大應(yīng)用

    計(jì)算機(jī)視覺中比較成功的深度學(xué)習(xí)的應(yīng)用,包括人臉識(shí)別,圖像問答,物體檢測(cè)物體跟蹤。
    的頭像 發(fā)表于 08-24 16:16 ?4463次閱讀
    <b class='flag-5'>深度</b><b class='flag-5'>學(xué)習(xí)</b>在計(jì)算機(jī)視覺上的四大應(yīng)用

    傳統(tǒng)檢測(cè)深度神經(jīng)網(wǎng)絡(luò)框架、檢測(cè)技術(shù)的物體檢測(cè)算法全概述

    物體檢測(cè)一向是比較熱門的研究方向,它經(jīng)歷了傳統(tǒng)的人工設(shè)計(jì)特征+淺層分類器的框架,到基于大數(shù)據(jù)和深度神經(jīng)網(wǎng)絡(luò)的End-To-End的物體檢測(cè)框架的發(fā)展,然而許多人其實(shí)并未系統(tǒng)的了解過
    的頭像 發(fā)表于 10-22 15:07 ?2662次閱讀
    傳統(tǒng)<b class='flag-5'>檢測(cè)</b>、<b class='flag-5'>深度</b>神經(jīng)網(wǎng)絡(luò)框架、<b class='flag-5'>檢測(cè)</b>技術(shù)的<b class='flag-5'>物體檢測(cè)</b>算法全概述

    深度學(xué)習(xí)圖像分割的方法和應(yīng)用

    介紹使圖像分割的方法,包括傳統(tǒng)方法和深度學(xué)習(xí)方法,以及應(yīng)用場(chǎng)景。 基于人工智能和深度學(xué)習(xí)方法的現(xiàn)代計(jì)算機(jī)視覺技術(shù)在過去10年里取得了顯著進(jìn)展
    的頭像 發(fā)表于 11-27 10:29 ?3087次閱讀

    詳解深度學(xué)習(xí)圖像分割

    基于人工智能和深度學(xué)習(xí)方法的現(xiàn)代計(jì)算機(jī)視覺技術(shù)在過去10年里取得了顯著進(jìn)展。如今,它被用于圖像分類、人臉識(shí)別、
    的頭像 發(fā)表于 01-06 15:50 ?3635次閱讀

    基于PyTorch的深度學(xué)習(xí)入門教程之PyTorch的安裝和配置

    深度神經(jīng)網(wǎng)絡(luò)是一種目前被廣泛使用的工具,可以用于圖像識(shí)別、分類,物體檢測(cè),機(jī)器翻譯等等。深度
    的頭像 發(fā)表于 02-16 15:15 ?2523次閱讀

    淺析FPGA的圖像采集和快速移動(dòng)物體檢測(cè)

    提出了一種圖像采集和快速移動(dòng)物體檢測(cè)的設(shè)計(jì),即通過FPGA實(shí)現(xiàn)對(duì)攝像頭的初始化及數(shù)據(jù)采集,并通過自定義的傳輸
    的頭像 發(fā)表于 05-12 15:29 ?3072次閱讀
    淺析FPGA的<b class='flag-5'>圖像</b>采集和快速移動(dòng)<b class='flag-5'>物體檢測(cè)</b>

    分享使用圖像分割來做缺陷檢測(cè)的一個(gè)例子

    1. 介紹 什么是物體檢測(cè)? 給定一張圖像,我們?nèi)祟惪梢宰R(shí)別圖像中的物體。例如,我們可以檢測(cè)圖像
    的頭像 發(fā)表于 05-29 10:08 ?2550次閱讀
    分享使用<b class='flag-5'>圖像</b>分割來做缺陷<b class='flag-5'>檢測(cè)</b>的一個(gè)例子