日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

深度學(xué)習(xí)開(kāi)發(fā)環(huán)境調(diào)查結(jié)果公布,你的配置是這樣嗎?(附新環(huán)境配置)

 昵稱42427018 2017-06-28

機(jī)器之心整理

參與:李澤南、李亞洲


本周一(6 月 19 日)機(jī)器之心發(fā)表文章《我的深度學(xué)習(xí)開(kāi)發(fā)環(huán)境詳解:TensorFlow Docker PyCharm 等,你的呢(附問(wèn)卷)》介紹了研究員 Killian 的深度學(xué)習(xí)開(kāi)發(fā)環(huán)境:TensorFlow Docker PyCharm OSX Fuse Tensorboard,并附了一份調(diào)查問(wèn)卷想要了解機(jī)器之心讀者配置的開(kāi)發(fā)環(huán)境、對(duì)編程語(yǔ)言、框架的使用情況。雖然獲得的反饋量比較有限,但我們也觀察到了一些比較有趣的現(xiàn)象。在這篇文章中,我們將對(duì)此問(wèn)卷的結(jié)果進(jìn)行介紹,希望對(duì)需要配置開(kāi)發(fā)環(huán)境的讀者有所幫助。最后,我們介紹了一種新的開(kāi)發(fā)環(huán)境配置:Jupyter Tensorflow Nvidia GPU Docker Google Compute Engine。


問(wèn)卷結(jié)果


該調(diào)查問(wèn)卷文章發(fā)布之后共有超過(guò) 10800 名讀者閱讀,收到大量有效答卷,另有 16 名讀者是以留言的方式在文章下介紹了自己的開(kāi)發(fā)系統(tǒng)。大部分被調(diào)查者來(lái)自中國(guó)大陸,此外還有多名來(lái)自北美大學(xué)和研究機(jī)構(gòu)的調(diào)查者參與其中。以下的數(shù)據(jù)統(tǒng)計(jì)圖表中,并不包含微信文章留言的數(shù)據(jù)。


根據(jù)表單后臺(tái)的數(shù)據(jù)統(tǒng)計(jì),參與調(diào)查的讀者中大部分為學(xué)生,然后是開(kāi)發(fā)工程師、研究員、產(chǎn)品經(jīng)理等。



而在被調(diào)查者的研究方向上,計(jì)算機(jī)視覺(jué)領(lǐng)域占比接近一半(48.2%),自然語(yǔ)言處理次之(26.8%),這部分反映了目前深度學(xué)習(xí)的主要研究方向。此外還包括金融風(fēng)控、數(shù)據(jù)分析、現(xiàn)場(chǎng)安全識(shí)別、通信、時(shí)空大數(shù)據(jù)、醫(yī)學(xué)圖像、催化以及材料模擬等領(lǐng)域。



下面就開(kāi)始詳細(xì)為大家介紹調(diào)查者們最常用的編程語(yǔ)言、深度學(xué)習(xí)框架,以及在開(kāi)發(fā)過(guò)程中面臨的難題。


一、Python 成為深度學(xué)習(xí)主流語(yǔ)言


機(jī)器之心一直關(guān)注機(jī)器學(xué)習(xí)研究員、工程師在開(kāi)發(fā)過(guò)程中所注重實(shí)用的工具、語(yǔ)言。在不久之前發(fā)布的文章《業(yè)界 | 超越 R,Python 成為最受歡迎的機(jī)器學(xué)習(xí)語(yǔ)言》中,KDnuggets 與 O'Reilly 的調(diào)查結(jié)果都表明,越來(lái)越多的人開(kāi)始使用 Python 進(jìn)行機(jī)器學(xué)習(xí)。


2016 年 KDNuggets 調(diào)查結(jié)果


在機(jī)器之心問(wèn)卷中,對(duì)于問(wèn)題「您認(rèn)為哪種語(yǔ)言會(huì)成為深度學(xué)習(xí)的主流語(yǔ)言?」,所有被調(diào)查者的態(tài)度完全一致:Python!看來(lái),Python 已是絕大多數(shù)從業(yè)人員必須學(xué)習(xí)的語(yǔ)言,同時(shí)也是眾望所歸的未來(lái)主流深度學(xué)習(xí)語(yǔ)言。



