只需5分鐘,教你完成華為云TensorFlow環(huán)境搭建
隨著全球科技變革的推進(jìn),人工智能成為各大公司的研究熱點(diǎn)和戰(zhàn)略重心。TensorFlow是谷歌推出的開(kāi)源機(jī)器學(xué)習(xí)框架,自開(kāi)源以來(lái)便受到極大關(guān)注,是GitHub社區(qū)上***的機(jī)器學(xué)習(xí)、深度學(xué)習(xí)項(xiàng)目之一。目前,TensorFlow可以在多個(gè)云平臺(tái)上部署運(yùn)行,但仍存在軟件的依賴(lài)與管理問(wèn)題,而利用Docker技術(shù)具有的快速部署與可移植等優(yōu)勢(shì),可以實(shí)現(xiàn)TensorFlow的虛擬化異構(gòu),解決TensorFlow環(huán)境依賴(lài)的問(wèn)題,并為科研人員及工程師提供便捷的開(kāi)發(fā)環(huán)境,具有現(xiàn)實(shí)的應(yīng)用意義。
本文將介紹一種快速搭建TensorFlow開(kāi)發(fā)環(huán)境的方法,通過(guò)華為云上的容器服務(wù)一鍵式部署,5分鐘完成免費(fèi)的云上TensorFlow環(huán)境的搭建。
傳統(tǒng)搭建方式
傳統(tǒng)深度學(xué)習(xí)開(kāi)發(fā)環(huán)境搭建在虛機(jī)或物理機(jī)上,需要事先準(zhǔn)備好一臺(tái)可訪問(wèn)外網(wǎng)的虛擬機(jī)或物理機(jī),然后配置yum源,下載安裝一系列的系統(tǒng)庫(kù),然后通過(guò)pip安裝常用的機(jī)器學(xué)習(xí)、深度學(xué)習(xí)相關(guān)python庫(kù)。如果你使用的GPU模式的TensorFlow,還需要手動(dòng)安裝指定版本英偉達(dá)顯卡驅(qū)動(dòng),CUDA計(jì)算庫(kù)。整個(gè)安裝過(guò)程非常繁瑣,你會(huì)碰到各種奇怪的問(wèn)題,很多基本用法在不同版本之間都是不同的,而且有時(shí)并不是安裝一個(gè)庫(kù)的問(wèn)題,同時(shí)涉及與系統(tǒng)庫(kù)的交互,對(duì)于沒(méi)有具備linux相關(guān)知識(shí)的人將是個(gè)極大挑戰(zhàn)性的任務(wù)。
華為云容器部署
容器化部署就非常簡(jiǎn)單,不僅功能和傳統(tǒng)方式的一樣,同時(shí)由于鏡像使用的是官網(wǎng)鏡像,只需要關(guān)注TensorFlow的版本即可,無(wú)需擔(dān)心依賴(lài)庫(kù)版本匹配問(wèn)題。
方法如下:
***步:注冊(cè)華為云賬號(hào)并實(shí)名認(rèn)證(如已有華為云實(shí)名認(rèn)證賬號(hào)可直接進(jìn)行下一步)
賬號(hào)注冊(cè)
進(jìn)入華為云官網(wǎng)首頁(yè)https://www.huaweicloud.com,點(diǎn)擊右上角的【注冊(cè)】按鈕:
設(shè)置賬號(hào)名、密碼、手機(jī)號(hào)、短信驗(yàn)證碼并勾選“我已閱讀并同意《華為云用戶協(xié)議》和《隱私政策聲明》”,單擊【同意協(xié)議并注冊(cè)】即可完成注冊(cè)。
實(shí)名認(rèn)證
用戶注冊(cè)完華為云賬號(hào)后需要進(jìn)行實(shí)名認(rèn)證才能使用相關(guān)服務(wù),實(shí)名認(rèn)證流程也非常簡(jiǎn)單,在用戶中心可以看到實(shí)名認(rèn)證的提示信息,根據(jù)頁(yè)面引導(dǎo)選擇用戶類(lèi)型和認(rèn)證類(lèi)型進(jìn)行認(rèn)證即可。
第二步:開(kāi)通3天免費(fèi)容器集群
在【云容器引擎】-【體驗(yàn)中心】-【初級(jí)案例】模塊找到購(gòu)買(mǎi)集群,單擊【體驗(yàn)】按鈕根據(jù)界面引導(dǎo)進(jìn)行免費(fèi)集群和節(jié)點(diǎn)的創(chuàng)建。頁(yè)面鏈接:https://console.huaweicloud.com/cce2.0/?region=cn-north-1&locale=zh-cn#/app/guidance/list
資源創(chuàng)建完后,到【云容器引擎】-【資源管理】-【節(jié)點(diǎn)管理】找到容器節(jié)點(diǎn)彈性ip后記錄下來(lái),在第三步部署Tensorflow應(yīng)用時(shí)會(huì)用到。頁(yè)面鏈接:https://console.huaweicloud.com/cce2.0/?locale=zh-cn®ion=cn-north-1#/app/resource/node/list
第三步:Tensorflow環(huán)境一鍵式部署
在【應(yīng)用編排服務(wù)】-【模板市場(chǎng)】-【公共模板】找到Tensorflow示例模板,單擊【創(chuàng)建堆?!堪粹o開(kāi)始部署。(頁(yè)面鏈接:https://console.huaweicloud.com/aos/?region=cn-north-1&locale=zh-cn#/app/demoTemplate/demoDetail?id=62e89c6c-7910-8e1a-626d-50b35faccc6b
通過(guò)這個(gè)模板,就可以一鍵式的完成一個(gè)TensorFlow開(kāi)發(fā)環(huán)境的部署,并可以通過(guò)Jupyter Notebook的界面進(jìn)行深度學(xué)習(xí)程序的開(kāi)發(fā)和驗(yàn)證。)
填寫(xiě)部署參數(shù),堆棧名稱(chēng)、彈性IP(第二步中記錄的彈性IP) 、填寫(xiě)Jupyter notebook的登陸密碼
一鍵式部署示例模板,5分鐘內(nèi)創(chuàng)建成功。
● 進(jìn)入堆棧詳情,在輸出參數(shù)中有開(kāi)發(fā)環(huán)境的訪問(wèn)地址,點(diǎn)擊鏈接即可:
輸入創(chuàng)建堆棧時(shí)填寫(xiě)的登陸密碼即可訪問(wèn)Jupyter notebook進(jìn)行開(kāi)發(fā):
小狗檢測(cè)示例
我們可以在剛創(chuàng)建好的開(kāi)發(fā)環(huán)境跑個(gè)簡(jiǎn)單的人工智能小程序:檢測(cè)上傳的小狗圖片,識(shí)別小狗種類(lèi)。
先在Jupyter notebook上傳一張小狗圖片“dog.jpg”。
新建python的開(kāi)發(fā)頁(yè)面
將下面這段小程序的代碼粘貼到python頁(yè)面,按住shift+回車(chē)鍵執(zhí)行。
from keras.applications import ResNet50 from keras.preprocessing.image import img_to_array, load_img from keras.applications import imagenet_utils from keras.applications.resnet50 import preprocess_input, decode_predictions import numpy as np import io import tensorflow as tf def prepare_image(img_path, target): img = load_img(img_path, target_size=(224, 224)) if img.mode != "RGB": img = img.convert("RGB") x = img_to_array(img) x = np.expand_dims(x, axis=0) x = preprocess_input(x) return x model = ResNet50(weights="imagenet") graph = tf.get_default_graph() image = prepare_image("dog.jpg", target=(224, 224)) with graph.as_default(): preds = model.predict(image) results = imagenet_utils.decode_predictions(preds) data = [] for (imagenetID, label, prob) in results[0]: print("Category: ", label, "Probability: ", float(prob)) |
查看執(zhí)行結(jié)果。執(zhí)行過(guò)程耗時(shí)大概20秒左右。識(shí)別結(jié)果置信度***為玩具貴賓犬66.78%,第二名是迷你貴賓犬29.71%,檢測(cè)結(jié)果正確。
這就是一個(gè)基于華為云容器部署的Tensorflow開(kāi)發(fā)環(huán)境,以及一個(gè)簡(jiǎn)單的開(kāi)發(fā)示例,如果開(kāi)發(fā)的程序需要進(jìn)行大規(guī)模的訓(xùn)練,建議使用GPU集群資源,它能夠更高效地執(zhí)行圖像的計(jì)算。另外,若開(kāi)發(fā)過(guò)程發(fā)現(xiàn)我們的鏡像提供的計(jì)算庫(kù)不夠豐富,可以在Jupyter Notebook頁(yè)面執(zhí)行shell命令,安裝python庫(kù)。如果還想訂制個(gè)人化的開(kāi)發(fā)環(huán)境,可以手動(dòng)構(gòu)建鏡像上傳至華為鏡像倉(cāng)庫(kù),然后修改模板元素及參數(shù),生成適合個(gè)人場(chǎng)景的模板。