日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

TensorFlow + Docker + PyCharm

發布時間:2025/3/21 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 TensorFlow + Docker + PyCharm 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


我的深度學習開發環境詳解:TensorFlow + Docker + PyCharm等,你的呢

By?機器之心2017年6月19日 14:09 在這篇文章中,研究員 Killian 介紹了自己的深度學習開發環境:TensorFlow + Docker + PyCharm + OSX Fuse + Tensorboard。但根據自己的預算、語言習慣、開發需求,每個人都會配置不同的開發環境,也遇到過各種各樣的難題。因此,我們在文后附上了一份調查問卷,希望能了解眾多不同開發者的深度學習環境,最終匯集成一篇文章為大家提供不同的洞見。

在嘗試用不同的東西來配置深度學習環境這個過程中,我花費了相當多的時間。因此我想著把自己目前的工作流程整理成文檔,希望可以幫助到嘗試著做同樣事情的人。

目標

在開始創建我的模型之前,我腦海中會有幾個清晰的目標,即理想中會使用的開發環境。下面是我會在這篇博文中詳細介紹的幾個高層次目標:

  • 在本地機器 (一個標準的 MacBookPro 筆記本電腦) 上用 Pycharm 編輯我的代碼
  • 用一個強大的遠程機器來訓練我的模型
  • 和我的同事們沒有任何沖突地使用這臺遠程機器
  • 在本地和遠程機器上的 docker 容器中以開發/產品的模式來運行/調試我的 TensorFlow 代碼
  • 當我的模型在遠程機器上訓練的時候,把模型的性能圖形化地實時顯示在本地機器上

致謝

我想感謝我的實驗室同伴 Chris Saam,因為他給我指明了幾個我會在本文中提到的有趣的工具。

一次安裝

遠程機器上

因此,在做其他任何事情之前,你可能需要做這幾件事情。順便說一下,在這篇文章中我會提及在你的遠程機器上 (帶有所有的 GPU 的附屬項目)使用 super duper,在這臺遠程機器上你計劃訓練你的深度學習機器模型。

安裝 Nvidia-docker:你需要做的第一件事情就是安裝 Nvidia-docker。Docker 確實是一個很酷的工具,但是它目前并不能讓你最有效地使用任何一個 NVIDIA 的 GPU 硬件或者 CUDA 驅動程序,所以你不可能拿 docker 來訓練你的深度模型。Nvidia-docker 為你解決了這個問題,并且看上去更像一個普通的 docker。在常規的 Docker 命令之上,它還提供了一些選項,可以讓你更有效地管理你的 NVIDIA GPU 硬件。


圖 1: NVIDIA-Docker (由 NVIDIA-Docker 提供)

安裝 Slurm:如果你計劃和你的同事共享那個深度學習機器,你也許會想著安裝像 SLURM 一樣的工具。通過限制默認情況下可以使用的命令集,SLURM 讓您對團隊同事在機器上的權限擁有更好的控制,并且強制每個成員使用特定的專用 GPU/CPU 資源在「作業」環境中運行他們的代碼。如果您希望避免任何因團隊同事同時訪問這臺機器而產生的資源爭奪,這確實是有用的。

把文件夾設置標準化:如果您計劃和同事共享機器,就可以讓成員之間的文件夾結構標準化,這也是一個好主意。我的深度學習機器的設置方式如下:

  • /home/myusername 文件夾包含你自己的私有項目代碼。
  • /data 文件夾包含團隊在項目過程中共享的數據集。
  • /work 文件夾包含當前實驗需要的特定數據集。這個文件夾比 /data 文件夾更低一級,但是它在訓練過程中提供了更快的內存訪問。

本地機器上

安裝 OS X Fuse: 如果你像我一樣正在使用最新版本的 OS X, 你可能會想著安裝 OS X Fuse。OS X Fuse 可以讓你用 SFTP/SSH 在本地 Finder 中從遠程機器上掛載文件夾。或者如果你不想花費時間去掛載你的遠程/home 文件夾,你可以簡單地使用 GIT PUSH/PULL 在本地機器和遠程機器之間傳送代碼,但是這樣效率不高。所以在長時間運行的過程中掛載這些文件夾會替你節省大量時間。

設置一個遠程的 python 解釋器:在本地機器和遠程機器上使用同一個 docker 映像是避免以后可能會發生的環境配置問題的另一個方法。Pycharm 有這個很酷的功能,可以讓你在 docker 容器中運行代碼。在 Pycharm 中進行任何設置之前,請保證你已經獲取了正確 TensorFlow 的 docker 映像。在本地機器上,你可能僅僅需要以下步驟就可以獲取 TensorFlow 的 docker 映像:

