日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Auto-Keras与AutoML:入门指南

發布時間:2024/8/23 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Auto-Keras与AutoML:入门指南 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在本教程中,你將學習如何使用Auto-Keras(Google的AutoML的開源替代品)來實現自動化機器學習和深度學習。

目前來說,深度學習從業者在數據集上訓練神經網絡時,主要正在嘗試優化和平衡兩個目標:

1.適合數據集性質的體系構;

2.實驗調整一組超參數,這將導致模型具有高精度并能夠推廣到訓練和測試集之外的數據。需要調整的典型超參數包括優化算法(SGD,Adam等),學習速率和學習速率調度以及正則化等。

根據數據集和具體問題,深度學習專家可以進行數十到數百次實驗,以找到神經網絡架構和超參數之間的平衡,這些實驗通常需要計算數百到數千小時。

剛剛提到的這種模式僅適用于專家,那非深度學習專家呢?

這就需要Auto-Keras和AutoML:

Auto-Keras和AutoML的最終目標是通過使用自動神經架構搜索(NAS)算法降低進入機器學習和深度學習的門檻。Auto-Keras和AutoML使非深度學習專家能夠以最小的深度學習領域知識或實際數據來訓練他們自己的模型。具有最小機器學習專業知識的程序員可以使用AutoML和Auto-Keras并應用這些算法,只需很少的努力即可實現最先進的性能。

聽起來好得令人難以置信?

也許你需要好好閱讀這篇文章的其余部分以找出原因。

Auto-KerasAutoML:入指南

在本博文的第一部分中,我們將討論自動機器學習(AutoML)和神經架構搜索(NAS),這種算法使得AutoML在應用于神經網絡和深度學習時成為可能。我們還將簡要討論Google的AutoML,這是一套工具和庫,允許具有有限機器學習專業知識的程序員在自己的數據上訓練高精度模型。

當然,谷歌的AutoML是一種專有算法,AutoML的另一種選擇是開源Auto-Keras、它是圍繞Keras和PyTorch而構建。

然后,我將向你展示如何使用Auto-Keras自動訓練網絡以及評估它。

什么是自機器學AutoML)?

Auto-Keras是Google AutoML的替代品。它可以幫助你自動訓練模型,幾乎不需要干預。對于新手深度學習從業者來說,它們是很好的選擇。

在無監督學習之外,非專家的自動機器學習被認為是機器學習的“圣杯”。

想象一下通過以下方式自動創建機器學習模型的能力:

1.安裝庫/使用Web界面;

2.將庫/接口指向你的數據;

3.自動訓練數據模型而無需調整參數/需要深入了解為其提供動力的算法;

一些公司正試圖創建這樣的解決方案,其中一個就是谷歌的AutoML。Google AutoML使非常有限的機器學習經驗的開發人員和工程師能夠自動在他們自己的數據集上訓練神經網絡。

谷歌的底層AutoML算法是迭代的:

1.在訓練集上訓練網絡;

2.在測試集上評估網絡;

3.修改神經網絡架構;

4.調整超參數;

5.重復上述過程;

使用AutoML的程序員或工程師不需要定義他們自己的神經網絡架構或調整超參數,AutoML會自動為他們做這件事。

架構搜索(NAS)使AutoML可能

Google的AutoML和Auto-Keras都采用了一種稱為神經架構搜索(NAS)的算法。根據你的輸入數據集,神經架構搜索算法將自動搜索最佳架構和相應參數。神經架構搜索基本上是用一組自動調整模型的算法取代深度學習工程師/從業者!

在計算機視覺和圖像識別的背景下,神經架構搜索算法將:

1.接受輸入訓練數據集;

2.優化并找到稱為“單元”的架構構建塊,然后讓這些單元自動學習,這可能看起來類似于初始化,殘留或激活微架構;

3.不斷訓練和搜索“NAS搜索空間”以獲得更優化的單元;

如果AutoML系統的用戶是經驗豐富的深度學習從業者,那么他們可能會決定:

1.在訓練數據集的一個非常小的子集上運行NAS;

2.找到一組最佳的架構構建塊/單元;

3.獲取這些單元并手動定義在體系結構搜索期間找到的更深層次的網絡版本;

