精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

AutoML:訓練模型以識別凹坑

新機器視覺 ? 來源:深度學習與計算機視覺 ? 作者:深度學習與計算機 ? 2022-03-15 11:11 ? 次閱讀

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

我們該怎么辦?

對象檢測數據集很有趣,因為它們由表格數據(邊界框的注釋)和圖像數據(.png、.jpeg等)組成。COCO格式是對象檢測數據集的一種流行格式,我們將使用此格式下載坑洞數據集:https://public.roboflow.com/object-detection/pothole。Azure機器學習使用TABLAR DATASET格式,因此我們需要做的第一件事是將COCO轉換為TABLAR DATASET。轉換后,我們將選擇一種對象檢測算法,并最終訓練模型。

1-準備數據集

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

						fromazureml.coreimportWorkspace workspace=Workspace.from_config()#如果你在一個aml計算實例上運行notebook,這是可行的 default_datastore=workspace.get_default_datastore() datastore_name=default_datastore.name 注釋采用COCO格式(JSON),但tablerDataSet要求注釋采用JSON行。tablerDataset具有相同的元數據,但以不同的鍵組織。以下是用于對象檢測的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" }, "..." ] } 幸運的是,微軟工程師編寫了一個腳本來轉換COCO:https://github.com/Azure/azureml-examples/blob/1a41978d7ddc1d1f831236ff0c5c970b86727b44/python-sdk/tutorials/automl-with-azureml/image-object-detection/coco2jsonl.py此文件的image_url鍵需要指向我們正在使用的數據存儲中的圖像文件(默認)。我們使用coco2jsonl的base_url參數指定。

						#從coco文件生成訓練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/" 我們將對驗證集運行相同的命令?,F在,下一步是將文件上傳到數據存儲,并在AML中創建數據集。不要將數據集與數據存儲混淆。數據集是版本控制的打包數據對象,通?;跀祿鎯χ械奈募摻?。我們將從JSON行文件創建數據集。

						fromazureml.coreimportDataset fromazureml.data.datapathimportDataPath fromazureml.dataimportDataType #上傳文件到數據存儲 Dataset.File.upload_directory( src_dir="./potholeObjects/train/",target=DataPath(default_datastore,"/potholeObjects/train"),show_progress=True ) training_dataset_name="potholeObjectesTrainingDataset" #創建數據集 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)}, ) #在工作區中注冊數據集 training_dataset=training_dataset.register( workspace=workspace,name=training_dataset_name ) 對于訓練和驗證拆分,也將這樣做。如果一切順利,你可以看到AML內部的圖像預覽。AML工作區內的數據集預覽fa1710fa-9659-11ec-952b-dac502259ad0.png

2.進行實驗

在AML內部,你運行的一切都稱為實驗。要使用AutoML訓練模型,你將創建一個實驗,指向它假定運行的計算目標,并提供AutoML參數的配置。讓我們首先創建實驗并從工作區獲取計算機實例:

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

						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, ) 現在可以提交實驗了:

						automl_image_run=experiment.submit(automl_config_yolov5) 你可以使用Workspace web界面監控實驗: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"),#模型相關 #'img_size':choice(640,704,768),#特定型號;可能需要有大內存的GPU }, { "model_name":choice("fasterrcnn_resnet50_fpn"), "learning_rate":uniform(0.0001,0.001), "optimizer":choice("sgd","adam","adamw"), "min_size":choice(600,800),#模型相關 #'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-將預測可視化

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

						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"] #從最佳運行中注冊模型 model=best_child_run.register_model( model_name=model_name,model_path=model_output_path ) 現在我們可以下載模型了并運行推斷。為此,我們將使用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教程中的代碼來可視化邊界框。以下是測試圖像的結果:從我們訓練的模型中得到的坑洞預測和置信度分數:fa43f0fc-9659-11ec-952b-dac502259ad0.png酷吧?

最后

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

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 機器學習
    +關注

    關注

    66

    文章

    8377

    瀏覽量

    132410
  • 訓練模型
    +關注

    關注

    1

    文章

    35

    瀏覽量

    3802

原文標題:AutoML:訓練模型以識別凹坑

文章出處:【微信號:vision263com,微信公眾號:新機器視覺】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    AI模型是如何訓練的?訓練一個模型花費多大?

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

    【大語言模型:原理與工程實踐】大語言模型的預訓練

    增長。DeepMind在相關論文中指出,模型大小和訓練Token數應以相似速率增長,確保最佳性能。因此,構建與模型規模相匹配的預訓練數據至
    發表于 05-07 17:10

    Pytorch模型訓練實用PDF教程【中文】

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

    AutoML和神經架構搜索介紹

    AutoMl及NAS概述:更有效地設計神經網絡模型工具
    發表于 09-04 06:37

    node.js在訓練好的神經網絡模型識別圖像中物體的方法

    如何在Node.js環境下使用訓練好的神經網絡模型(Inception、SSD)識別圖像中的物體。
    的頭像 發表于 04-06 13:11 ?9113次閱讀

    AutoML新書:AutoML系統背后的基礎知識

    傳統上,術語AutoML用于描述模型選擇和/或超參數優化的自動化方法。這些方法適用于許多類型的算法,例如隨機森林,梯度提升機器(gradient boosting machines),神經網絡等
    的頭像 發表于 10-18 09:50 ?5074次閱讀

    Waymo用AutoML自動生成機器學習模型

    Waymo十周年之際,發布了自動駕駛機器學習模型的構建思路,原來很多內部架構是由 AutoML 完成的。
    的頭像 發表于 01-19 09:05 ?3307次閱讀

    關于AutoML的完整資源列表

    在傳統深度學習的模型構建中,主要包含以下步驟:數據處理、特征工程、模型架構選擇、超參數優化、模型后處理、結果分析。這些步驟往往會耗費大量人力和時間。在 AutoML 中,則可以對大部分
    的頭像 發表于 06-07 17:12 ?3242次閱讀
    關于<b class='flag-5'>AutoML</b>的完整資源列表

    AutoML技術提高NVIDIA GPU和RAPIDS速度

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

    AI模型是如何訓練的?訓練一個模型花費多大?

    電子發燒友網報道(文/李彎彎)在深度學習中,經常聽到一個詞“模型訓練”,但是模型是什么?又是怎么訓練的?在人工智能中,面對大量的數據,要在雜亂無章的內容中,準確、容易地
    的頭像 發表于 10-23 00:20 ?8746次閱讀

    使用 NVIDIA TAO 工具套件和預訓練模型加快 AI 開發

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

    卷積神經網絡模型訓練步驟

    卷積神經網絡模型訓練步驟? 卷積神經網絡(Convolutional Neural Network, CNN)是一種常用的深度學習算法,廣泛應用于圖像識別、語音識別、自然語言處理等諸多
    的頭像 發表于 08-21 16:42 ?1627次閱讀

    人臉識別模型訓練是什么意思

    人臉識別模型訓練是指通過大量的人臉數據,使用機器學習或深度學習算法,訓練出一個能夠識別和分類人臉的模型
    的頭像 發表于 07-04 09:16 ?483次閱讀

    人臉識別模型訓練失敗原因有哪些

    : 1.1 數據量不足 人臉識別模型需要大量的數據進行訓練,提高模型的泛化能力。如果數據量不足,模型
    的頭像 發表于 07-04 09:17 ?535次閱讀

    人臉識別模型訓練流程

    人臉識別模型訓練流程是計算機視覺領域中的一項重要技術。本文將詳細介紹人臉識別模型訓練流程,包括
    的頭像 發表于 07-04 09:19 ?834次閱讀