99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

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

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

AutoML:訓(xùn)練模型以識別凹坑

新機(jī)器視覺 ? 來源:深度學(xué)習(xí)與計算機(jī)視覺 ? 作者:深度學(xué)習(xí)與計算機(jī) ? 2022-03-15 11:11 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

從我們訓(xùn)練的模型中得到的坑洞預(yù)測和置信度分?jǐn)?shù):f9cc1442-9659-11ec-952b-dac502259ad0.png初始算法選擇和超參數(shù)優(yōu)化是我個人不喜歡做的活動。如果你像我一樣,那么也許你會喜歡自動機(jī)器學(xué)習(xí)(AutoML),一種我們可以讓腳本為我們完成這些耗時的ML任務(wù)的技術(shù)。Azure機(jī)器學(xué)習(xí)(AML)是一項(xiàng)云服務(wù),其功能包括準(zhǔn)備和創(chuàng)建數(shù)據(jù)集、訓(xùn)練模型以及將其部署為web服務(wù)變得更加容易。最近,AML團(tuán)隊發(fā)布了AutoML功能,供公眾預(yù)覽。今天,我們將使用此功能訓(xùn)練一個目標(biāo)檢測模型,以識別道路上的凹坑。在這篇文章中,我將簡要回顧一些AML和目標(biāo)檢測的概念,因此你不必完全熟悉它們就可以進(jìn)行后續(xù)操作。本教程主要基于Azure中的這個示例,你可以查看我在這里編寫的Jupyter筆記本:https://github.com/dmesquita/azureml-automl-potholes-object-detection酷,讓我們開始吧!

我們該怎么辦?

對象檢測數(shù)據(jù)集很有趣,因?yàn)樗鼈冇杀砀駭?shù)據(jù)(邊界框的注釋)和圖像數(shù)據(jù)(.png、.jpeg等)組成。COCO格式是對象檢測數(shù)據(jù)集的一種流行格式,我們將使用此格式下載坑洞數(shù)據(jù)集:https://public.roboflow.com/object-detection/pothole。Azure機(jī)器學(xué)習(xí)使用TABLAR DATASET格式,因此我們需要做的第一件事是將COCO轉(zhuǎn)換為TABLAR DATASET。轉(zhuǎn)換后,我們將選擇一種對象檢測算法,并最終訓(xùn)練模型。

1-準(zhǔn)備數(shù)據(jù)集

我從Roboflow那里得到了數(shù)據(jù)集。它有665張標(biāo)有坑洞的道路圖片,由Atikur Rahman Chitholian創(chuàng)作并分享,作為其論文的一部分。Roboflow團(tuán)隊按照70/20/10將數(shù)據(jù)集劃分為訓(xùn)練-驗(yàn)證-測試集。每個拆分都有兩個主要組件:
  • _annotations.coco.json,一個包含images、categories和annotations的json文件
  • 圖像本身(.jpg文件)
以下是鍵:
  • images:包含有關(guān)數(shù)據(jù)集圖像的信息(id、文件名、大小等)
  • categories:邊界框類別的名稱和id
  • annotations:包含有關(guān)對象的信息,包括邊界框坐標(biāo)(在此數(shù)據(jù)集中,它們位于絕對坐標(biāo))、對象的圖像id和類別id