4.使用自己的專業知識和最佳實踐,在完整的培訓集上訓練網絡;

這種方法是全自動機器學習解決方案與需要專家深度學習實踐者的解決方案之間的混合體,通常這種方法比NAS自己訓練的模型性能更好。

Auto-Keras:谷歌AutoML的開源替代品

在Auto-Keras包是由在德克薩斯州A&M大學數據實驗室團隊開發。Auto-Keras是Google AutoML的開源替代品。

Auto-Keras依然是利用神經架構搜索,但應用“網絡態射”(在更改架構時保持網絡功能)以及貝葉斯優化,以指導網絡態射以實現更高效的神經網絡搜索。你可以在Jin等人的2018年出版物Auto-Keras:Efficient Neural Architecture Search with Network Morphism中找到Auto-Keras框架的全部細節。

安裝Auto-Keras:

正如Auto-Keras GitHub存儲庫所述,Auto-Keras處于“預發布”狀態-它現在還不是正式版本。其次,Auto-Keras需要Python 3.6并且與Python 3.6兼容。如果你使用的是3.6以外的任何其他版本的Python,你將無法使用Auto-Keras軟件包。

如果你想要檢查Python版本,只需使用以下命令:

python --version

如果你有Python 3.6,你可以使用pip安裝Auto-Keras:

pip install tensorflow # or tensorflow-gpu

pip install keras pip install autokeras

使用Auto-Keras實現我們的訓練腳本:

讓我們繼續使用Auto-Keras實現我們的訓練腳本,打開train_auto_keras.py文件并插入以下代碼:

# import the necessary packages from sklearn.metrics import classification_report from keras.datasets import cifar10 import autokeras as ak import osdef main():# initialize the output directoryOUTPUT_PATH = "output"

首先,我們在第2-5行導入必要的包:

·如前所述,我們將使用scikit-learn的classification_report來計算我們將在輸出文件中保存的統計信息。

·我們將使用CIFAR-10數據集,因為它已經被內置到keras.datasets。

·然后是導入import依賴項-autokeras,我已經將它用AK的簡寫代替。

·該os模塊是必需的,因為我們會在建立輸出文件的路徑時,在各種操作系統上容納路徑分隔符。

我們在第7行定義腳本的主要功能,由于Auto-Keras和TensorFlow處理線程的方式,我們需要將代碼包裝在main函數中。有關更多詳細信息,請參閱此GitHub問題線程。

現在讓我們初始化Auto-Keras的訓練時間列表:

# initialize the list of training times that we'll allow# Auto-Keras to train forTRAINING_TIMES = [60 * 60, # 1 hour60 * 60 * 2, # 2 hours60 * 60 * 4, # 4 hours60 * 60 * 8, # 8 hours60 * 60 * 12, # 12 hours60 * 60 * 24, # 24 hours]

上述代碼是限定了一組訓練-TIMES,包括[1,2,4,8,12,24]小時。我們將使用Auto-Keras來探索更長的訓練時間對精確度的影響。

讓我們加載CIFAR-10數據集并初始化類名:

# load the training and testing data, then scale it into the# range [0, 1]print("[INFO] loading CIFAR-10 data...")((trainX, trainY), (testX, testY)) = cifar10.load_data()trainX = trainX.astype("float") / 255.0testX = testX.astype("float") / 255.0# initialize the label names for the CIFAR-10 datasetlabelNames = ["airplane", "automobile", "bird", "cat", "deer","dog", "frog", "horse", "ship", "truck"]

我們的CIFAR-10數據被加載并存儲在第25行的訓練/測試分組中。隨后,我們將這個數據縮放到[0,1]的范圍。接著我們會初始化我們的類labelNames,這10個類包含在CIFAR-10中。請注意,標簽在這里很重要。

現在讓我們開始循環遍歷我們的TRAINING_TIMES,每次都使用Auto-Keras:

