背景介紹
PyTorch是由Facebook人工智能研究院于2017年1月在github上開源的深度學習框架,一經開源就迅速吸引了人們的眼球。其歷史可以追溯至2002年使用Lua語言的Torch框架,并由其幕后團隊一手打造。PyTorch作為Torch框架的繼任者,并不僅僅只是移植代碼并提供接口,而是深入支持了Python,對大量模塊進行了重構,并新增了最先進的變量自動求導系統,成為時下最流行的動態圖框架。
在入門時,PyTorch提供了完整的文檔,并有著活躍的社區論壇,對于新手而言上手遇到的難關容易解決。更深入一些,在特性設計上,PyTorch對于抽象出的概念較少,易于理解,同時提供的API的設計理念與Torch一脈相承,符合人的一般思維,接口優雅。而框架最核心的性能方面,PyTorch的速度表現在許多評測中勝過TensorFlow和Keras等知名框架。
本文將以一個使用了pytorch的demo代碼pytorch-classify為例,通過華為云上的容器服務一鍵式部署,5分鐘完成免費的云上pytorch代碼的部署。
傳統部署方式
首先是準備環境。先有個服務器,這臺服務器需要能夠被外部訪問。而后在操作系統里使用yum安裝需要的python(3.6.5)、pip、git,再通過pip等方式獲取到代碼需要的依賴(pytorch 0.4.1),準備好軟件依賴后檢查pytorch-classify代碼所需的各項環境配置是否滿足要求。而后通過git拉取版本代碼放入環境內,通過腳本運行起來。
在簡單環境下,這種部署方式是沒有任何問題的。但是由于真實環境復雜,事情并沒有那么簡單,上面的每一步都可能會有問題,并且有些問題很難處理。比如說安裝軟件的時候,環境上已有2.7.11的python版本,并且已經為另外一個項目所使用,那么此時的你并不一定有能力與魄力選擇將python版本升級并還能保證一切都是ok的。
本方法在復雜環境下部署時間上限與影響范圍極難估計,只適合簡單應用的部署。
華為云上容器部署方式
容器依托操作系統提供的沙箱機制,能夠將應用及其運行環境直接打包為鏡像,一次打包多次運行。同時,依托于Kubernetes(k8s)等容器編排引擎,容器支持自動化部署以及大規模可伸縮的應用容器化管理,這些特性大大方便了應用的部署。K8s使應用系統變成了一系列應用相關的配置,簡單同時不易出錯,在部署大型應用系統的時候也有一戰之力。
一個應用系統一般會有多個應用相關的配置,雖然現在升級的時候只需要修改配置項,但是由人工逐項操作不免依然費時費力還容易出錯。此時,你需要華為云的應用編排服務(AOS)。
在AOS中,一個應用系統對應一個堆棧,堆棧由模板加配置生成,只需要修改配置,其他一切由AOS負責。

依然以pytorch-classify這個應用為例,經過AOS設計器的設計,可以表示成上圖表示的應用系統。一切清清楚楚,所見即所得。
實操環節
由于傳統部署方式各種操作較為不便,沒有提供實操的步驟。下文提供的是華為云上容器部署方式的操作指南,操作一遍之后即可得體會到AOS的便捷之處。
后文中AOS模板中包含了代碼,這種方式常見于開發環境,即代碼與環境分離,代碼的變動相較于環境而言較大的情況下。而在生產環境推薦直接將代碼打包進入鏡像中使用,但是對于當前演示沒有影響。
操作如下:
一、注冊華為云賬號并實名認證(如已有華為云實名認證賬號可直接進行下一步)
1.賬號注冊
進入華為云官網首頁,點擊右上角的【注冊】按鈕:

設置賬號名、密碼、手機號、短信驗證碼并勾選“我已閱讀并同意《華為云用戶協議》和《隱私政策聲明》”,單擊【同意協議并注冊】即可完成注冊。
2.實名認證
用戶注冊完華為云賬號后需要進行實名認證才能使用相關服務,實名認證流程也非常簡單,在用戶中心可以看到實名認證的提示信息,根據頁面引導選擇用戶類型和認證類型進行認證即可。

二、開通3天免費容器集群
1.在【云容器引擎】-【體驗中心】-【初級案例】模塊找到購買集群,單擊【體驗】按鈕根據界面引導進行免費集群和節點的創建。

2.資源創建完后,到【服務列表】-【彈性公網IP】找到創建好的彈性ip后記錄下來,在第三步部署pytorch-classify應用時會用到。

三、pytorch-classify代碼一鍵式部署
1.在【應用編排服務】-【模板市場】-【公共模板】模塊找到pytorch-classify應用,進入模板詳情頁,單擊【創建堆棧】按鈕。

2.填寫相關入參信息,包括堆棧名稱、彈性ip等,并選擇剛才創建的集群:

在輸入中填入從第二步中獲取到的彈性ip地址。

pytorch-classify選項卡中可以填寫鏡像的地址,由于該選項有默認值,直接略過即可。所有參數設置完以后,點擊【下一步】,點擊【創建堆棧】。
3.一鍵式部署pytorch-classify:
1分鐘后堆棧創建成功。

4.進入堆棧詳情,在輸出參數中有pytorch-classify的訪問鏈接,點擊鏈接:

5.可以正常使用應用的功能:

寫在最后的話
前文中的AOS模板包含了整個應用系統中所必須的各項配置,如應用的部署、依賴的配置項、外部訪問所需要的服務,但是AOS能力并不止于此。AOS還有能力對于資源如虛機、網絡、安全組以及中間件如數據庫、消息隊列等進行創建等編排操作,再大的應用也和前文的操作一樣,一鍵式部署搞定~
如對AOS感興趣,可以訪問AOS幫助中心了解詳細內容。
特別提醒:本網內容轉載自其他媒體,目的在于傳遞更多信息,并不代表本網贊同其觀點。其原創性以及文中陳述文字和內容未經本站證實,對本文以及其中全部或者部分內容、文字的真實性、完整性、及時性本站不作任何保證或承諾,并請自行核實相關內容。本站不承擔此類作品侵權行為的直接責任及連帶責任。如若本網有任何內容侵犯您的權益,請及時聯系我們,本站將會在24小時內處理完畢。