O'Reilly 2016 年度數(shù)據(jù)科學(xué)薪資調(diào)查曾顯示:Python 和 Spark 是最對(duì)薪資有貢獻(xiàn)的工具。Python 具有開(kāi)發(fā)速度快的特點(diǎn),Caffe、TensorFlow 等主流深度學(xué)習(xí)框架都對(duì)其支持。騰訊最近推出的機(jī)器學(xué)習(xí)高性能計(jì)算平臺(tái) Angel 在支持 Java、Scala 之外,也將在未來(lái)對(duì) Python 提供支持。


在機(jī)器之心的問(wèn)卷中,調(diào)查者反饋,雖然他們會(huì)使用其他編程語(yǔ)言,比如 R、C ,但實(shí)際運(yùn)行程序的編寫還是主要使用 Python,簡(jiǎn)單、開(kāi)發(fā)速度快是很大的優(yōu)勢(shì)。


其他語(yǔ)言的使用情況簡(jiǎn)介如下:Matlab 用于快速完整、可視化研究;R 方便框架模型的驗(yàn)證分析,也便于處理數(shù)據(jù)和畫圖。因此,多數(shù)人在不同的開(kāi)發(fā)流程中使用不同的語(yǔ)言。


二、TensorFlow 占據(jù)半壁江山


而在框架方面,谷歌支持的 TensorFlow 就沒(méi)有這樣的壟斷地位了,不過(guò)它也已占據(jù)了接近一半(48%)的水平。完善的功能和大量的支持文檔(眾多 TensorFlow 支持者提到的)是目前 TensorFlow 的強(qiáng)項(xiàng),存在于 GitHub 中的大量實(shí)現(xiàn)更是不容忽視,可視化工具 TensorBoard 則為開(kāi)發(fā)者提供了直觀的引導(dǎo)。但由于網(wǎng)絡(luò)問(wèn)題,TensorFlow 系統(tǒng)在大陸的搭建是個(gè)難題。部分被調(diào)查者也指出,TensorFlow 的 Windows 支持也為他們帶來(lái)了便利。


Facebook 新近推出的框架 PyTorch 人氣急劇攀升,在僅僅推出 5 個(gè)月的情況下達(dá)到了第二的位置(16%),因支持動(dòng)態(tài)計(jì)算圖,易用性和強(qiáng)大的性能而出名。在業(yè)界還需要產(chǎn)品遷移的情況下,學(xué)界已經(jīng)出現(xiàn)擁抱 PyTorch 的趨勢(shì)了。


同屬于 Facebook 的 Caffe/Caffe2 則占據(jù)第三(14.7%),大部分被調(diào)查者在對(duì)于 Caffe 系列的評(píng)價(jià)中都提到了快速的特點(diǎn)。


此外,亞馬遜支持的 MXNet 占據(jù)了 10.7% 的用戶數(shù)量,排名第四。被調(diào)查者認(rèn)為,MXNet 擁有很好的社區(qū)支持,因而易于使用。


三、硬件


硬件方面,超過(guò)一半的被調(diào)查者明確表示自己的深度學(xué)習(xí)硬件是英特爾 Core i7 英偉達(dá) Geforce GTX 1080(Ti)的組合。與 TitanX 相比,英偉達(dá) Tesla 系列的應(yīng)用顯得更少,看來(lái)英偉達(dá)推動(dòng)的商用機(jī)器學(xué)習(xí)計(jì)算卡仍然需要進(jìn)一步的推廣。由于資源限制,GPU 陣列的使用并不流行,而云服務(wù)也沒(méi)有被大部分開(kāi)發(fā)者采用(也是經(jīng)費(fèi)原因)。


目前,雖然人們對(duì)于多 GPU/分布式機(jī)器學(xué)習(xí)訓(xùn)練/處理的呼聲很高,但相關(guān)的教程和可以借鑒的方法仍顯欠缺,這或許是經(jīng)費(fèi)之外人們面臨的最大難題。


四、系統(tǒng)


Linux 顯然是深度學(xué)習(xí)的必備系統(tǒng),雖然 TensorFlow 已有 Windows 支持,但大多數(shù)受訪者表示自己的深度學(xué)習(xí)機(jī)器使用基于 Linux 的 Ubuntu 系統(tǒng)。


五、面臨的難題


