色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

如何使用docker和python工具包datmo為數據科學和AI框架快速配置環境

新機器視覺 ? 來源:新機器視覺 ? 作者:新機器視覺 ? 2021-03-20 08:57 ? 次閱讀

無論是第一次設置TensorFlow的新手數據科學愛好者,還是使用TB級數據的經驗豐富的AI工程師,安裝庫、軟件包或者框架總是一個困難又繁瑣的過程。但是像Docker這樣的集裝箱化工具正在徹底改變著軟件的可重復性,只不過它們還沒有在數據科學和人工智能社區中流行起來。但隨著機器學習框架和算法的不斷發展,我們將很難花時間專注于學習所有相關的開發人員工具,尤其是那些與模型構建過程沒有直接關聯的工具。

在這篇文章中,我將展示如何使用docker和python工具包datmo為任何流行的數據科學和AI框架快速配置環境。

一.Docker

1.docker是什么

該軟件于2013年由dotCloud 公司推出,發布以來一直備受關注和討論,被認為可能會改變軟件行業。

2.為什么使用docker

如果讓你說出軟件開發最煩人的事情,那么環境配置必然是其中之一。例如開始編寫Python應用程序,那么你的第一個步驟就是在您的計算機上安裝Python。軟件運行時,你不僅需要讓自己計算機上的環境需適合你的應用程序按預期運行,并且還需要與生產環境相匹配。這就是所謂的環境一致性問題。這里面大量的重復勞動不說,還經常出現系統不兼容等莫名其妙的問題,非常令人崩潰。很可能再自己機器上跑通了,但放到用戶的環境里,或者服務器上就出問題了。

那么可不可以在軟件安裝的時候把軟件需要的環境一并復制過去呢?虛擬機(virtual machine)就是帶環境安裝的一種解決方案。它可以在一種操作系統里面運行另一種操作系統,但它的缺點很多:資源占用多、冗余步驟多、啟動慢等等。

Docker是一種全新的虛擬化方式。傳統虛擬機技術是虛擬出一套硬件后,在其上運行一個完整操作系統,在該系統上再運行所需應用進程;而容器內的應用進程直接運行于宿主的內核,容器內沒有自己的內核,而且也沒有進行硬件虛擬。因此容器要比傳統虛擬機更為輕便。在這樣的前提下,它跟傳統的虛擬化方式相比具有眾多優勢:

高效的利用系統資源。

啟動速度快。容器里面的應用,直接就是底層系統的一個進程,而不是虛擬機內部的進程。由于直接運行于宿主內核,無需啟動完整的操作系統,因此可以做到秒級、甚至毫秒級的啟動時間。

確保了應用運行環境一致性。

可以在很多平臺上運行,無論是物理機、虛擬機、公有云、私有云,甚至是筆記本,其運行結果是一致的。

容器只要包含用到的組件即可,而虛擬機是整個操作系統的打包,所以容器文件比擬機文件要小很多。

3.如何使用docker

首先要理解Docker的三個概念:鏡像、容器、倉庫。

鏡像(Image)和容器(Container)的關系,就像是面向對象程序設計中的類和實例一樣,鏡像是靜態的定義,容器是鏡像運行時的實體。容器可以被創建、啟動、停止、刪除、暫停等。鏡像是只讀的,可以用來創建Docker容器,容器看做是一個簡易版的Linux環境(包括root用戶權限、進程空間、用戶空間和網絡空間等)和運行在其中的應用程序。

Docker Registry是集中存放鏡像文件的場所,提供集中的存儲、分發鏡像的服務。一個 Docker Registry中可以包含多個倉庫(Repository);每個倉庫可以包含多個標簽(Tag);每個標簽對應一個鏡像。

最常使用的 Registry 公開服務是官方的 Docker Hub,這也是默認的 Registry,并擁有大量的高質量的官方鏡像。

這里以TensorFlow機器學習框架搭建為例講解如何利用docker快速搭建環境。

首先你需要安裝并啟動Docker。如果要使用GPU則安裝nvidia-docker。

1)直接使用別人做好的鏡像

在命令行輸入以下兩條命令:

docker image pull tensorflow/tensorflow docker run -it -p8888:8888-v /$(pwd)/notebooks:/notebooks tensorflow/tensorflow

第一行命令在Docker Hub上拉取tensorflow官方鏡像的cpu版本。

第二行則由此鏡像創建一個容器,并在容器里運行jupyter服務。在你的瀏覽器上打開http://localhost:8888/,就可以在jupyter里導入TensorFlow包了。

