国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

基于數據流客戶端優化模型訓練

譯文 精選
開發 前端
作為數據科學家,我們通常都希望盡快開始訓練模型。這不僅僅是因為人類具有天性急躁的特征。例如,我們可能希望測試某人的項目中的一個非常小的更改,并且我們希望避免為了測試這樣的小修改而進行冗長的設置工作。

譯者 | 朱先忠

審校 | 孫淑娟

作為數據科學家,我們通常都希望盡快開始訓練模型。這不僅僅是因為人類具有天性急躁的特征。例如,我們可能希望測試某人的項目中的一個非常小的更改,并且我們希望避免為了測試這樣的小修改而進行冗長的設置工作。

這種情況在處理計算機視覺和大型圖像數據集時尤其明顯。當你在訓練你的模型之前必須提取一個龐大的數據集(使用DVC版本)時,你有過煩惱嗎?或者,您可能需要拉動整個數據集來檢查/修改單個圖像或其中的一些圖像?如果這聽起來很熟悉;那么,接下來我將向您展示如何使用DagsHub公司開發的新數據流客戶端解決這些潛在的瓶頸問題。

【譯者注】DAGsHub是DAGsHub團隊開發的用于數據科學家和機器學習工程師的數據版本控制和協作的開源免費Web平臺(DAGsHub是DVC,Github是Git)。其中,DVC代表數據版本控制(Data Version Control),本質上與Git相似,但它是專門為數據而設計的。

什么是數據流客戶端?

DagsHub的開源流媒體客戶端被稱為直接數據訪問(DDA:Direct Data Access)。本質上,DDA允許從任何DagsHub存儲庫流入/流出數據。換句話說,我們的Python代碼將表現為所有文件都存在于本地;但實際上,客戶端將根據請求動態下載它們。此外,我們還可以將數據上傳到DagsHub上托管的任何項目。但最重要的是,使用流媒體客戶端不需要對代碼庫進行大量更改。一行或兩行額外的代碼通常足以充分享受新客戶機的好處。

簡而言之,DDA提供以下功能:

  • 能夠從任何DagsHub存儲庫批量傳輸數據
  • 將新數據附加到現有數據集而不首先拉動整個數據集
  • 智能緩存:文件在流式傳輸后仍然可用
  • 節省時間、資源和內存

在對新客戶端進行了高層次的概括了解之后,讓我們更深入地了解一下它的實際工作方式。從幕后實現技術來分析,DDA中存在兩個主要的實現技術。

第一個實現是使用了Python鉤子機制,從而能夠檢測對Python內置文件操作(如打開、寫入等)的任何調用,并修改它們,以便在本地找不到文件時從DagsHub存儲庫檢索文件。這種方法的最大優點是大多數流行的Python庫都會自動使用這種方法。

雖然這聽起來很好,但我們應該意識到這種方法中存在的一些局限性:

  • 該方法不適用于依賴C/C++編寫的I/O例程的框架,例如OpenCV。
  • 某些DVC命令(如dvc repro和dvc run)在deps中運行DCV跟蹤文件的階段將不起作用。