# loop over the number of seconds to allow the current Auto-Keras# model to train forfor seconds in TRAINING_TIMES:# train our Auto-Keras modelprint("[INFO] training model for {} seconds max...".format(seconds))model = ak.ImageClassifier(verbose=True)model.fit(trainX, trainY, time_limit=seconds)model.final_fit(trainX, trainY, testX, testY, retrain=True)# evaluate the Auto-Keras modelscore = model.evaluate(testX, testY)predictions = model.predict(testX)report = classification_report(testY, predictions,target_names=labelNames)# write the report to diskp = os.path.sep.join(OUTPUT_PATH, "{}.txt".format(seconds))f = open(p, "w")f.write(report)f.write("\nscore: {}".format(score))f.close()

上面的代碼塊是今天腳本的核心。在第35行我們在每個TRAINING_TIMES上定義了一個循環,我們在其中做以下操作:

·初始化我們的模型(AK.ImageClassifier),并讓訓練開始。請注意,我們并沒有實例化一個特定對象的CNN類,我們也沒有調整超參數。因為Auto-Keras會為我們處理所有這些。

·一旦達到時間限制,請采用Auto-Keras找到的最佳模型和參數+重新訓練模型。

·評估和構建分類報告。

·將分類報告與準確度分數一起寫入磁盤,以便我們評估更長訓練時間的影響。

我們將為每個TRAINING_TIMES重復此過程。

最后,我們將檢查并啟動執行的主線程:

# if this is the main thread of execution then start the process (our # code must be wrapped like this to avoid threading issues with # TensorFlow) if __name__ == "__main__":main()

這里我們檢查確保這是執行的主線程,然后是主函數。僅僅60行代碼,我們就完成了使用CIFAR-10示例腳本編寫Auto-Keras,但是我們還沒有完成......

使用Auto-Keras訓練神經網絡

讓我們繼續使用Auto-Keras訓練我們的神經網絡。

請確保使用本教程的“下載”部分下載源代碼。

從那里打開終端,導航到下載源代碼的位置,然后執行以下命令:

$ python train_auto_keras.py [INFO] training model for 3600 seconds max... Preprocessing the images. Preprocessing finished.Initializing search. Initialization finished.+----------------------------------------------+ | Training model 0 | +----------------------------------------------+ Using TensorFlow backend.No loss decrease after 5 epochs.Saving model. +--------------------------------------------------------------------------+ | Model ID | Loss | Metric Value | +--------------------------------------------------------------------------+ | 0 | 4.816269397735596 | 0.5852 | +--------------------------------------------------------------------------++----------------------------------------------+ | Training model 1 | +----------------------------------------------+ Using TensorFlow backend. Epoch-14, Current Metric - 0.83: 28%|██████▊ | 110/387 [01:02<02:46, 1.67 batch/s]Time is out. [INFO] training model for 86400 seconds max... Preprocessing the images. Preprocessing finished.Initializing search. Initialization finished.+----------------------------------------------+ | Training model 0 | +----------------------------------------------+ Using TensorFlow backend.No loss decrease after 5 epochs. ... +----------------------------------------------+ | Training model 21 | +----------------------------------------------+ Using TensorFlow backend.No loss decrease after 5 epochs.+--------------------------------------------------------------------------+ | Father Model ID | Added Operation | +--------------------------------------------------------------------------+ | | to_deeper_model 16 ReLU | | 16 | to_wider_model 16 64 | +--------------------------------------------------------------------------+Saving model. +--------------------------------------------------------------------------+ | Model ID | Loss | Metric Value | +--------------------------------------------------------------------------+ | 21 | 0.8843476831912994 | 0.9316000000000001 | +--------------------------------------------------------------------------+ +----------------------------------------------+ | Training model 22 | +----------------------------------------------+ Using TensorFlow backend. Epoch-3, Current Metric - 0.9: 80%|████████████████████▊ | 310/387 [03:50<00:58, 1.31 batch/s]Time is out.No loss decrease after 30 epochs.

在這里你可以看到我們的腳本正在指示Auto-Keras執行六組實驗。

在NVIDIA K80 GPU上,總訓練時間為3天多一點

Auto-Keras的結果:

在上圖中,你可以看到訓練時間(x軸)對使用Auto-Keras的總體準確度(y軸)的影響。較短的訓練時間,即1小時和2小時,大約可以達到73%的準確性。一旦我們訓練4小時,我們就能達到高達93%的準確率。訓練8-12小時,我們就能獲得95%的精確度了。超過8-12小時的訓練不會提高我們的準確度,這意味著我們已達到飽和點并且Auto-Keras無法進一步優化。

