摘要:工資不漲,英偉達(dá)的售價(jià)年年漲。近日,宣布推出適用于的,其中包括。對(duì)于正在進(jìn)行的深度學(xué)習(xí)加速工作而言,這是一座重大的里程碑。而實(shí)現(xiàn)則使用了,這是一個(gè)適用于深度學(xué)習(xí)的高度優(yōu)化例程庫(kù)。目前已發(fā)布安裝說(shuō)明及預(yù)構(gòu)建的映像。
工資不漲,英偉達(dá) GPU 的售價(jià)年年漲。因此,多一個(gè)競(jìng)爭(zhēng)對(duì)手,總是好事。
近日,Google 宣布推出適用于 ROCm GPU 的 TensorFlow v1.8,其中包括 Radeon Instinct MI25。對(duì)于 AMD 正在進(jìn)行的深度學(xué)習(xí)加速工作而言,這是一座重大的里程碑。
ROCm 即 Radeon 開(kāi)放生態(tài)系統(tǒng) (Radeon Open Ecosystem),是我們?cè)?Linux 上進(jìn)行 GPU 計(jì)算的開(kāi)源軟件基礎(chǔ)。而 TensorFlow 實(shí)現(xiàn)則使用了 MIOpen,這是一個(gè)適用于深度學(xué)習(xí)的高度優(yōu)化 GPU 例程庫(kù)。
AMD 提供了一個(gè)預(yù)構(gòu)建的 whl 軟件包,安裝過(guò)程很簡(jiǎn)單,類似于安裝 Linux 通用 TensorFlow。目前 Google 已發(fā)布安裝說(shuō)明及預(yù)構(gòu)建的 Docker 映像。下面,我們就來(lái)手把手地教大家。
如何在 AMD 的 GPU 上運(yùn)行 TensorFlow?
首先,你需要安裝開(kāi)源 ROCm 堆棧,詳細(xì)的安裝說(shuō)明可以參考:
https://rocm.github.io/ROCmInstall.html
然后,你需要安裝其他相關(guān)的 ROCm 軟件包:
sudo apt update
sudo apt install rocm-libs miopen-hip cxlactivitylogger
最后,安裝 TensorFlow (通過(guò) Google 預(yù)先構(gòu)建的 whl 軟件包):
sudo apt install wget python3-pip?
wget http://repo.radeon.com/rocm/misc/tensorflow/tensorflow-1.8.0-cp35-cp35m-manylinux1_x86_64.whl
pip3 install ./tensorflow-1.8.0-cp35-cp35m-manylinux1_x86_64.whl
ROCm-docker 安裝指南
Rocm-docker 的安裝指南:
https://github.com/RadeonOpenCompute/ROCm-docker/blob/master/quick-start.md
啟動(dòng) TensorFlow v1.8 docker 映像:
alias drun="sudo docker run -it --network=host --device=/dev/kfd --device=/dev/dri --group-add video --cap-add=SYS_PTRACE --security-opt seccomp=unconfined -v $HOME/dockerx:/dockerx -v /data/imagenet/tf:/imagenet"
drun rocm/tensorflow:rocm1.8.2-tf1.8-python2
當(dāng)你使用 ROCm 容器時(shí),以下是一些常用且非常實(shí)用的 docker 命令:
一個(gè)新的 docker 容器通常不包含元數(shù)據(jù)存儲(chǔ)庫(kù)命令 apt。因此,在嘗試使用 apt 安裝新軟件之前,請(qǐng)首先確保命令 sudo apt update 的正常運(yùn)行。
出現(xiàn)如下報(bào)錯(cuò)消息,通常意味著當(dāng)前用戶無(wú)執(zhí)行 docker 的權(quán)限;你需要使用 sudo 命令或?qū)⒛愕挠脩籼砑拥?docker 組。 ? ? ?
在正在運(yùn)行的容器中打開(kāi)另一個(gè)終端的命令:
? ? ? ? ? ? ?
從主機(jī)中復(fù)制文件到正在運(yùn)行的 docker 上的命令:
? ? ? ? ? ? ?
從正在運(yùn)行的 docker 容器中復(fù)制文件到主機(jī)上的命令:
? ? ? ? ? ? ?
在拉取圖像時(shí),收到設(shè)備上沒(méi)有剩余空間的消息,請(qǐng)檢查 docker 引擎正在使用的存儲(chǔ)驅(qū)動(dòng)程序。如果是“設(shè)備映射器 (device mapper)”,這意味著“設(shè)備映射器”存儲(chǔ)驅(qū)動(dòng)程序限制了圖像大小限制,此時(shí)你可以參考快速入門指南中關(guān)于更改存儲(chǔ)驅(qū)動(dòng)程序的解決方案,鏈接如下:
https://github.com/RadeonOpenCompute/ROCm-docker/blob/master/quick-start.md
實(shí)踐指南
1、圖像識(shí)別
我們將使用 TensorFlow 的一個(gè)教程作為 Inception-v3 圖像識(shí)別任務(wù):
https://www.tensorflow.org/tutorials/image_recognition
以下是如何運(yùn)行代碼:
cd ~ && git clone https://github.com/tensorflow/models.git
cd ~/models/tutorials/image/imagenet
python3 classify_image.py
之后,你會(huì)看到一個(gè)帶有相關(guān)分?jǐn)?shù)的標(biāo)簽列表,上面的腳本是用于對(duì)熊貓的圖像進(jìn)行分類,所以你會(huì)看到下面的結(jié)果:
giant panda, panda, panda bear, coon bear, Ailuropoda melanoleuca (score = 0.89103)
indri, indris, Indri indri, Indri brevicaudatus (score = 0.00810)
lesser panda, red panda, panda, bear cat, cat bear, Ailurus fulgens (score = 0.00258)
custard apple (score = 0.00149)
earthstar (score = 0.00141)
2、語(yǔ)音識(shí)別
接下來(lái),讓我們?cè)囋?TensorFlow 的語(yǔ)音識(shí)別教程:
https://www.tensorflow.org/tutorials/audio_recognition
以下是運(yùn)行代碼:
cd ~ && git clone https://github.com/tensorflow/tensorflow.git
cd ~/tensorflow
python3 tensorflow/examples/speech_commands/train.py
在默認(rèn)設(shè)置下運(yùn)行幾個(gè)小時(shí)后,你將看到準(zhǔn)確度越來(lái)越高的趨勢(shì):
[...]
INFO:tensorflow:Step 18000: Validation accuracy = 88.7% (N=3093)
INFO:tensorflow:Saving to "/tmp/speech_commands_train/conv.ckpt-18000"
INFO:tensorflow:set_size=3081
INFO:tensorflow:Confusion Matrix:
[[254 ? 2 ? 0 ? 0 ? 0 ? 1 ? 0 ? 0 ? 0 ? 0 ? 0 ? 0]
[ ?3 195 ? 5 ? 5 ?11 ? 8 ? 4 ? 5 ? 7 ? 0 ? 4 ?10]
[ ?0 ? 4 239 ? 0 ? 1 ? 1 ? 9 ? 1 ? 0 ? 0 ? 1 ? 0]
[ ?0 ? 5 ? 0 220 ? 1 ? 7 ? 2 ? 4 ? 0 ? 1 ? 1 ?11]
[ ?1 ? 1 ? 0 ? 0 258 ? 0 ? 4 ? 0 ? 0 ? 2 ? 4 ? 2]
[ ?2 ? 5 ? 0 ?15 ? 1 211 ? 2 ? 0 ? 2 ? 0 ? 2 ?13]
[ ?1 ? 2 ?15 ? 0 ? 6 ? 0 240 ? 2 ? 0 ? 0 ? 1 ? 0]
[ ?1 ?13 ? 0 ? 0 ? 3 ? 0 ? 2 237 ? 0 ? 1 ? 2 ? 0]
[ ?0 ? 5 ? 1 ? 0 ? 2 ? 1 ? 1 ? 3 231 ? 2 ? 0 ? 0]
[ ?0 ? 3 ? 0 ? 0 ?21 ? 1 ? 3 ? 3 ? 5 225 ? 1 ? 0]
[ ?0 ? 0 ? 1 ? 1 ? 8 ? 1 ? 3 ? 0 ? 0 ? 2 232 ? 1]
[ ?0 ?14 ? 0 ?34 ? 6 ? 5 ? 5 ? 2 ? 0 ? 1 ? 0 184]]
INFO:tensorflow:Final test accuracy = 88.5% (N=3081)
如果你想測(cè)試訓(xùn)練好的模型,可以嘗試以下方法:
python3 tensorflow/examples/speech_commands/freeze.py
--start_checkpoint=/tmp/speech_commands_train/conv.ckpt-18000
--output_file=/tmp/my_frozen_graph.pb
python3 tensorflow/examples/speech_commands/label_wav.py --graph=/tmp/my_frozen_graph.pb --labels=/tmp/speech_commands_train/conv_labels.txt --wav=/tmp/speech_dataset/left/a5d485dc_nohash_0.wav
你會(huì)看到“l(fā)eft”標(biāo)簽的得分較高:
left (score = 0.74686)
right (score = 0.12304)
unknown (score = 0.10759)
3、多 GPU 訓(xùn)練
最后,讓我們用多個(gè) GPU 來(lái)訓(xùn)練 ResNet-50。我們將使用 TensorBoard 來(lái)監(jiān)控進(jìn)度,因此我們的工作流程分為兩個(gè)終端和一個(gè)瀏覽器。首先,我們假設(shè)你將 ImageNet 數(shù)據(jù)集放在“/ data / imagenet”(可更改)下。
1) 第一個(gè)終端
cd ~ && git clone https://github.com/tensorflow/benchmarks.git?
cd ~/benchmarks
git checkout -b may22 ddb23306fdc60fefe620e6ce633bcd645561cb0d
MODEL=resnet50
NGPUS=4
BATCH_SIZE=64
ITERATIONS=5000000
TRAIN_DIR=trainbenchmarks${MODEL}
rm -rf "${TRAIN_DIR}"
python3 ./scripts/tf_cnn_benchmarks/tf_cnn_benchmarks.py
? ?--model=${MODEL} --data_name=imagenet --data_dir=/data/imagenet
? ?--train_dir="${TRAIN_DIR}" --print_training_accuracy=True
? ?--summary_verbosity 2 --save_summaries_steps 10 --save_model_secs=3600
? ?--variable_update=parameter_server --local_parameter_device=cpu
? ?--num_batches=${ITERATIONS} --batch_size=${BATCH_SIZE}
? ?--num_gpus=${NGPUS} 2>&1 | tee /dockerx/tf-imagenet.txt
2) 第二個(gè)終端
hostname -I ? ? ? ?# find your IP address
tensorboard --logdir train_benchmarks_resnet --host
3) 在瀏覽器里打開(kāi) Tensorboard
鏈接: http://
使用 TensorBoard,你可以看到 loss 越來(lái)越小、準(zhǔn)確性越來(lái)越高的趨勢(shì)。
參考鏈接:
https://medium.com/tensorflow/amd-rocm-gpu-support-for-tensorflow-33c78cc6a6cf
聲明:文章收集于網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系小編及時(shí)處理,謝謝
歡迎加入本站公開(kāi)興趣群商業(yè)智能與數(shù)據(jù)分析群
興趣范圍包括各種讓數(shù)據(jù)產(chǎn)生價(jià)值的辦法,實(shí)際應(yīng)用案例分享與討論,分析工具,ETL工具,數(shù)據(jù)倉(cāng)庫(kù),數(shù)據(jù)挖掘工具,報(bào)表系統(tǒng)等全方位知識(shí)
QQ群:81035754
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/4800.html
摘要:誕生于年月份,年月份正式開(kāi)源,多次,發(fā)布個(gè)版本,個(gè)組件,共計(jì)個(gè)單測(cè),測(cè)試覆蓋率。得益于的穩(wěn)定,自發(fā)布第一個(gè)版本起,都沒(méi)有破壞性的更新,本次發(fā)布的版本自然也沒(méi)有破壞性的更新。因要支持低版本的,暫時(shí)并沒(méi)有提供該功能。 vue-antd-ui是一個(gè)站在巨人(antd)肩膀上的UI組件庫(kù),有著其它組件庫(kù)沒(méi)有的優(yōu)勢(shì),幾乎繼承了antd所有的功能特點(diǎn),自帶antd各種buff。 vue-antd-...
摘要:一直以來(lái),的面向?qū)ο笠话愣际强浚吘垢渌Z(yǔ)言中的還是相差甚遠(yuǎn)的當(dāng)然硬要實(shí)現(xiàn)也行,就是特麻煩,現(xiàn)在終于從語(yǔ)言層面實(shí)現(xiàn)了,鼓掌這實(shí)際上就是提供的方法,即把多個(gè)合并到一起,這下又多了一個(gè)拋棄的理由了 template string template string(模板字符串),至ES6,javascript終于也能直接往字符串里插變量了。這用途嘛,說(shuō)大不大,說(shuō)小也不小;雖說(shuō)不能實(shí)現(xiàn)比較復(fù)...
摘要:年月下旬生活大爆炸政策原因搜狐視頻無(wú)法播放下架。年月日,生活大爆炸第八季拿到許可證上線搜狐視頻。年月日,生活大爆炸最后一集宣布正式殺青。播出十年的生活大爆炸季終集播出,謝耳朵終于向艾米求婚,網(wǎng)友喜大普奔。 本博客 貓叔的博客,轉(zhuǎn)載請(qǐng)申明出處閱讀本文約 4分鐘適讀人群:電視劇愛(ài)好者 《生活大爆炸》(英文:The Big Bang Theory 簡(jiǎn)稱:TBBT),于2007年在哥倫比亞廣播...
閱讀 916·2021-11-25 09:43
閱讀 1283·2021-11-17 09:33
閱讀 2998·2019-08-30 15:44
閱讀 3300·2019-08-29 17:16
閱讀 471·2019-08-28 18:20
閱讀 1624·2019-08-26 13:54
閱讀 546·2019-08-26 12:14
閱讀 2165·2019-08-26 12:14