-v 參數的作用是將宿主機當前目錄下的notebook目錄掛載到容器內的/notebooks目錄,不添加這個參數的話,當結束 container 的時候,jupyter notebook 里的內容也會隨之消失。

我們還可以進入到容器里查看容器的環境配置信息

docker run -it -p 8888:8888 tensorflow/tensorflow bash

解釋一下參數含義:

-i:以交互模式運行容器,通常與 -t 同時使用

-t:為容器重新分配一個偽輸入終端,通常與 -i 同時使用

bash:在容器內執行bash命令

root@21cebb7bd6b4:/notebooks# python Python2.7.12(default, Dec 42017,14:50:18) [GCC5.4.020160609] on linux2 Type"help","copyright","credits"or"license"formore information. >>> import tensorflow >>> root@21cebb7bd6b4:/notebooks# python3 Python3.5.2(default, Nov232017,16:37:01) [GCC5.4.020160609] on linux Type"help","copyright","credits"or"license"formore information. >>> import tensorflow Traceback (most recent call last): File"", line1,in ImportError:Nomodulenamed'tensorflow'

2)保存修改后的容器為新的鏡像

通過在容器里執行bash命令后我們可以看到,TensorFlow官方提供的這個容器的環境已經安裝了Python2和Python3,不過只有在python2上安裝了TensorFlow的環境,如果你想在python3運行TensorFlow的話,可以自己手動在容器里進行你喜歡的環境配置。

有沒有辦法把修改好的容器作為基礎鏡像,以后需要創建容器的時候都使用這個新的鏡像呢?通過命令docker commit [CONTAINER]可以提交容器副本,制作屬于你自己的鏡像。命令格式如下:

dockercommit-m="description"-a="ahthorName"97744639b45d ahthorName/tensorflow-python3:latest

參數說明:

-m:提交的描述信息

-a:聲明鏡像作者

97744639b45d:容器ID

ahthorName/tensorflow-python3指定要創建的目標鏡像名

docker ps -a這條命令可以列出所有已經創建的未刪除的容器。

這里分享一個docker hub 上的鏡像docker pull dash00/tensorflow-python3-jupyter,里面已經配置好了python3下TensorFlow的環境,大家可以直接拉取使用。

3)dockerfile定義全新鏡像

上面的方法是在基礎鏡像的容器上做修改創建我們自己的鏡像,我們也可以編寫一個Dockerfile來構建全新的鏡像。我們已經知道Docker鏡像是制作Docker容器的模版,而Dockerfile則是一個定義Docker鏡像的文件。下面我們嘗試編寫一個Dockerfile。

Dockerfile定義了容器內的環境配置。在此環境中,對網絡接口和磁盤驅動器等資源的訪問都是虛擬化的,該環境與系統的其他部分隔離。因此您需要將端口映射到外部的宿主機環境,并具體指定哪些文件是跟外部環境保持一致的。只要在定義好此操作之后,你就可以預期,無論什么時候你運行這個文件,由Dockerfile中定義的應用程序環境的構建都會執行完全相同的操作。

如何創建

這里是一個示例:創建一個空目錄,創建一個名為的文件dockerfile,再創建兩個文件requirements.txt和app.py和dockerfile放在一起。

以下是dockerfile文件內容,注釋里有條語句的解釋:

#使用python:2.7-slim作為基礎鏡像 FROM python:2.7-slim #指定工作目錄(或者稱為當前目錄) WORKDIR /app #將當前文件夾下的內容(requirements.txt和app.py)復制到容器里的/app目錄下 ADD . /app #安裝在requirements.txt文件里指定的python包 RUN pip install --trusted-host pypi.python.org -r requirements.txt #向外部環境暴露80端口 EXPOSE 80 #設置環境變量 ENV NAME World #一旦容器開始運行,則運行app.py作為容器的主進程 CMD ["python", "app.py"]

FROM指定基礎鏡像,是必備的指令,并且必須是第一條指令。在 Docker Store 上有非常多的高質量的官方鏡像提供給我們使用。

RUN 指令是用來執行命令行命令的。

CMD 指令用于指定默認的容器主進程的啟動命令。有別于傳統虛擬機概念,對于容器而言,其啟動程序就是容器的主要進程,容器就是為了主進程而存在的。

有了Dockerfile 文件,我們就可以使用docker image build命令創建 image 文件了。運行:

#-t參數用來指定 image 文件的名字 Docker build -t friendlyhello

如果運行成功,使用docker image ls命令就可以看到新生成的 image 文件friendlyhello了,它位于你機器的本地Docker鏡像注冊表中。