# 啟動你的 docker 虛擬機?docker-machine start default?# 獲取最新 TensorFlow CPU 版本的 docker 映像docker pull gcr.io/tensorflow/tensorflow:latest?

當你獲取期望的 docker 映像之后,就去設置你的 Pycharm Project Interpreter。在 Pycharm 中,轉到 Preferences>Project Interpreter>Add Remote(如下圖)。當 docker 虛擬機的實例在你的本地機器上開始運行時,就需要選擇 docker 配置(Docker configuration)。一旦它連接到你的 docker 虛擬機,你應該會看到你剛才獲取的 TensorFlow 映像已經在可用映像的列表中了。當這個設置好之后,只要 pycharm 連接好了,你就可以開始了。

每日常規程序

本地機器上

掛載遠程文件夾:你想做的第一件事情就是確保你可以訪問你要在本地機器上運行的腳本。所以你要做的第一件事情就是在你的 Mac 上用 OS X Fuse 掛載 home/myusername 文件夾,并且選擇性地掛載深度學習數據。你可能希望為所有這些命令起一些別名,因為它們確實有些長。

# 掛載你的遠程 home 文件夾sshfs -o uid=$(id -u) -o gid=$(id -g) myusername@mydeeplearningmachine.com:/home/myusername/ /LocalDevFolder/MountedRemoteHomeFolder?# 掛載你的遠程數據文件夾 (有選擇地)sshfs -o uid=$(id -u) -o gid=$(id -g) myusername@mydeeplearningmachine.com:/data/myusername/ /LocalDevFolder/MountedRemoteDataFolder?

這里使用 uid 和 gid 來映射本地和遠程機器的用戶和組 ID,因為這些可能會有所不同。

在本地機器上啟動 docker:接下來,我們想保證 pycharm 會訪問正確的庫來在本地編譯我們的代碼。為了做到這個,僅僅需要在本地啟動一個 docker 虛擬機。如果你在設置中沒有改變任何地方,TensorFlow 的 CPU 映像應該已經在你的本地 docker 環境中了。

docker-machine start default

打開 pycharm,并選擇你剛才掛載的 home 文件夾中的項目。轉到 Project Interpreter 參數選擇中,在項目解釋器的可用列表中選擇你之前就創建好的遠程 TensorFlow 解釋器,pycharm 應該能夠正確地編譯你的代碼。這時候,你可以隨時隨地使用你的代碼,并且改變任何你想要改變的東西。

遠程機器上

Ok,你已經在 pycharm 中用一項新功能更新了你的代碼,然后你希望訓練/測試你的模型。

用 SSH 遠程登錄你的機器:你需要做的第一件事就是簡單地遠程登錄你的深度學習機器。

ssh myusername@mydeeplearningmachine.com?

運行一個 SLURM 任務: 在你進行下一步之前,請確保你的團隊中沒有其他成員正在運行任務。這會阻止你的任務得到它所需要的資源,所以檢查一下目前有哪些任務正運行在遠程機器上總會是一個不錯的做法。使用 SLURM 做到這件事,只需要運行一下 squeue 命令即可,它會列出目前正運行在機器上的任務。如果由于某些原因你之前的某個任務仍然在運行,你可以使用 scancel 命令來取消它。在確定沒有其他任務在運行之后,讓我們開始一個新任務吧。你可以通過以下的命令來開始一個新的任務。

srun --pty --share --ntasks=1 --cpus-per-task=9 --mem=300G --gres=gpu:15 bash

srun 命令給出了相當多的選項來讓你指定一個特定的任務需要哪些資源。在這個例子中,cpus-per-task、 mem 以及 gres 選項讓你指定這個任務分別需要的 CPU 的數量、總體內存以及 GPU 的數量。pty 選項只是提供一個漂亮的命令行界面。

啟動 Nvidia docker:既然你已經得到了為你的任務所分配的資源,那么,啟動一個 docker 容器來在正確的環境中運行你的代碼吧。與使用常規的 docker 有所不同,這里我們會使用 NVIDIA-Docker 來充分地利用我們的 GPU。另外,為了充分利用你的硬件,請保證你運行的是 TensorFlow 的 GPU docker 映像而不是 docker CPU 映像。別忘了使用 - v 選項來在 docker 容器中掛載你的項目文件夾。當你在那個容器中以后,你就可以簡單地使用常規的 python 命令來運行你的代碼了。

# 啟動你的容器nvidia-docker run -v /home/myusername/MyDeepLearningProject:/src -it -p 8888:8888 gcr.io/tensorflow/tensorflow:latest-gpu /bin/bash?# 別忘記切換到你的源碼文件夾cd src# 運行你的模型python myDLmodel.py

本地機器上