在搭建深度學(xué)習(xí)環(huán)境的過(guò)程中,各組件的兼容性問(wèn)題一直是困擾開(kāi)發(fā)者們的難題,部分開(kāi)發(fā)者表示依賴關(guān)系處理比較頭疼,而使用 Docker 可以部分解決這些問(wèn)題。英偉達(dá)的 cuda/GPU 驅(qū)動(dòng)程序安裝困難也是很多調(diào)查者提到的問(wèn)題。


需要配置安裝很多不同的開(kāi)發(fā)框架……還有擴(kuò)展計(jì)算集群……


本次深度學(xué)習(xí)開(kāi)發(fā)環(huán)境調(diào)查已經(jīng)結(jié)束,由于樣本數(shù)量限制,這次我們得出的結(jié)論可能不甚準(zhǔn)確。深度學(xué)習(xí)的開(kāi)發(fā)環(huán)境會(huì)隨著技術(shù)的發(fā)展不斷進(jìn)化,未來(lái)究竟是百家爭(zhēng)鳴,還是一家獨(dú)大?歡迎大家前來(lái)討論。感謝大家對(duì)機(jī)器之心此次調(diào)查問(wèn)卷的支持,獲得獎(jiǎng)品同學(xué)的禮物已經(jīng)寄出。


Jupyter Tensorflow Nvidia GPU Docker Google Compute Engine




這一部分,我們編譯了一篇新的深度學(xué)習(xí)開(kāi)發(fā)環(huán)境配置:Jupyter Tensorflow Nvidia GPU Docker Google Compute Engine。


動(dòng)機(jī):商業(yè)上喜歡快捷、且由數(shù)據(jù)驅(qū)動(dòng)的洞見(jiàn),因此他們聘請(qǐng)了數(shù)據(jù)科學(xué)家來(lái)處理這些任務(wù)。實(shí)踐性的數(shù)據(jù)科學(xué)是探索性、迭代性的過(guò)程,這個(gè)過(guò)程要求大量的計(jì)算資源和時(shí)間。數(shù)據(jù)科學(xué)家經(jīng)常使用 Jupyter notebook 以更好地支持這種探索性的迭代,同時(shí)更傾向于使用 GPU 以加速 Tensorflow 項(xiàng)目的計(jì)算。然而,GPU 成本比較高,而計(jì)算資源也需要小心地管理以滿足商業(yè)上對(duì)高效運(yùn)算的需求。


近來(lái)云計(jì)算傾向于使用 Kubernetes 和 Docker 提高資源利用率。那數(shù)據(jù)科學(xué)的工具(如 Jupyter 和 GPU 等)嵌入 Docker 和 Kubernets 會(huì)更有效嗎?也許這樣更節(jié)約時(shí)間和內(nèi)存,我前面已經(jīng)用過(guò)了其他版本,但現(xiàn)在的環(huán)境配置是比較優(yōu)秀的。


創(chuàng)建一個(gè) GCE 實(shí)例



首先,創(chuàng)建防火墻規(guī)則,將 Jupyter(8888)和 Tensorboard(6006)添加到白名單中。

然后創(chuàng)建一個(gè) GCE 實(shí)例,對(duì)于該案例:


  • 使用的系統(tǒng)為 Ubuntu 16.04 LTS

  • 分配 50GB 的啟動(dòng)盤

  • 至少需要一個(gè) K80 GPU

  • 將 jupyter 和 tensorboard添加到你創(chuàng)建的防火墻規(guī)則中。



安裝和確認(rèn) CUDA 能訪問(wèn) GPU


使用英偉達(dá)的 CUDA 庫(kù)取得訪問(wèn) GPU 的權(quán)限。