現(xiàn)在是開始與AML合作的時候了。你需要做的第一件事是創(chuàng)建Azure機(jī)器學(xué)習(xí)工作區(qū)。你可以使用上的web界面來執(zhí)行此操作https://portal.azure.com.我們需要一個計算實(shí)例來運(yùn)行,然后再運(yùn)行訓(xùn)練,所以需要在你的工作區(qū)內(nèi)創(chuàng)建一個。圖像任務(wù)的AutoML模型需要GPU計算實(shí)例。你也可以使用web界面創(chuàng)建計算實(shí)例。創(chuàng)建計算實(shí)例:f9ed04c2-9659-11ec-952b-dac502259ad0.png我已經(jīng)下載并提取了數(shù)據(jù)庫中的數(shù)據(jù)集.放在/potholeObjects文件夾。每個拆分都有一個文件夾,里面有圖像和JSON文件。f9ff286e-9659-11ec-952b-dac502259ad0.png你需要將圖像和JSON文件上傳到數(shù)據(jù)存儲,以便AML可以訪問它們。數(shù)據(jù)存儲是云數(shù)據(jù)源的抽象。創(chuàng)建AML工作區(qū)時,將創(chuàng)建AzureBlobDatastore并將其設(shè)置為默認(rèn)值。我們將使用此默認(rèn)數(shù)據(jù)存儲并將圖像上傳到那里。

						fromazureml.coreimportWorkspace workspace=Workspace.from_config()#如果你在一個aml計算實(shí)例上運(yùn)行notebook,這是可行的 default_datastore=workspace.get_default_datastore() datastore_name=default_datastore.name 注釋采用COCO格式(JSON),但tablerDataSet要求注釋采用JSON行。tablerDataset具有相同的元數(shù)據(jù),但以不同的鍵組織。以下是用于對象檢測的TablerDataset的外觀:

						{ "image_url":"AmlDatastore://data_directory/../Image_name.image_format", "image_details":{ "format":"image_format", "width":"image_width", "height":"image_height" }, "label":[ { "label":"class_name_1", "topX":"xmin/width", "topY":"ymin/height", "bottomX":"xmax/width", "bottomY":"ymax/height", "isCrowd":"isCrowd" }, { "label":"class_name_2", "topX":"xmin/width", "topY":"ymin/height", "bottomX":"xmax/width", "bottomY":"ymax/height", "isCrowd":"isCrowd" }, "..." ] } 幸運(yùn)的是,微軟工程師編寫了一個腳本來轉(zhuǎn)換COCO:https://github.com/Azure/azureml-examples/blob/1a41978d7ddc1d1f831236ff0c5c970b86727b44/python-sdk/tutorials/automl-with-azureml/image-object-detection/coco2jsonl.py此文件的image_url鍵需要指向我們正在使用的數(shù)據(jù)存儲中的圖像文件(默認(rèn))。我們使用coco2jsonl的base_url參數(shù)指定。

						#從coco文件生成訓(xùn)練jsonl文件 !pythoncoco2jsonl.py --input_coco_file_path"./potholeObjects/train/_annotations.coco.json" --output_dir"./potholeObjects/train"--output_file_name"train_pothole_from_coco.jsonl" --task_type"ObjectDetection" --base_url"AmlDatastore://{datastore_name}/potholeObjects/train/" 我們將對驗(yàn)證集運(yùn)行相同的命令?,F(xiàn)在,下一步是將文件上傳到數(shù)據(jù)存儲,并在AML中創(chuàng)建數(shù)據(jù)集。不要將數(shù)據(jù)集與數(shù)據(jù)存儲混淆。數(shù)據(jù)集是版本控制的打包數(shù)據(jù)對象,通?;跀?shù)據(jù)存儲中的文件創(chuàng)建。我們將從JSON行文件創(chuàng)建數(shù)據(jù)集。

						fromazureml.coreimportDataset fromazureml.data.datapathimportDataPath fromazureml.dataimportDataType #上傳文件到數(shù)據(jù)存儲 Dataset.File.upload_directory( src_dir="./potholeObjects/train/",target=DataPath(default_datastore,"/potholeObjects/train"),show_progress=True ) training_dataset_name="potholeObjectesTrainingDataset" #創(chuàng)建數(shù)據(jù)集 training_dataset=Dataset.Tabular.from_json_lines_files( path=DataPath(default_datastore,"/potholeObjects/train/train_pothole_from_coco.jsonl"), set_column_types={"image_url":DataType.to_stream(default_datastore.workspace)}, ) #在工作區(qū)中注冊數(shù)據(jù)集 training_dataset=training_dataset.register( workspace=workspace,name=training_dataset_name ) 對于訓(xùn)練和驗(yàn)證拆分,也將這樣做。如果一切順利,你可以看到AML內(nèi)部的圖像預(yù)覽。AML工作區(qū)內(nèi)的數(shù)據(jù)集預(yù)覽fa1710fa-9659-11ec-952b-dac502259ad0.png