啟動 Tensorboard 可視化:你還差一點點就做完了。你的代碼現在正在順利地運行,然后你想著使用 tensorboard 去實時地看一下你的模型中的變量是如何變化的。實際上這是最簡單的一部分。首先,確保你知道自己本地 docker 機對應的 IP 地址。你可以使用下面的命令來做這件事:

docker-machine ls

然后,切換到已經掛載的遠程 home 文件夾,并啟動一個 TensorFlow docker 容器。因為你已經在本地機器上啟動了一個 Tensorflow docker 容器,所以要確保你正在啟動的是 CPU 版本的 docker 容器。如上面所述,不要忘記在 docker 容器中掛載你的項目文件夾。為了在本地機器可視化正在訓練的模型,你還需要用 - p 選項將 Tensorboard 使用的端口號從容器映射到你的本地機器。

docker run -v /LocalDevFolder/MountedRemoteHomeFolder/MyDeepLearningProject:/src -p 6006:6006 -it gcr.io/tensorflow/tensorflow:latest /bin/bash

一旦你進入 docker 容器,通過制定你的模型保存變量的路徑 (更可能是 checkpoint 文件夾的路徑) 來啟動 Tensorboard:

tensorboard—logdir=Checkpoints/LatestCheckpointFolder

如果一切進展順利,你現在需要做的就是使用你最喜歡的瀏覽器轉到到 http://DOCKER_MACHINE_IP:6006,

這會顯示在 Tensorboard 中顯示你在模型中正在跟蹤的所有變量。


圖 2.Tensorboard 可視化 (由 Jimgoo 提供)

深度學習開發環境問卷調查

總結

以上是生活随笔為你收集整理的TensorFlow + Docker + PyCharm的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产一区二区三区四区五区美女 | 69热在线| 日本精品视频网站 | 一路向西在线看 | 久色网站 | 久久久久久久久久久久电影 | 福利在线电影 | 国产高清av在线 | 妖精视频污 | 黄污视频网站 | 天堂网在线最新版www中文网 | 男女黄色片 | 午夜激情福利在线 | 99成人在线视频 | 五月婷婷综合激情网 | 强迫凌虐淫辱の牝奴在线观看 | 四虎影院新网址 | 手机电影在线观看 | 午夜不卡福利 | 黑人巨大精品人妻一区二区 | 中文在线资源天堂 | 欧美涩色| 九九爱爱视频 | 国产精品视频免费 | 欧美性久久 | 亚洲一区二区三区在线 | 1769国产| 日本三级久久久 | 日日夜夜狠狠爱 | 巨大黑人极品videos精品 | 张柏芝54张无删码视频 | 免费在线观看视频 | 91中文字幕在线播放 | 国产女18毛片多18精品 | 老司机精品福利视频 | 少妇高潮一区二区三区99刮毛 | 午夜一区二区三区在线观看 | 黄色高清片 | 色草在线 | 精品国产乱码久久久久久88av | 亚洲欧美日韩国产一区 | a点w片| 天天爽夜夜爽视频 | 中文字幕视频在线 | 精产国品一区二区 | 殴美性生活 | 五月激情综合婷婷 | 误杀1电影免费观看高清完整版 | 伊人55 | 大尺度一区二区 | 成熟女人毛片www免费版在线 | 可以免费看黄的网站 | 涩涩天堂 | 精品无码久久久久成人漫画 | 午夜国产福利视频 | 少妇又紧又色又爽又刺激视频 | 亚洲精品aⅴ中文字幕乱码 国产精品调教视频 | 丝袜人妖 | 成熟人妻av无码专区 | 自拍视频在线播放 | 久草麻豆| 欧美不卡三区 | 影音先锋成人资源网站 | 在线观看日韩av电影 | 久久成人乱码欧美精品一区二区 | 国产又粗又猛又爽又黄的视频小说 | 亚洲精品成人无码毛片 | 在线天堂视频 | 99国产精品一区二区 | 色爽交 | 欧洲人妻丰满av无码久久不卡 | 爱情岛论坛亚洲入口 | 风间由美一二三区av片 | 人妻无码久久精品人妻 | av免费观看不卡 | 一级片一级 | 欧美色女人 | 国产精品黄色在线观看 | 欧美成人一区二区三区四区 | 天天操天天舔 | 二区不卡 | 精品视频免费观看 | 日韩欧美自拍 | 亚洲国产精品久久久久婷蜜芽 | 亚洲第一偷拍 | 99riav在线| 国内精品视频在线播放 | 黄色性视频网站 | 精品裸体舞一区二区三区 | 九九精品视频在线 | www.午夜| 国产亚洲一区二区三区四区 | 国产精品传媒视频 | 亚洲色图 校园春色 | 日本久久久久久久久 | 国产大片一区二区 | 美国特色黄a大片 | 亚洲精品国产成人 | 一区二区三区免费观看视频 |