下一步需要將 SSH 添加到你創(chuàng)建的計(jì)算節(jié)點(diǎn)中,然后使用腳本安裝 CUDA(https://cloud.google.com/compute/docs/gpus/add-gpus): 


#!/bin/bash
echo 'Checking for CUDA and installing.'
# Check for CUDA and try to install.
if ! dpkg-query -W cuda; then
 # The 16.04 installer works with 16.10.
 curl -O http://developer.download./compute/cuda/repos/ubuntu1604/x86_64/cuda-repo-ubuntu1604_8.0.61-1_amd64.deb
 dpkg -i ./cuda-repo-ubuntu1604_8.0.61-1_amd64.deb
 apt-get update
 apt-get install cuda -y
fi


然后你能使用 wget 命令 pull 來(lái)源 gist 并輸入到 bash 中:


wget -O - -q 'https://gist./allenday/f426e0f146d86bfc3dada06eda55e123/raw/41b6d3bc8ab2dfe1e1d09135851c8f11b8dc8db3/install-cuda.sh' | sudo bash


如果 CUDA 安裝成功了,運(yùn)行 nvidia-smi 命令將返回表格顯示可用的 Tesla K80 GPU:


nvidia-smi



安裝 Docker(-Engine) 和 Nvidia-Docker


對(duì)于 docker,我們需要從 Docker 獲取 docker-ce 版本,而不是 Ubuntu 自帶的 docker.io 包。可以使用以下腳本完成(https://docs./engine/installation/linux/ubuntu/)(https://docs./engine/installation/linux/ubuntu/%EF%BC%89):


#/bin/bash

# install packages to allow apt to use a repository over HTTPS:

sudo apt-get -y install \

apt-transport-https ca-certificates curl software-properties-common

# add Docker』s official GPG key:

curl -fsSL https://download./linux/ubuntu/gpg | sudo apt-key add - 

# set up the Docker stable repository.

sudo add-apt-repository \

 'deb [arch=amd64] https://download./linux/ubuntu \

 $(lsb_release -cs) \

 stable'

# update the apt package index:

sudo apt-get -y update

# finally, install docker

sudo apt-get -y install docker-ce


或使用我的:


wget -O - -q 'https://gist./allenday/c875eaf21a2b416f6478c0a48e428f6a/raw/f7feca1acc1a992afa84f347394fd7e4bfac2599/install-docker-ce.sh' | sudo bash


從 deb 文件安裝 nvidia-docker(https://github.com/NVIDIA/nvidia-docker/releases/):


wget https://github.com/NVIDIA/nvidia-docker/releases/download/v1.0.1/nvidia-docker_1.0.1-1_amd64.deb


從 Docker 容器確認(rèn) GPU 是可用的


起始化 nvidia-docker-plugin 需要在跟權(quán)限下運(yùn)行:


sudo nvidia-docker-plugin &


nvidia-docker-plugin | 2017/06/07 01:05:05 Loading NVIDIA unified memory

nvidia-docker-plugin | 2017/06/07 01:05:05 Loading NVIDIA management library

nvidia-docker-plugin | 2017/06/07 01:05:08 Discovering GPU devices

nvidia-docker-plugin | 2017/06/07 01:05:08 Provisioning volumes at /var/lib/nvidia-docker/volumes

nvidia-docker-plugin | 2017/06/07 01:05:08 Serving plugin API at /run/docker/plugins

nvidia-docker-plugin | 2017/06/07 01:05:08 Serving remote API at localhost:3476


現(xiàn)在確保 docker 容器可以看到 GPU:


sudo nvidia-docker run --rm nvidia/cuda nvidia-smi



如上圖所示,現(xiàn)在得到的表格和前面使用 nvidia-smi 命令,且沒(méi)有在 Docker 容器里運(yùn)行得到的表格是一樣的。


創(chuàng)建一個(gè) Snapshot 卷


如果你跟著上面運(yùn)行下來(lái)了,你可能注意到它需要花費(fèi)一點(diǎn)時(shí)間。而當(dāng)我們運(yùn)行 GPU 實(shí)例時(shí),那成本就比較大了。所以我們需要避免重復(fù)以上過(guò)程浪費(fèi)時(shí)間和內(nèi)存,我們可以將以上過(guò)程做一個(gè)整合,當(dāng)我們需要啟動(dòng) GPU 時(shí)就可以直接使用。


登陸 Jupyter 和 TensorBoard


sudo nvidia-docker run --rm --name tf1 -p 8888:8888 -p 6006:6006 gcr.io/tensorflow/tensorflow:latest-gpu jupyter notebook --allow-root


上面命令可以展示為一個(gè)鏈接:


http://localhost:8888/?token=c8caba947dfd4c97414447c074325faf399cf8a157d0ce2f


最后尋找一個(gè) GCE 實(shí)例的外部 IP 地址,并將它連接到端口 8888,即 http://EXTERNAL_IP:8888/,從你的控制臺(tái)鍵入類似的符號(hào),現(xiàn)在你就擁有了一個(gè)可以在 GPU 上運(yùn)行 TensorFlow 的 Jupyter notebook。


原文鏈接:https:///google-cloud/jupyter-tensorflow-nvidia-gpu-docker-google-compute-engine-4a146f085f17



    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多