2.進(jìn)行實(shí)驗(yàn)

在AML內(nèi)部,你運(yùn)行的一切都稱為實(shí)驗(yàn)。要使用AutoML訓(xùn)練模型,你將創(chuàng)建一個實(shí)驗(yàn),指向它假定運(yùn)行的計算目標(biāo),并提供AutoML參數(shù)的配置。讓我們首先創(chuàng)建實(shí)驗(yàn)并從工作區(qū)獲取計算機(jī)實(shí)例:

						fromazureml.coreimportExperiment experiment_name="pothole-yolov5-model" experiment=Experiment(workspace,name=experiment_name) compute_target=workspace.compute_targets['gpu-computer']#給計算實(shí)例的名稱 在這里,我將使用yolov5默認(rèn)參數(shù)運(yùn)行實(shí)驗(yàn)。你需要提供超參數(shù)、計算目標(biāo)、訓(xùn)練數(shù)據(jù)和驗(yàn)證數(shù)據(jù)(如示例所示,驗(yàn)證數(shù)據(jù)集是可選的)。

						fromazureml.automl.core.shared.constantsimportImageTask fromazureml.train.automlimportAutoMLImageConfig fromazureml.train.hyperdriveimportGridParameterSampling,choice automl_config_yolov5=AutoMLImageConfig( task=ImageTask.IMAGE_OBJECT_DETECTION, compute_target=compute_target, training_data=training_dataset, validation_data=validation_dataset, hyperparameter_sampling=GridParameterSampling({"model_name":choice("yolov5")}), iterations=1, ) 現(xiàn)在可以提交實(shí)驗(yàn)了:

						automl_image_run=experiment.submit(automl_config_yolov5) 你可以使用Workspace web界面監(jiān)控實(shí)驗(yàn):fa2fffde-9659-11ec-952b-dac502259ad0.png以下是Microsoft教程中的一個示例:

						fromazureml.automl.core.shared.constantsimportImageTask fromazureml.train.automlimportAutoMLImageConfig fromazureml.train.hyperdriveimportBanditPolicy,RandomParameterSampling fromazureml.train.hyperdriveimportchoice,uniform parameter_space={ "model":choice( { "model_name":choice("yolov5"), "learning_rate":uniform(0.0001,0.01), "model_size":choice("small","medium"),#模型相關(guān) #'img_size':choice(640,704,768),#特定型號;可能需要有大內(nèi)存的GPU }, { "model_name":choice("fasterrcnn_resnet50_fpn"), "learning_rate":uniform(0.0001,0.001), "optimizer":choice("sgd","adam","adamw"), "min_size":choice(600,800),#模型相關(guān) #'warmup_cosine_lr_warmup_epochs':choice(0,3), }, ), } tuning_settings={ "iterations":10, "max_concurrent_iterations":2, "hyperparameter_sampling":RandomParameterSampling(parameter_space), "early_termination_policy":BanditPolicy( evaluation_interval=2,slack_factor=0.2,delay_evaluation=6 ), } automl_image_config=AutoMLImageConfig( task=ImageTask.IMAGE_OBJECT_DETECTION, compute_target=compute_target, training_data=training_dataset, validation_data=validation_dataset, **tuning_settings, ) 

3-將預(yù)測可視化

這個yolov5模型是使用Pytorch訓(xùn)練的,因此我們可以下載模型并使用Jupyter筆記本檢查預(yù)測。我的花了56分鐘訓(xùn)練。獲取模型需要做的第一件事是注冊工作區(qū)中的最佳運(yùn)行,以便訪問模型。

						best_child_run=automl_image_run.get_best_child() model_name=best_child_run.properties["model_name"] model_output_path=best_child_run.properties["model_output_path"] #從最佳運(yùn)行中注冊模型 model=best_child_run.register_model( model_name=model_name,model_path=model_output_path ) 現(xiàn)在我們可以下載模型了并運(yùn)行推斷。為此,我們將使用azureml contrib automl dnn vision包中的代碼:

						fromazureml.contrib.automl.dnn.vision.common.model_export_utilsimportload_model,run_inference fromazureml.contrib.automl.dnn.vision.object_detection_yolo.writers.scoreimport_score_with_model TASK_TYPE='image-object-detection' model_settings={"img_size":640,"model_size":"medium","box_score_thresh":0.1,"box_iou_thresh":0.5} model_wrapper=load_model(TASK_TYPE,'model.pt',**model_settings) sample_image="./img-23_jpg.rf.e6aa0daf83e72ccbf1ea10eb6a6ab3bd.jpg" withopen(sample_image,'rb')asf: bytes_img=f.read()  model_response=run_inference(model_wrapper,bytes_img,_score_with_model) 我使用Microsoft教程中的代碼來可視化邊界框。以下是測試圖像的結(jié)果:從我們訓(xùn)練的模型中得到的坑洞預(yù)測和置信度分?jǐn)?shù):fa43f0fc-9659-11ec-952b-dac502259ad0.png酷吧?

最后

Azure機(jī)器學(xué)習(xí)是一個很好的工具,可以讓你開始機(jī)器學(xué)習(xí)(在我們的例子中是深度學(xué)習(xí)),因?yàn)樗[藏了很多復(fù)雜性。你可以在Jupyter筆記本上查看所有代碼:https://github.com/dmesquita/azureml-automl-potholes-object-detection。管道中的下一步是將模型部署為web服務(wù)。如果你有興趣,也可以使用Microsoft教程檢查如何做到這一點(diǎn):https://github.com/dmesquita/azureml-automl-potholes-object-detection。參考引用Pothole Dataset. Shared By. Atikur Rahman Chitholian. November 2020. License. ODbL v1.0 審核編輯 :李倩

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

原文標(biāo)題:AutoML:訓(xùn)練模型以識別凹坑

文章出處:【微信號:vision263com,微信公眾號:新機(jī)器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    AI模型是如何訓(xùn)練的?訓(xùn)練一個模型花費(fèi)多大?

    電子發(fā)燒友網(wǎng)報道(文/李彎彎)在深度學(xué)習(xí)中,經(jīng)常聽到一個詞“模型訓(xùn)練”,但是模型是什么?又是怎么訓(xùn)練的?在人工智能中,面對大量的數(shù)據(jù),要在雜亂無章的內(nèi)容中,準(zhǔn)確、容易地
    的頭像 發(fā)表于 10-23 00:19 ?2.8w次閱讀

    【大語言模型:原理與工程實(shí)踐】大語言模型的預(yù)訓(xùn)練

    增長。DeepMind在相關(guān)論文中指出,模型大小和訓(xùn)練Token數(shù)應(yīng)以相似速率增長,確保最佳性能。因此,構(gòu)建與模型規(guī)模相匹配的預(yù)訓(xùn)練數(shù)據(jù)至
    發(fā)表于 05-07 17:10

    Pytorch模型訓(xùn)練實(shí)用PDF教程【中文】

    本教程實(shí)際應(yīng)用、工程開發(fā)為目的,著重介紹模型訓(xùn)練過程中遇到的實(shí)際問題和方法。在機(jī)器學(xué)習(xí)模型開發(fā)中,主要涉及三大部分,分別是數(shù)據(jù)、模型和損失
    發(fā)表于 12-21 09:18

    AutoML和神經(jīng)架構(gòu)搜索介紹

    AutoMl及NAS概述:更有效地設(shè)計神經(jīng)網(wǎng)絡(luò)模型工具
    發(fā)表于 09-04 06:37

    node.js在訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)模型識別圖像中物體的方法

    如何在Node.js環(huán)境下使用訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)模型(Inception、SSD)識別圖像中的物體。
    的頭像 發(fā)表于 04-06 13:11 ?9528次閱讀

    AutoML新書:AutoML系統(tǒng)背后的基礎(chǔ)知識

    傳統(tǒng)上,術(shù)語AutoML用于描述模型選擇和/或超參數(shù)優(yōu)化的自動化方法。這些方法適用于許多類型的算法,例如隨機(jī)森林,梯度提升機(jī)器(gradient boosting machines),神經(jīng)網(wǎng)絡(luò)等
    的頭像 發(fā)表于 10-18 09:50 ?5275次閱讀

    Waymo用AutoML自動生成機(jī)器學(xué)習(xí)模型

    Waymo十周年之際,發(fā)布了自動駕駛機(jī)器學(xué)習(xí)模型的構(gòu)建思路,原來很多內(nèi)部架構(gòu)是由 AutoML 完成的。
    的頭像 發(fā)表于 01-19 09:05 ?3624次閱讀

    關(guān)于AutoML的完整資源列表

    在傳統(tǒng)深度學(xué)習(xí)的模型構(gòu)建中,主要包含以下步驟:數(shù)據(jù)處理、特征工程、模型架構(gòu)選擇、超參數(shù)優(yōu)化、模型后處理、結(jié)果分析。這些步驟往往會耗費(fèi)大量人力和時間。在 AutoML 中,則可以對大部分
    的頭像 發(fā)表于 06-07 17:12 ?3479次閱讀
    關(guān)于<b class='flag-5'>AutoML</b>的完整資源列表

    AutoML技術(shù)提高NVIDIA GPU和RAPIDS速度

      AutoGluon AutoML 工具箱使培訓(xùn)和部署尖端技術(shù)變得很容易 復(fù)雜業(yè)務(wù)問題的精確機(jī)器學(xué)習(xí)模型。此外, AutoGluon 與 RAPIDS 的集成充分利用了 NVIDIA GPU 計算的潛力,使復(fù)雜模型
    的頭像 發(fā)表于 04-26 16:01 ?2640次閱讀
    <b class='flag-5'>AutoML</b>技術(shù)提高NVIDIA GPU和RAPIDS速度

    AI模型是如何訓(xùn)練的?訓(xùn)練一個模型花費(fèi)多大?

    電子發(fā)燒友網(wǎng)報道(文/李彎彎)在深度學(xué)習(xí)中,經(jīng)常聽到一個詞“模型訓(xùn)練”,但是模型是什么?又是怎么訓(xùn)練的?在人工智能中,面對大量的數(shù)據(jù),要在雜亂無章的內(nèi)容中,準(zhǔn)確、容易地
    的頭像 發(fā)表于 10-23 00:20 ?9716次閱讀

    使用 NVIDIA TAO 工具套件和預(yù)訓(xùn)練模型加快 AI 開發(fā)

    NVIDIA 發(fā)布了 TAO 工具套件 4.0 。該工具套件通過全新的 AutoML 功能、與第三方 MLOPs 服務(wù)的集成以及新的預(yù)訓(xùn)練視覺 AI 模型提高開發(fā)者的生產(chǎn)力。該工具套件的企業(yè)版現(xiàn)在
    的頭像 發(fā)表于 12-15 19:40 ?1337次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練步驟

    卷積神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練步驟? 卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network, CNN)是一種常用的深度學(xué)習(xí)算法,廣泛應(yīng)用于圖像識別、語音識別、自然語言處理等諸多
    的頭像 發(fā)表于 08-21 16:42 ?2285次閱讀

    人臉識別模型訓(xùn)練是什么意思

    人臉識別模型訓(xùn)練是指通過大量的人臉數(shù)據(jù),使用機(jī)器學(xué)習(xí)或深度學(xué)習(xí)算法,訓(xùn)練出一個能夠識別和分類人臉的模型
    的頭像 發(fā)表于 07-04 09:16 ?1328次閱讀

    人臉識別模型訓(xùn)練失敗原因有哪些

    : 1.1 數(shù)據(jù)量不足 人臉識別模型需要大量的數(shù)據(jù)進(jìn)行訓(xùn)練,提高模型的泛化能力。如果數(shù)據(jù)量不足,模型
    的頭像 發(fā)表于 07-04 09:17 ?1420次閱讀

    人臉識別模型訓(xùn)練流程

    人臉識別模型訓(xùn)練流程是計算機(jī)視覺領(lǐng)域中的一項(xiàng)重要技術(shù)。本文將詳細(xì)介紹人臉識別模型訓(xùn)練流程,包括
    的頭像 發(fā)表于 07-04 09:19 ?1923次閱讀