docker imagels REPOSITORY TAG IMAGE ID friendlyhello latest 326387cea398

二.Datmo

如果你覺得上面描述的關于docker的操作依然十分麻煩的話,我還有一個工具推薦給你,那就是datmo。Datmo充分利用了Docker,簡化了流程,幫助您快速輕松地運行AI框架。下面是使用流程:

1.前提條件

安裝并啟動Docker(https://docs.docker.com/install/#supported-platforms)

(如果使用GPU)安裝CUDA 9.0(https://developer.nvidia.com/cuda-90-download-archive)

(如果使用GPU)安裝nvidia-docker(https://github.com/datmo/datmo/wiki/Datmo-GPU-support-and-setup)

2.安裝datmo

就像任何python包一樣,使用以下命令從終端安裝datmo:

$ pip install datmo

3.初始化datmo項目

在終端中,打開項目文件夾。然后,輸入以下命令:

$ datmo init

然后,你將被要求提供項目的名稱和描述。

4.啟動環境設置

在輸入名稱和描述后,datmo將詢問是否要設置環境 - 輸入y并按enter。

5.選擇系統驅動程序(CPU或GPU)

然后,CLI將詢問希望為您的環境選擇哪些系統驅動程序。如果不打算使用GPU,請選擇cpu。

6.選擇一個環境

接下來,你將從眾多預打包環境中選擇一種。只需在提示中回復您要使用的環境的編號或ID。

7.選擇編程語言版本

上述許多環境都有不同的版本,具體取決于你計劃使用的語言和版本。

例如,在選擇keras-tensorflow環境后,我將面臨以下提示,詢問我是否要使用Python 2.7或Python 3.5。

8.啟動工作區

現在是時候啟動你的工作區了。選擇你要使用的工作區,然后在終端中輸入相應的命令。

Jupyter Notebook -?$ datmo notebook JupyterLab -?$ datmo jupyterlab RStudio -? $ datmo rstudio(在R-base環境中可用) 終端模式 -?$ datmo terminal

責任編輯:lq

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

    關注

    0

    文章

    499

    瀏覽量

    22092
  • 應用程序
    +關注

    關注

    38

    文章

    3292

    瀏覽量

    57831
  • python
    +關注

    關注

    56

    文章

    4807

    瀏覽量

    84939

原文標題:5分鐘配置好你的AI開發環境

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

收藏 人收藏

    評論

    相關推薦

    Labview聲音和振動工具包示例文件Sound Level

    Labview 聲音和振動工具包示例文件,聲壓測試,有模擬和DAQ兩個文件。
    發表于 01-05 09:15 ?0次下載

    最新Simplicity SDK軟件開發工具包發布

    最新的SimplicitySDK軟件開發工具包已經發布!此次更新針對SiliconLabs(芯科科技)第二代無線開發平臺帶來了包括藍牙6.0的信道探測(Channel Sounding
    的頭像 發表于 12-24 09:47 ?249次閱讀

    docker-compose配置文件內容詳解以及常用命令介紹

    一、Docker Compose 簡介 Docker Compose是一種用于定義和運行多容器Docker應用程序的工具。通過一個? docker
    的頭像 發表于 12-02 09:29 ?1009次閱讀
    <b class='flag-5'>docker</b>-compose<b class='flag-5'>配置</b>文件內容詳解以及常用命令介紹

    基于EasyGo Vs工具包和Nl veristand軟件進行的永磁同步電機實時仿真

    EasyGo Vs Addon是一款領先的FPGA仿真工具包軟件,它強大地連接了VeriStand軟件與Matlab/Simulink,實時測試和驗證領域帶來了前所未有的便利和效率,特別適用于汽車
    的頭像 發表于 11-27 11:28 ?369次閱讀
    基于EasyGo Vs<b class='flag-5'>工具包</b>和Nl veristand軟件進行的永磁同步電機實時仿真

    Docker運行環境安裝

    、發布、測試和部署,可以幫助開發人員將最新版本代碼應用到生產環境中。 Docker可以安裝在多個平臺中,包括Mac、Windows和Linux。不過,生產環境還是推薦在Linux上運行,以下以主流的Linux操作系統(CentO
    的頭像 發表于 10-29 11:28 ?251次閱讀

    FPGA仿真工具包軟件EasyGo Vs Addon介紹

    EasyGo Vs Addon是一款領先的FPGA仿真工具包軟件,它強大地連接了VeriStand軟件與Matlab/Simulink,實時測試和驗證領域帶來了前所未有的便利和效率,特別適用于汽車、航空航天和能源電力等實時測試和驗證至關重要的行業。
    的頭像 發表于 10-24 15:55 ?475次閱讀
    FPGA仿真<b class='flag-5'>工具包</b>軟件EasyGo Vs Addon介紹

    AI for Science:人工智能驅動科學創新》第4章-AI與生命科學讀后感

    領域的研究人員的工作模式相融合,也是一個亟待解決的問題。然而,這些挑戰也孕育著新的機遇。隨著技術的不斷進步和應用場景的拓展,AI在生命科學領域的應用將更加廣泛和深入,科學家們提供更多
    發表于 10-14 09:21

    AI for Science:人工智能驅動科學創新》第二章AI for Science的技術支撐學習心得

    人工智能在科學研究中的核心技術,包括機器學習、深度學習、神經網絡等。這些技術構成了AI for Science的基石,使得AI能夠處理和分析復雜的數據集,從而發現隱藏在
    發表于 10-14 09:16

    AI for Science:人工智能驅動科學創新》第一章人工智能驅動的科學創新學習心得

    如何激發科學家的創新思維。AI不僅僅是工具,更是一種思維方式,它鼓勵我們跳出傳統框架,以數據
    發表于 10-14 09:12

    名單公布!【書籍評測活動NO.44】AI for Science:人工智能驅動科學創新

    與材料科學、生命科學、電子科學、能源科學環境科學五大領域的交叉融合,通過深入淺出的語言,對基本
    發表于 09-09 13:54

    采用德州儀器 (TI) 工具包進行模擬前端設計應用說明

    電子發燒友網站提供《采用德州儀器 (TI) 工具包進行模擬前端設計應用說明.pdf》資料免費下載
    發表于 09-09 11:21 ?0次下載
    采用德州儀器 (TI) <b class='flag-5'>工具包</b>進行模擬前端設計應用說明

    pytorch環境搭建詳細步驟

    了conda、Python等180多個科學及其依賴項,非常適合用于科學計算(數據科學、機器學習
    的頭像 發表于 08-01 15:38 ?930次閱讀

    AI大模型與AI框架的關系

    多個領域取得顯著成果。而AI框架則是開發和訓練AI模型提供的一套標準接口、特性庫和工具包,它集成了算法的封裝、
    的頭像 發表于 07-15 11:42 ?1205次閱讀

    鴻蒙OpenHarmony技術:【Docker編譯環境

    OpenHarmony開發者提供了兩種Docker環境,以幫助開發者快速完成復雜的開發環境準備工作。
    的頭像 發表于 05-11 09:47 ?1563次閱讀
    鴻蒙OpenHarmony技術:【<b class='flag-5'>Docker</b>編譯<b class='flag-5'>環境</b>】

    QE for Motor V1.3.0:汽車開發輔助工具解決方案工具包

    電子發燒友網站提供《QE for Motor V1.3.0:汽車開發輔助工具解決方案工具包.pdf》資料免費下載
    發表于 02-19 10:44 ?0次下載
    QE for Motor V1.3.0:汽車開發輔助<b class='flag-5'>工具</b>解決方案<b class='flag-5'>工具包</b>
    主站蜘蛛池模板: 扒开女生尿口| 99热精品一区| 亚洲字幕久久| 办公室沙发口爆12P| 精品国产99久久久久久麻豆| 欧美成人国产| 一个人的视频全免费在线观看www| 抽插性奴中出乳精内射| 久久99国产视频| 小荡娃奶真大| 成人精品视频在线| 男男免费看| 在线视频中文字幕| 花蝴蝶高清观看免费| 天美传媒色情原创精品| 超碰97av 在线人人操| 久久亚洲精品专区蓝色区| 亚洲精品卡2卡3卡4卡5卡区 | 老师xxxx69动漫| 亚州天堂在线视频av| 大香伊人久久精品一区二区| 蜜桃传媒星空传媒在线播放| 亚洲中文字幕一二三四区苍井空| 国产精品午夜小视频观看| 日韩av片无码一区二区不卡电影 | 国产网站免费观看| 台湾佬休闲中性娱乐网| 成人麻豆日韩在无码视频| 欧美xxbb| bl高h文合集| 门事件快播| 92午夜免费福利757| 擼擼擼麻豆密臀AV| 最近中文字幕高清中文字幕MV| 久久成人免费观看草草影院| 亚洲中文久久精品AV无码| 好看AV中文字幕在线观看| 亚洲欧美综合在线中文| 精品无人区一区二区三区| 夜夜躁日日躁狠狠| 精品无码三级在线观看视频|