第二個實現稱為掛載的文件系統(Mounted Filesystem),它基于FUSE(USErspace中的文件系統:??https://en.wikipedia.org/wiki/Filesystem_in_Userspace?ref=hackernoon.com??)。在底層實現上,客戶端創建了一個反映DagsHub存儲庫的虛擬安裝文件系統。該文件系統的行為類似于本地文件系統的一部分,例如我們可以看到目錄中的所有文件,并且可以查看它們。

現在的迫切問題是:該使用哪種實現方案呢?DagsHub的數據流客戶端有關文檔建議,如果您在Windows或Mac上工作,并且沒有任何依賴C的框架/庫,那么建議您使用Python鉤子方法;否則,請使用掛載的文件系統。請參閱??文檔??來全面比較這兩種方法各自的優劣。

流媒體客戶端使用場景

我們已經知道流媒體客戶端是什么以及它是如何工作的。現在,讓我們介紹一下流媒體客戶端的一些具體使用場景,從而展示我們該如何在工作流程中使用它。

首先,我們可以通過使用流媒體客戶端來減少開始訓練所需的時間。假設我們正在處理一個圖像分類問題;那么,借助于流式客戶端,我們不必在實際開始訓練模型之前下載整個數據集,因為Python會“假裝”文件已經可用,并立即開始訓練模型。數據加載器經常被優化,從而實現在當前批次正在用于訓練時提前加載下一個批次。在后臺,流媒體客戶端只需按要求批量下載圖像進行訓練,并將其緩存以供以后使用。通過這種方法,我們可以節省大量時間和資源。后者可以通過例如虛擬機的運行時來進行衡量。

其次,我們只能在整個數據集的子集上訓練模型。想象一下,擁有一個包含數千個類的圖像的數據集,但對于您的特定實驗,您只需要使用幾個選定類別進行訓練。借助于流式客戶端,Python代碼將僅加載實際請求的數據來實現訓練任務。

最后,我們還可以使用流媒體客戶端將數據上傳到DVC版本的存儲庫。在一個特別令人沮喪的應用場景中,我們的數據集中可能存在數以萬計的圖像,我們希望再添加10張我們收集的圖像。通常,我們必須提取所有數據,添加新圖像,并再次對整個修改后的數據集進行版本調整。這種情況下,借助于DDA(直接數據訪問),我們可以直接添加10個新圖像,而無需下載整個數據集。

一個實際的例子

我希望上面提到的場景能讓您對使用流媒體客戶端感到興奮!為了使用流媒體客戶端的優勢,我們需要將我們的項目存儲在DagsHub上,并使用DVC對數據進行版本化。

本教程的目標是展示如何快速地使用流媒體客戶端啟動和運行項目。這就是為什么我們復制(Fork)了一個已經存在的項目,我們將展示如何在云端快速啟動神經網絡的訓練。為此,我們將使用GoogleColab云平臺,當然您也可以使用類似于AWS等其他的云平臺。

我們復制的項目是CheXNet的TensorFlow實現,它是一個121層的CNN(卷積神經網絡),用于從胸部X光片檢測肺炎。最初的實現是在ChestX-ray14數據集(可在Kaggle上獲得:??https://www.kaggle.com/datasets/paultimothymooney/chest-xray-pneumonia?ref=hackernoon.com??)上訓練的,該數據集是目前最大的公開可用的胸部X射線數據集,擁有超過100000張圖像。該數據集超過45GB,分為14個不同的目錄,每個目錄專門針對不同的疾病。為了減少這個實驗的訓練時間,我們使用了數據集的二次采樣版本,它只有1GB。

在開始之前,值得一提的是,使用DDA并不總是有益的。在開始這個項目之前,我試著在??我的超級馬里奧游戲??分類器中使用DDA。就在此游戲對應的場景中,我遇到了一個邊緣情況,在神經網絡的訓練過程中通過單個批次比按需下載批次更快。這使得第一個時期的訓練比預先下載整個數據集然后正常運行訓練步驟要長得多。因此,用于訓練的圖像必須足夠大(就其分辨率/大小而言),以便單個批次的訓練步驟比下載下一個批次的時間更長。

如果您接下來繼續閱讀本文的話,建議您下載并使用我在Google Colab中使用的??筆記本文件??。

設置項目

為了方便試驗,我將項目復制到我自己的帳戶下,以便使用MLflow的實驗跟蹤等功能。您也可以直接克隆代碼倉庫來訓練模型,而無需創建另外的復制。

打開筆記本項目后,我們需要使用如下命令安裝一些依賴庫:

!pip install dagshub omegaconf mlflow

接下來,我們導入所需的庫:

import datetime
import os
from IPython.display import display, Image

這些導入列表相當簡短,因為大多數庫(例如,用于訓練神經網絡的Keras框架)都已經加載在各個腳本中了。然后,我們定義一些包含值的常量,例如存儲庫的所有者、要克隆的存儲庫的名稱以及要使用的分支等。

# 要使用的存儲庫
REPO_OWNER= "eryk.lewinson"
REPO_NAME= "CheXNet"
REPO_BRANCH= "streaming"

定義了所需的常量后,我們可以使用方便的init功能來初始化DagsHub存儲庫。然后,我們可以輕松地使用MLFlow記錄實驗,獲取訪問令牌等。我們運行以下代碼段以便在Colab中設置項目:

import dagshub
dagshub.init(repo_name=REPO_NAME, repo_owner=REPO_OWNER)

運行該段代碼后,將提示我們在瀏覽器中進行身份驗證。然后,我們可以使用git clone命令克隆存儲庫:

!git clone https://{USER_NAME}:{dagshub.auth.get_token()}@dagshub.com/{REPO_OWNER}/{REPO_NAME}.git

下一步,我們將目錄更改為CheXNet目錄:

%cd /content/{REPO_NAME}

然后,我們將分支更改為包含可與流式客戶端一起使用的代碼庫的分支:

!git checkout {REPO_BRANCH}

正如我們之前提到的,主分支使用完整的45GB數據集,而流分支在子采樣數據集上訓練神經網絡。

至此,我們已經完成了設置,并準備好使用流媒體客戶端。

檢查數據集

首先,讓我們來看看我們的數據集。克隆代碼庫后,我們可以看到數據是用DVC進行版本控制的,因為我們可以看到相應的跟蹤文件。然而,我們實際上無法從Colab檢查它。至少現在還沒有:

我們的示例項目的目錄結構

接下來,讓我們使用流媒體客戶端來完成任務。在本教程中,我們使用DDA的Python鉤子技術來實現。因此,我們需要運行以下兩行代碼:

from dagshub.streaming import install_hooks
install_hooks()

此時,我們可以使用代碼檢查圖像,即使文件夾在目錄樹中不可見。由于我們知道包含圖像的目錄的結構;所以,我們可以使用具有相對路徑的以下代碼段來打印請求目錄中的所有圖像:

os.listdir("data_labeling/data/images_001/images")

如您所見,這是常規的Python代碼,流式客戶端在后臺為我們處理一切。執行代碼段將打印以下列表:

['00000417_005.png',
'00000583_047.png',
'00000683_002.png',
'00000796_001.png',
'00001088_024.png',
'00000013_006.png',
'00000547_009.png',
'00000640_000.png',
'00000732_004.png',
]

我們還可以使用以下代碼段顯示圖像:

display(Image(filename="data_labeling/data/images_001/images/00000417_005.png"))

胸部X射線數據集的示例圖像

正如我們之前提到的,流媒體客戶端根據請求下載數據并緩存數據以供以后使用。因此,我們顯示的圖像實際上是下載的,我們可以在目錄樹中看到它:

下載第一張圖像后的目錄

現在,我們可以采取下一步行動:開始訓練神經網絡了!

訓練神經網絡

正如我們已經提到的,我們不必花費時間修改用于訓練神經網絡的代碼。我們只需要將已經熟悉的兩行代碼添加到train.py腳本中。你可能會問:當我們之前已經執行過那一部分代碼,為什么還要再次執行?這是因為當我們從Colab調用腳本時,腳本在單獨的Python上下文中運行。因此,流設置不再應用于那一部分代碼了。

為了使代碼庫更加通用,我們可以將以下條件語句與install_hooks設置結合使用:

if "STREAM" in sys.argv:
from dagshub.streaming.filesystem import install_hooks
install_hooks()

sys.argv本質上是一個包含命令行參數的數組,即調用腳本時傳遞的值。為了說明問題,我們可以使用以下代碼段運行訓練腳本:

%run modeling/src/train.py STREAM

如果想在不使用流客戶端的情況下運行腳本,我們只需刪除STREAM參數。

一旦運行該命令,我們將看到目錄樹將開始填充為特定批處理請求的圖像。就這樣!通過只添加兩行代碼,我們可以利用流媒體客戶端開始按需下載版本化的數據。

此外,您可能希望使用MLflow跟蹤您的實驗。你要使用DagsHub的設置來執行此操作,而且還需要修改src/const.yaml文件中的MLFLOW_TRACKING_URL常量。

總結

在本文中,我們演示了如何使用DagsHub的流媒體客戶端按需下載數據集。這樣一來,我們幾乎可以立即開始訓練我們的模型,而無需首先將所有版本化的數據拉到我們的機器上,無論是在本地還是在云端。正如您所看到的,流媒體客戶端確實適合應用于計算機視覺等領域的任務,但是它也可以在解決其他問題時派上用場。

你可以在鏈接??https://github.com/erykml/medium_articles/blob/master/Misc/dda_streaming_client.ipynb?ref=hackernoon.com處???找到本文中使用的筆記本文件。該項目的代碼庫可下載的地址是??https://dagshub.com/eryk.lewinson/CheXNet?ref=hackernoon.com??。

譯者介紹

朱先忠,51CTO社區編輯,51CTO專家博客、講師,濰坊一所高校計算機教師,自由編程界老兵一枚。

原文標題:??Optimize Model Training with a Data Streaming Client??,作者:Eryk Lewinson

責任編輯:華軒 來源: 51CTO
相關推薦

2024-01-17 19:05:44

mget優化數據庫

2011-05-24 16:47:20

數據存儲

2009-06-12 19:18:08

REST客戶端框架JavaScript

2011-08-15 14:09:59

JavaHBase

2011-04-22 10:34:09

SimpleFrame

2009-03-18 14:44:34

LinuxqTwitterTwitter

2011-08-17 10:10:59

2012-07-30 08:31:08

Storm數據流

2021-09-22 15:46:29

虛擬桌面瘦客戶端胖客戶端

2025-01-07 08:10:00

CefSharpWinformWindows

2010-05-31 10:11:32

瘦客戶端

2011-10-26 13:17:05

2011-03-24 13:00:31

配置nagios客戶端

2011-03-02 14:36:24

Filezilla客戶端

2010-12-21 11:03:15

獲取客戶端證書

2017-04-06 15:40:31

客戶端數據存儲技術

2022-04-15 10:52:50

模型技術實踐

2011-03-21 14:53:36

Nagios監控Linux

2013-05-09 09:33:59

2009-03-04 10:27:50

客戶端組件桌面虛擬化Xendesktop
點贊
收藏

51CTO技術棧公眾號

日韩一级在线观看| 欧美午夜美女看片| 日本欧美一级片| av一本在线| 久久精品男人天堂av| 曰韩不卡视频| 亚洲人metart人体| 欧美一级在线亚洲天堂| 久久野战av| 欧美一级国产精品| 在线观看视频亚洲| 欧美日韩中文字幕| 不卡av电影在线观看| 亚洲欧洲日产国码无码久久99| 成人av综合网| 亚洲综合色成人| 永久域名在线精品| 国产精品chinese| 亚洲精华液一区二区三区| 亚洲第一福利视频在线| 亚欧在线免费观看| 久久成人免费网站| 欧美在线播放一区二区| 亚洲图片在线| 国产 高清 精品 在线 a| 国产精品亚洲人成在99www| 久久国产精品久久久久| 高清不卡亚洲| 日韩精品在线观| 男人天堂亚洲| 欧美裸体bbwbbwbbw| 国产高清免费av在线| 亚洲欧美一区二区三区极速播放| 亚洲熟妇无码一区二区三区导航| 久久99久久99小草精品免视看| 日韩av在线一区二区三区| 99精品热6080yy久久| 国产精品一区二区a| 激情综合视频| 国内一区在线| 在线视频精品| 久久久久无码国产精品一区| 国产精品普通话对白| 精品无人乱码一区二区三区的优势| 99久久婷婷国产综合精品电影√| 国产成人在线一区二区| 免费久久精品| 国产精品尤物福利片在线观看| 欧美日韩国产一区二区三区不卡| 97精品国产97久久久久久免费| 国产精品欧美综合在线| 在线观看免费国产小视频| 国产亚洲一区二区精品| 国产精品一级二级三级| 日本五十路在线| 午夜久久tv| 亚洲a一级视频| 欧美午夜免费影院| 欧美一区二区三区在线免费观看| 中文日韩欧美| 在线免费一区| 久久综合久久久久88| 亚洲另类第一页| 午夜伦欧美伦电影理论片| 成年午夜在线| 亚洲国产精品人久久电影| 欧美大片1688网站| 77777少妇光屁股久久一区| 精品国产乱码久久久久久蜜坠欲下 | 五月婷婷另类国产| 妞干网在线视频| 免费午夜视频在线观看| 相泽南亚洲一区二区在线播放 | av网站在线免费播放| 日韩另类视频| 美日韩精品视频免费看| 亚洲男人都懂第一日本| 91欧美精品成人综合在线观看| 欧美特黄一级| 中国成人在线视频| 中文字幕精品三区| 椎名由奈av一区二区三区| 成人在线观看视频app| 在线不卡中文字幕播放| avtt久久| 成人在线免费网站| 成人app下载| 中文av在线播放| 精品中文视频在线| 国产精品亚洲片在线播放| 久久综合入口| 久久免费视频色| 久久黄色av网站| 成人3d精品动漫精品一二三| 亚洲国产精品va在看黑人| 四虎影视精品永久在线观看| 久久视频国产精品免费视频在线| 国产伦精品一区二区三区视频 | 国产原创在线观看| 欧美精品在线免费播放| 欧美三级视频| av免费在线播放网站| 91国产免费观看| 久久夜夜久久| 精品国产综合久久| 国产精品久久久久三级| 国产桃色电影在线播放| 久久精品一区二区国产| 91久久夜色精品国产按摩| 337p亚洲精品色噜噜狠狠p| 成人无号精品一区二区三区| 在线国产伦理一区| 亚洲图片欧美视频| 三上悠亚亚洲一区| 999视频在线观看| 久久综合视频网| 免费电影视频在线看| 国产精品丝袜久久久久久高清| 成人av资源网站| 在线观看午夜av| 91亚洲精华国产精华| 国产精品嫩草影院av蜜臀| 涩涩涩视频在线观看| 国严精品久久久久久亚洲影视| 亚洲免费观看视频| 精品不卡在线| 日韩免费av片在线观看| 欧美黄色录像片| 色哟哟免费在线观看 | 亚洲国产精品久久人人爱蜜臀| 77thz桃花论族在线观看| 成人黄色大片在线免费观看| 成人精品一区二区三区四区| 日本动漫理论片在线观看网站 | 91性感美女视频| av在线影院| 亚洲jizzjizz日本少妇| 国产精品国产三级国产普通话蜜臀| 女囚岛在线观看| 国产精品日韩欧美一区二区| 亚洲在线视频免费观看| 日韩精品三区| 瑟瑟在线观看| 91久久国产婷婷一区二区 | 性欧美.com| 亚洲韩国一区二区三区| 国产人妖一区| 午夜老司机精品| 欧美二区三区的天堂| 狠狠入ady亚洲精品经典电影| 男女视频网站免费观看| 992tv在线成人免费观看| 久久综合资源网| 欧美在线se| 日韩精品一区二区三区色欲av| 日韩在线一区二区三区免费视频| 国产一区在线视频| 性国裸体高清亚洲| 色撸撸在线观看| 国产亚洲欧洲黄色| aaa欧美日韩| 福利在线一区| 制服丝袜影音| 国产精品91在线| 大桥未久av一区二区三区| 成人免费在线播放| 九色在线网站| 91视频8mav| 欧美探花视频资源| 麻豆91精品| 英国三级经典在线观看| 国产一区二区四区| 欧美另类在线观看| 亚洲日本电影在线| 一本一道久久综合狠狠老| 日本在线免费网| 这里只有精品66| 亚洲一区第一页| 2021国产精品久久精品| 亚洲精品3区| 国产二区在线播放| 中文字幕一区二区三区有限公司 | 欧美色图第一页| 亚洲一区二区三区高清| 色呦呦在线视频| 国产一区二区三区无遮挡| 亚洲国产成人精品电影| 白白色 亚洲乱淫| 人人精品亚洲| 日韩资源在线| 欧美日本三区| 男人天堂v视频| 97久久精品午夜一区二区| 91.麻豆视频| 国产91精品入口| 黄色不卡一区| sis001亚洲原创区| 亚洲免费看av| 精品在线不卡| 久久久精品在线观看|