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