工資不漲,英偉達 GPU 的售價年年漲。因此,多一個競爭對手,總是好事。
近日,Google 宣布推出適用于 ROCm GPU 的 TensorFlow v1.8,其中包括 Radeon Instinct MI25。對于 AMD 正在進行的深度學習加速工作而言,這是一座重大的里程碑。
ROCm即 Radeon 開放生態(tài)系統(tǒng) (Radeon Open Ecosystem),是我們在 Linux 上進行 GPU 計算的開源軟件基礎。而 TensorFlow 實現(xiàn)則使用了MIOpen,這是一個適用于深度學習的高度優(yōu)化 GPU 例程庫。
AMD 提供了一個預構建的whl軟件包,安裝過程很簡單,類似于安裝 Linux 通用 TensorFlow。目前 Google 已發(fā)布安裝說明及預構建的 Docker 映像。下面,我們就來手把手地教大家。
▌如何在 AMD 的 GPU 上運行 TensorFlow?
首先,你需要安裝開源 ROCm 堆棧,詳細的安裝說明可以參考:
https://rocm.github.io/ROCmInstall.html
然后,你需要安裝其他相關的 ROCm 軟件包:
sudoaptupdatesudoaptinstallrocm-libsmiopen-hipcxlactivitylogger
最后,安裝 TensorFlow (通過 Google 預先構建的 whl 軟件包):
sudoaptinstallwgetpython3-pipwgethttp://repo.radeon.com/rocm/misc/tensorflow/tensorflow-1.8.0-cp35-cp35m-manylinux1_x86_64.whlpip3install./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
啟動 TensorFlow v1.8 docker 映像:
aliasdrun='sudodockerrun-it--network=host--device=/dev/kfd--device=/dev/dri--group-addvideo--cap-add=SYS_PTRACE--security-optseccomp=unconfined-v$HOME/dockerx:/dockerx-v/data/imagenet/tf:/imagenet'drunrocm/tensorflow:rocm1.8.2-tf1.8-python2
當你使用 ROCm 容器時,以下是一些常用且非常實用的 docker 命令:
一個新的 docker 容器通常不包含元數(shù)據(jù)存儲庫命令 apt。因此,在嘗試使用 apt 安裝新軟件之前,請首先確保命令 sudo apt update 的正常運行。
出現(xiàn)如下報錯消息,通常意味著當前用戶無執(zhí)行 docker 的權限;你需要使用 sudo 命令或將你的用戶添加到 docker 組。
在正在運行的容器中打開另一個終端的命令:
從主機中復制文件到正在運行的 docker 上的命令:
從正在運行的 docker 容器中復制文件到主機上的命令:
在拉取圖像時,收到設備上沒有剩余空間的消息,請檢查 docker 引擎正在使用的存儲驅動程序。如果是“設備映射器 (device mapper)”,這意味著“設備映射器”存儲驅動程序限制了圖像大小限制,此時你可以參考快速入門指南中關于更改存儲驅動程序的解決方案,鏈接如下:
https://github.com/RadeonOpenCompute/ROCm-docker/blob/master/quick-start.md
▌實踐指南
1、圖像識別
我們將使用 TensorFlow 的一個教程作為 Inception-v3 圖像識別任務:
https://www.tensorflow.org/tutorials/image_recognition
以下是如何運行代碼:
cd~&&gitclonehttps://github.com/tensorflow/models.gitcd~/models/tutorials/image/imagenetpython3classify_image.py
之后,你會看到一個帶有相關分數(shù)的標簽列表,上面的腳本是用于對熊貓的圖像進行分類,所以你會看到下面的結果:
giantpanda,panda,pandabear,coonbear,Ailuropodamelanoleuca(score=0.89103)indri,indris,Indriindri,Indribrevicaudatus(score=0.00810)lesserpanda,redpanda,panda,bearcat,catbear,Ailurusfulgens(score=0.00258)custardapple(score=0.00149)earthstar(score=0.00141)
2、語音識別
接下來,讓我們試試 TensorFlow 的語音識別教程:
https://www.tensorflow.org/tutorials/audio_recognition
以下是運行代碼:
cd~&&gitclonehttps://github.com/tensorflow/tensorflow.gitcd~/tensorflowpython3tensorflow/examples/speech_commands/train.py
在默認設置下運行幾個小時后,你將看到準確度越來越高的趨勢:
[...]INFO:tensorflow:Step18000:Validationaccuracy=88.7%(N=3093)INFO:tensorflow:Savingto"/tmp/speech_commands_train/conv.ckpt-18000"INFO:tensorflow:set_size=3081INFO:tensorflow:ConfusionMatrix:[[25420001000000][3195551184570410][04239011910010][050220172401111][11002580400242][2501512112020213][121506024020010][113003022370120][05102113231200][030021133522510][00118130022321][0140346552010184]]INFO:tensorflow:Finaltestaccuracy=88.5%(N=3081)
如果你想測試訓練好的模型,可以嘗試以下方法:
python3tensorflow/examples/speech_commands/freeze.py--start_checkpoint=/tmp/speech_commands_train/conv.ckpt-18000--output_file=/tmp/my_frozen_graph.pbpython3tensorflow/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
你會看到“l(fā)eft”標簽的得分最高:
left(score=0.74686)right(score=0.12304)unknown(score=0.10759)
3、多 GPU 訓練
最后,讓我們用多個 GPU 來訓練 ResNet-50。我們將使用 TensorBoard 來監(jiān)控進度,因此我們的工作流程分為兩個終端和一個瀏覽器。首先,我們假設你將 ImageNet 數(shù)據(jù)集放在“/ data / imagenet”(可更改)下。
1) 第一個終端
cd~&&gitclonehttps://github.com/tensorflow/benchmarks.gitcd~/benchmarksgitcheckout-bmay22ddb23306fdc60fefe620e6ce633bcd645561cb0dMODEL=resnet50NGPUS=4BATCH_SIZE=64ITERATIONS=5000000TRAIN_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_verbosity2--save_summaries_steps10--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) 第二個終端
hostname-I#findyourIPaddresstensorboard--logdirtrain_benchmarks_resnet--host
3) 在瀏覽器里打開 Tensorboard
鏈接: http://
使用 TensorBoard,你可以看到 loss 越來越小、準確性越來越高的趨勢。
-
gpu
+關注
關注
28文章
4760瀏覽量
129130 -
tensorflow
+關注
關注
13文章
329瀏覽量
60560
原文標題:喜大普奔!TensorFlow終于支持A卡了
文章出處:【微信號:rgznai100,微信公眾號:rgznai100】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論