Auto-Keras和AutoML值得嗎?

在無監督學習之外(從未標記數據自動學習模式),非專家的自動機器學習被認為是機器學習的“圣杯”。Google的AutoML和開源Auto-Keras軟件包都試圖將機器學習帶給大眾,即使是沒有關鍵性技術的經驗的程序員。

雖然Auto-Keras在CIFAR-10上工作得相當好,但是使用我之前關于深度學習,醫學圖像和瘧疾檢測的文章進行了第二組實驗使用簡化的ResNet架構獲得了97.1%的準確率,該架構花費了不到一小時的時間進行訓練。然后我讓Auto-Keras在相同的數據集上運行24小時-結果只有96%的準確度,低于我自己定義的架構。

但不管怎樣,谷歌的AutoML和Auto-Keras都是向前邁出的一大步。

?

原文鏈接
本文為云棲社區原創內容,未經允許不得轉載。

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的Auto-Keras与AutoML:入门指南的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国语对白清晰刺激对白 | 国产麻豆剧果冻传媒白晶晶 | 亚洲精品福利在线观看 | av国产精品| 欧美日韩视频 | 看了下面会湿的视频 | 天堂影视av | 久久r精品| wwwxxx日本 | 波多野结衣50连登视频 | 人妻巨大乳hd免费看 | 妺妺窝人体色www在线下载 | 波多野结衣日韩 | 亚日韩av| 国产精品一区二区免费 | xxxx久久| 欧美日本免费 | 91丨porny丨中文 | 天天操人人 | 国产麻豆成人 | 草草影院在线 | 国产精品免费一区二区三区四区 | 成人一区三区 | 天天干网址 | 亚洲精品综合在线观看 | 黄色小网站入口 | 黄网站色视频 | 欧美日韩精品一区二区三区视频播放 | 国产黄色的视频 | 国产欧美日韩久久 | 国产又粗又长视频 | 91在线色| 中文字幕11页中文字幕11页 | 午夜老司机免费视频 | 91久久久国产精品 | 久久精品无码中文字幕 | 在线国产中文字幕 | 欧美精品日韩在线 | 手机看片1024国产 | 99热亚洲精品 | 天堂素人约啪 | 国产第4页 | 欧美一区视频在线 | 中国美女黄色 | 成人做爰66片免费看网站 | 日本一级片在线观看 | 亚洲jizzjizz日本少妇 | 日本黄色生活片 | 婷婷精品一区二区三区 | 思思在线视频 | 日韩夫妻性生活 | 国内偷拍精品视频 | 欧美视频日韩 | 国产麻豆一区二区三区在线观看 | 成人高潮片免费视频 | 五月天婷婷丁香 | 国产成人无码精品久久久久久 | 欧美黄色一级网站 | 香蕉视频亚洲一级 | 美女久久精品 | 九九热这里有精品 | 日本一区二区在线观看视频 | 日日草日日干 | 日日干夜夜撸 | 中文字幕天堂网 | 亚洲性视频在线 | 国产中文字幕一区二区三区 | 国产午夜福利精品 | 男女国产视频 | 碰碰久久 | 欧美性色视频 | 一本一道久久a久久 | 女人脱裤子让男人捅 | 欧美一级在线 | 欧美在线另类 | 国产精品久久久久久久蜜臀 | www.色天使 | 一本在线 | 亚洲天堂伊人网 | 一本色道久久综合亚洲二区三区 | 日本xxxx高清 | 日韩色中色 | 国产高清在线精品 | 亚洲天堂资源网 | 亚欧美视频 | a级片免费看 | 成人免费xxxxx在线视频 | 国产日韩成人 | 99久久久国产精品无码免费 | 无码粉嫩虎白一线天在线观看 | 欧美一区2区三区4区公司 | 日本伦理片在线播放 | 国产午夜精品理论片在线 | 国产色啪 | 韩国美女黄色片 | 久久黄色网络 | 日韩性网站 | av一区二区三 | 久久日本精品字幕区二区 |