anaconda環(huán)境如何復(fù)制粘貼文本 win10怎么安裝anaconda?
win10怎么安裝anaconda?建議使用硬盤進(jìn)行安裝。教程如下:首先解壓WIN10的安裝包,可以解壓winrar、winzip、7Z、Haobi、軟盤等。一般下載的圖片都是ISO格式的圖片。將這些
win10怎么安裝anaconda?
建議使用硬盤進(jìn)行安裝。教程如下:首先解壓WIN10的安裝包,可以解壓winrar、winzip、7Z、Haobi、軟盤等。一般下載的圖片都是ISO格式的圖片。
將這些文件復(fù)制到非系統(tǒng)盤的根目錄。大部分系統(tǒng)盤是c盤,根目錄是a盤,比如雙擊F盤后的界面,所以不要 不要把它放在文件夾里??!您可以查看這些文檔是否可用。
然后你需要一個軟件,就是上面說的NT6HDDInstall
記事本寫的py代碼怎么運(yùn)行?
首先,安裝anaconda,它包含運(yùn)行代碼所需的三方庫包和python解釋器。然后,找到anaconda,打開jupyt
如何用Docker成為更高效的數(shù)據(jù)科學(xué)家?
使用Docker容器開發(fā)機(jī)器學(xué)習(xí)模型有很多優(yōu)點(diǎn)。最近,GitHub的高級機(jī)器學(xué)習(xí)科學(xué)家Hamel Husain發(fā)表了一篇關(guān)于走向數(shù)據(jù)科學(xué)的入門級Docker容器教程。文章從基本概念入手,清晰地介紹了Docker容器的一些基本操作方法和注意事項。機(jī)器之心整理介紹了這篇文章。本文涉及的所有相關(guān)代碼請訪問:_Tutorial。
在過去的五年里,碼頭集裝箱已經(jīng)成為一個熱詞,好像我所有的軟件工程師朋友都在用他們開發(fā)應(yīng)用。我想知道這項技術(shù)如何讓我變得更高效,但我發(fā)現(xiàn)我在網(wǎng)上找到的教程要么太詳細(xì)(解釋了一些我作為數(shù)據(jù)科學(xué)家永遠(yuǎn)不會使用的功能),要么太簡單(沒有足夠的信息來幫助我理解如何快速有效地使用Docker)。
所以我寫了這個快速入門,讓你不用自己去網(wǎng)上篩選資料,就能快速學(xué)會Docker入門所需的一切。
Docker是什么?
你可以把Docker想象成一個輕量級的虛擬機(jī)——它包含了運(yùn)行應(yīng)用程序所需的一切。Docker容器可以獲取系統(tǒng)狀態(tài)的快照,以便其他人可以使用該快照快速重建您的計算環(huán)境。這是本教程中您需要知道的全部內(nèi)容。有關(guān)更多詳情,請參考:
為什么要用Docker?
1.重現(xiàn)性:作為一名專業(yè)的數(shù)據(jù)科學(xué)家,讓你的結(jié)果具有重現(xiàn)性是非常重要的。再現(xiàn)性不僅有助于同行評審,還可以確保您創(chuàng)建的模型、應(yīng)用程序或分析可以無障礙地運(yùn)行,從而使您交付的結(jié)果更加穩(wěn)健,經(jīng)得起時間的考驗。例如,如果你用Python創(chuàng)建一個模型,僅僅運(yùn)行pip freeze并把結(jié)果requirements.txt文件發(fā)送給你的同事是不夠的,因為它只包含特定于Python的依賴關(guān)系——但實(shí)際上,依賴關(guān)系不僅僅是Python,還有操作系統(tǒng)、編譯器、驅(qū)動程序、配置文件以及你的代碼成功運(yùn)行所需的其他數(shù)據(jù)。即使只分享Python依賴,也能成功。將所有內(nèi)容封裝在Docker容器中可以減輕其他人重建您的環(huán)境的負(fù)擔(dān),并使他們更容易訪問您的結(jié)果。
2.計算環(huán)境的可移植性:作為一名數(shù)據(jù)科學(xué)家,尤其是在機(jī)器學(xué)習(xí)領(lǐng)域,快速改變你的計算環(huán)境的能力可以極大地影響你的生產(chǎn)力。數(shù)據(jù)科學(xué)的初始工作通常是原型設(shè)計、探索和研究——這些任務(wù)不一定立即需要特定的計算資源。這項工作通常在筆記本電腦或個人電腦上完成。但在未來的某個時候,你將經(jīng)常需要不同的計算資源來顯著加快你的工作流——例如,使用更多的CPU或強(qiáng)大的GPU來執(zhí)行深度學(xué)習(xí)等任務(wù)。我見過許多數(shù)據(jù)科學(xué)家將自己限制在本地計算環(huán)境中,因為他們感到在遠(yuǎn)程機(jī)器上重建本地環(huán)境的困難。Docker可以移植你的環(huán)境(你所有的庫和文件等)。)很簡單。在Kaggle的競爭中,快速移植計算環(huán)境也是一個巨大的競爭優(yōu)勢,因為你可以節(jié)省成本。善用AWS 寶貴的計算資源。最后,創(chuàng)建Docker文件允許您移植許多您喜歡的本地環(huán)境配置——比如bash別名或vim插件。
3.加強(qiáng)你的工程能力:熟練使用Docker可以讓你將模型或分析部署到應(yīng)用程序中(比如提供預(yù)測的REST API),這樣別人也可以使用你的結(jié)果。此外,您可能需要與數(shù)據(jù)科學(xué)工作流中Docker容器中的其他應(yīng)用程序進(jìn)行交互,例如數(shù)據(jù)庫。
碼頭術(shù)語
在我們繼續(xù)之前,它 熟悉Docker 的術(shù)語:
圖像:它是你想要創(chuàng)造的藍(lán)圖。比如:Ubuntu TensorFlow,帶NVIDIA驅(qū)動,運(yùn)行Jupyter服務(wù)器。
容器:它是你實(shí)現(xiàn)的運(yùn)行映像的實(shí)例化。您可以運(yùn)行同一圖像的多個副本。區(qū)分鏡像和容器的區(qū)別非常重要,因為這是初學(xué)者經(jīng)?;煜膬蓚€概念。如果你不 如果你不知道鏡子和容器的區(qū)別,停下來再讀一遍。
Dockerfile:創(chuàng)建鏡像的方法。Dockerfile包含特殊的Docker語法。官方文檔說:Dockerfile是一個文本文檔,包含了用戶可以在命令行調(diào)用的所有命令,組裝成鏡像。
提交:與git類似,Docker容器提供版本控制。通過commit所做的更改,您可以隨時將Docker容器的狀態(tài)保存為新的映像。
Docker Hub/Image Registry:一個人們可以發(fā)布公共(或私人)Docker圖像以促進(jìn)合作和共享的地方。
層:對現(xiàn)有圖像的修改,由docker文件中的指令指示。將圖層應(yīng)用于基礎(chǔ)圖像,以創(chuàng)建最終圖像。
這些術(shù)語將在本文中使用。如果你在閱讀時忘記了它們,一定要檢查回來!這些術(shù)語很容易混淆,尤其是在鏡像和容器之間——所以你在閱讀的時候要警惕!
安裝Docker
您可以從以下網(wǎng)址免費(fèi)下載并安裝Docker社區(qū)版:
創(chuàng)建你的第一個Docker形象。
在創(chuàng)建Docker容器之前,創(chuàng)建一個用于定義鏡像的Docker文件是很有用的。讓 下面我們來慢慢解讀Dockerfile。您也可以在與本教程相關(guān)的GitHub庫中找到該文件:
# referenc:_/ubuntu/
來自ubuntu:16.04
#將元數(shù)據(jù)作為鍵值對示例標(biāo)簽版本1.0添加到圖像中
標(biāo)簽維護(hù)者Hamel Husain
# #設(shè)置環(huán)境變量
環(huán)境。ALLC UTF路8號。UTF-8
運(yùn)行apt-get update-fix-missing amp apt-get install-y wget bzip2 ca-certificates
構(gòu)建-基本
byobu
卷曲
git核心
htop
pkg-配置
python3-dev
python-pip
python-setuptools
python-virtualenv
拉開…的拉鏈
放大器
apt-get干凈的ampamp
rm -rf /var/lib/apt/lists/*
運(yùn)行echo導(dǎo)出路徑/opt/conda/bin:$PATH gt ampamp
wget - quiet _ -O ~ ampamp
/bin/bash ~ -b -p /opt/conda ampamp
rm ~
ENV PATH/opt/conda/bin:$PATH
運(yùn)行pip - no-cache-dir安裝-升級
多重處理
sk learn-熊貓
#為Jupyter打開端口
暴露7745
#安裝文件系統(tǒng)
運(yùn)行mkdir ds
環(huán)境主頁/ds
環(huán)境外殼/bin/bash
體積/密度
工作目錄/ds
添加運(yùn)行_/ds/運(yùn)行_
運(yùn)行chmod x /ds/run_
#運(yùn)行外殼
CMD [。/run_]
FROM語句
來自ubuntu:16.04
FROM語句包含了Docker最神奇的部分。該語句指定了您想要在其上創(chuàng)建的基本圖像。通過使用FROM來指定一個基本映像,Dock:16.04的映像——如果它不存在。;如果找不到,它將搜索您指定的Docker注冊表,默認(rèn)為DockerHub:。如果你需要經(jīng)常在你的Ubuntu和其他操作系統(tǒng)上安裝程序,這種分層機(jī)制非常方便。你不 不用費(fèi)心從頭安裝Ubuntu,但你可以直接在官方Ubuntu鏡像上開發(fā)!DockerHub托管各種各樣的映像,包括那些不僅提供操作系統(tǒng)的映像。例如,如果您想要一個安裝了Anaconda的容器,您可以選擇在官方的Anaconda Dock:16.04作為基圖,它將搜索名為ubuntu (_/ubuntu/)的DockerHub庫。映像名稱后面的16.04部分是一個標(biāo)記,它指定了您要安裝的基礎(chǔ)映像的版本。如果你搜索Ubuntu DockerHub庫,你會注意到不同版本的Ubuntu對應(yīng)不同的標(biāo)簽:
2017年12月Ubuntu Dock:16.04,Ubuntu : x:x:latest都是指Ubuntu 16.04版本,而且都是同一個鏡像的別名。此外,這里提供的鏈接指向相應(yīng)的Dockerfile,它可以用來構(gòu)建每個版本的映像。有時你可以 t在DockerHub中找不到Docker文件,因為維護(hù)人員可以選擇是否包含關(guān)于這些映像是如何創(chuàng)建的Docker文件。個人覺得看一些Dockerfile是有助于更好的理解Dock:lat:16.04為什么?仔細(xì)看,可以看到:latest與16.04相關(guān)聯(lián)。
關(guān)于Docker鏡像需要注意的最后一點(diǎn):從DockerHub拉隨機(jī)Docker鏡像時做出明智的判斷惡意人士創(chuàng)建的拉映像可能包含惡意軟件。
標(biāo)簽語句
這條語句將向您的圖像添加元數(shù)據(jù),它是完全可選的。加這句話的目的是讓別人知道我可以聯(lián)系誰,也方便我搜索我的Docker容器,尤其是一個服務(wù)器上同時運(yùn)行多個容器的時候。
標(biāo)簽維護(hù)者Hamel Husain ltyouremailgt
ENV語句
環(huán)境。ALLC UTF路8號。UTF-8
這允許您修改環(huán)境變量,而且非常簡單。請參考:
運(yùn)行語句
這通常是最需要努力的地方,并給出了在構(gòu)建Docker映像時要完成的任務(wù)。您可以運(yùn)行任何shell命令(如apt-get和pip install)來安裝您需要的軟件包和依賴包。
運(yùn)行apt-get update-fix-missing amp apt-get install-y wget bzip2
構(gòu)建-基本
ca證書
git核心
...
在這里我安裝了一些我喜歡的實(shí)用程序,比如curl、htop和byobu,然后我安裝了Anaconda,然后我安裝了一些基本Anaconda中沒有的其他庫(你可以在完整的docker文件中看到其他RUN語句)。
RUN語句后面的命令和Docker沒有任何關(guān)系,只是你在安裝這些軟件包時需要運(yùn)行的一些正常的Linux命令,所以不要 即使你不熟悉這些軟件包或Linux命令,也不用擔(dān)心。另外,再提一個建議:我剛開始學(xué)習(xí)Docker的時候,在GitHub或者DockerHub上看其他的Docker文件,然后把我需要的復(fù)制粘貼到我的Docker文件中。
您可能已經(jīng)注意到了RUN語句的格式。為了可讀性,每個庫或軟件包都整齊地縮進(jìn)并按字母順序排序。這是Dockerfile的常用做法,建議你也這樣做,以便合作。暴露語句
如果您想要公開一個端口——例如,如果您從容器或網(wǎng)絡(luò)服務(wù)中實(shí)現(xiàn)一個Jupyter Notebook,那么這個語句非常有用。碼頭工人 的文檔很好地解釋了EXPOSE語句:
EXPOSE指令實(shí)際上并不發(fā)布端口。它的功能是作為創(chuàng)建圖像的人和運(yùn)行容器的人之間的一種文檔,內(nèi)容是關(guān)于要發(fā)布的端口。要實(shí)際發(fā)布端口,您必須在docker run上使用-p標(biāo)志,并在運(yùn)行容器時映射一個或多個端口,或者您可以使用-P標(biāo)志發(fā)布所有端口,并將它們映射到更高級的端口。
數(shù)量報表
體積/密度
這個語句允許你在Docker容器和主機(jī)之間共享數(shù)據(jù)。VOLUME語句允許您安裝外部安裝的卷。主機(jī)目錄僅在容器運(yùn)行時聲明(因為您可能在不同的計算機(jī)上運(yùn)行容器),而在定義映像時不聲明。目前,您只需在Docker容器中指定想要與主機(jī)容器共享的文件夾的名稱。
Docker用戶指南解釋道:
主機(jī)目錄是在容器運(yùn)行時聲明的:主機(jī)目錄(掛載點(diǎn))本質(zhì)上依賴于主機(jī)。這是為了確保映像的可移植性,因為不能保證給定的主機(jī)目錄對所有主機(jī)都可用。出于這個原因,你可以 不要在Dockerfile中掛載主機(jī)目錄。卷指令不支持指定host-dir參數(shù)。創(chuàng)建或運(yùn)行容器時,必須指定一個裝載點(diǎn)。
此外,這些卷的目的是在容器的文件系統(tǒng)之外保存數(shù)據(jù),這在您必須操作大量數(shù)據(jù)時非常有用。;我不希望你的形象大大擴(kuò)大。保存Docker映像時,該卷目錄中的任何數(shù)據(jù)都不會保存為映像的一部分,但會保存該容器目錄之外的數(shù)據(jù)。
工作目錄語句
工作目錄/ds
此語句設(shè)置工作目錄,以便您可以在另一個命令中索引特定文件,而無需使用絕對路徑。例如,這個docker文件中的最后一句話是:
CMD [";。/run_";]
該語句假定默認(rèn)情況下工作目錄是/ds。
添加語句
添加運(yùn)行_/ds/運(yùn)行_
此命令允許您在Docker容器運(yùn)行時將文件從主機(jī)復(fù)制到Docker容器。我使用這個命令來執(zhí)行bash腳本并導(dǎo)入有用的東西,比如。bachrc文件到容器中。
請注意,這里沒有完全指定主機(jī)容器的路徑,因為它的主機(jī)路徑是您在容器運(yùn)行時指定的后臺路徑(上下文目錄)。異位的相對路徑(稍后討論)。
當(dāng)我運(yùn)行這個容器時,run_就在后臺路徑的根目錄下,所以在源文件之前沒有路徑。
用戶指南說:
添加
ADD指令從ltsrcgt復(fù)制新文件、目錄或遠(yuǎn)程文件URL,并將它們添加到路徑ltdestgt的鏡像文件系統(tǒng)中。
CMD語句
Docker容器的設(shè)計思想是,這些容器是短命的,它足以保證你要運(yùn)行的應(yīng)用程序完成。但是在數(shù)據(jù)科學(xué)中,我們經(jīng)常希望讓這些容器一直運(yùn)行,即使其中沒有任何活動的東西在運(yùn)行。許多人通過運(yùn)行bash shell(它贏了 不停止就不要停止。
CMD [";。/run_";]
在上面的命令中,我運(yùn)行了一個shell腳本,該腳本實(shí)例化了一個Jupyter筆記本服務(wù)器。然而,如果你不 如果沒有任何特定的應(yīng)用程序要運(yùn)行,并且只想讓容器保持運(yùn)行(不退出),可以直接運(yùn)行bash shell,只需使用以下命令:
CMD [/bin/bash]
這種方法是有效的,因為bash shell不會終止,除非您退出;因此,容器將一直保持運(yùn)行。
用戶指南說:
docker文件中只能有一條CMD指令。如果您列出了多個CMD,則只有最后一個有效。
CMD的主要目的是為執(zhí)行容器提供默認(rèn)配置。這些默認(rèn)配置可能包含一個可執(zhí)行文件,或者可執(zhí)行文件可能被省略,在這種情況下,您還必須指定一個ENTRYPOINT指令。
在創(chuàng)建Docker鏡像Docker文件的過程中有如此多的信息。唐 別擔(dān)心,后面的部分相對簡單?,F(xiàn)在我們已經(jīng)在Dockerfile中創(chuàng)建了我們的食譜。;是時候創(chuàng)建一個鏡像了。您可以通過以下命令完成此操作:
還有:_ tutorial/blob/master/basic _ tutorial/build _ on GitHub。
這創(chuàng)建了一個Docker映像(不是容器;如果你不 I don'我記不起這兩者之間的區(qū)別,請查閱文章前面的詞匯表。您可以稍后運(yùn)行此鏡像。
從你的Docker鏡像創(chuàng)建并運(yùn)行容器,現(xiàn)在你已經(jīng)準(zhǔn)備好讓它工作了!我們可以通過執(zhí)行以下命令來啟動環(huán)境:
GitHub還有:_ tutorial/blob/master/basic _ tutorial/run _。
運(yùn)行該命令后之后,你的容器就會運(yùn)行!Jupyter服務(wù)器也在運(yùn)行,因為docker文件的末尾有這個命令:
CMD [";。/run_";]
現(xiàn)在你應(yīng)該可以通過它使用的端口訪問你的Jupyt: 7745/,密碼是tutorial。如果您遠(yuǎn)程運(yùn)行這個Docker容器,您還必須設(shè)置本地端口轉(zhuǎn)發(fā),以便您可以通過瀏覽器訪問您的Jupyter服務(wù)器。端口轉(zhuǎn)發(fā)簡介:
與容器交互一旦容器設(shè)置好并運(yùn)行,以下命令就很有用:
將新的終端會話附加到容器。如果您需要安裝一些新軟件或使用shell,這將非常有用。
將容器的狀態(tài)保存為新圖像。即使一開始就在Dockerfile中配置了所有想要安裝的庫,隨著時間的推移,你可能仍然需要對容器的狀態(tài)進(jìn)行很大的調(diào)整——通過交互添加更多的庫和軟件包。將容器的狀態(tài)保存為鏡像非常有用。您可以稍后共享或向其添加圖層。您可以使用docker commit CLI命令將容器狀態(tài)保存為新映像:
docker commit lt contain:標(biāo)簽名(可選)
例如,如果我想將名為contain: v2的鏡像,我可以直接運(yùn)行以下命令:
dock: v2
你可能想知道鏡像名稱前的hamelsmu/是什么——這只是為了以后更方便地將容器推送到DockerHub,因為hamelsmu是我的DockerHub用戶名(這個我們后面會講到)。如果你想在工作中使用Docker,你的公司很可能有一個內(nèi)部私有的Docker庫,你也可以把你的Docker推送到那里。
列出運(yùn)行中的容器。當(dāng)我忘記了正在運(yùn)行的容器的名稱時,我經(jīng)常使用這個命令:
docker ps -a -f狀態(tài)運(yùn)行
如果你不 t添加狀態(tài)運(yùn)行時使用此命令,然后您您將看到系統(tǒng)上所有容器的列表(甚至包括那些不再運(yùn)行的容器)。這對于尋找舊容器很有用。
列出您保存在本地的所有圖像。
docker圖像
將你的圖片推送到DockerHub(或其他地方)。如果您想要與其他人共享您的工作或?qū)D像保存到云中,此命令非常有用。這樣做的時候注意不要分享任何私人信息(DockerHub上也有私人庫)。
首先,創(chuàng)建一個DockerHub庫并給你的庫取一個合適的名字,參考這里。然后運(yùn)行docker login命令,連接到您在DockerHub或其他注冊位置的帳戶。例如,要將一個圖像推送到這個容器(),我必須首先調(diào)用我的本地圖像命令hamelsmu/tutorial(我可以選擇任何標(biāo)記名)。例如,此CLI命令為:
dock: v2
將前面提到的Docker鏡像推送到這個庫中,其標(biāo)簽為v2,引用:。需要指出的是,如果你公開了你的圖片,別人可以直接給你的圖片添加圖層,就像我們在本教程中給ubuntu image添加圖層一樣。這對想要復(fù)制或擴(kuò)展你的研究的其他人非常有用。
你已經(jīng)掌握了?,F(xiàn)在您已經(jīng)知道如何操作Docker,您可以執(zhí)行以下任務(wù):
與同事和朋友分享可重復(fù)的研究。
通過將您的代碼臨時遷移到您需要的更大的計算環(huán)境中,不間斷地贏得Kaggle競賽。
在您的筆記本電腦上的Docker容器中開發(fā)一個本地原型,然后毫不費(fèi)力地將相同的計算過程無縫遷移到服務(wù)器,同時仍然保留您喜歡的本地環(huán)境配置(您的別名、vim插件、bash腳本、自定義提示等。).
使用Nvidia-Docker快速實(shí)例化在GPU計算機(jī)上運(yùn)行TensorFlow、PyTorch或其他深度學(xué)習(xí)庫所需的所有依賴包。如果從零開始,過程會很艱難。)看后面的彩蛋。
將您的模型發(fā)布為應(yīng)用程序,例如從Docker容器提供預(yù)測的REST API。當(dāng)你的應(yīng)用是Docker的時候,你可以根據(jù)需要輕松的隨意復(fù)制。
進(jìn)階閱讀到這里,我們只學(xué)到了Docker的一點(diǎn)皮毛,還有很多值得掌握的東西。我很關(guān)注Docker領(lǐng)域,我覺得數(shù)據(jù)科學(xué)家會經(jīng)常遇到。希望這篇文章能給你足夠的信心開始使用。以下資源在我的Dock中。在急診室的旅程中幫助了我:
有用的Docker命令:_docker_containers/
更有用的Docker命令:
Dockerfile文件參考:
如何在DockerHub上創(chuàng)建和推送庫;
彩蛋:Nvidia-Docker我學(xué)習(xí)Docker最早的原因是在單個GPU上進(jìn)行深度學(xué)習(xí)模型的原型化,然后在需要更多計算資源的時候遷移到AWS。我也在研究杰瑞米·霍華德 的優(yōu)秀課程()并想與他人分享我的原型設(shè)計。
然而,包括所有的依賴包,如NVIDIA GPU的驅(qū)動程序,你可以 不要用Docker,而要用Nvidia-Docker()。這比使用普通的Docker需要更多的努力,但是只要你理解Docker,它 這很容易做到。
我把我的Nvidia-Docker設(shè)置放在這里:_ tutorial/tree/master/GPU _ tutorial。你可以用這個練習(xí)。