0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何在AMD的GPU上运行TensorFlow?

电子工程师 来源:未知 作者:李倩 2018-10-04 08:59 次阅读

工资不涨,英伟达 GPU 的售价年年涨。因此,多一个竞争对手,总是好事。

近日,Google 宣布推出适用于 ROCm GPU 的 TensorFlow v1.8,其中包括 Radeon Instinct MI25。对于 AMD 正在进行的深度学习加速工作而言,这是一座重大的里程碑。

ROCm即 Radeon 开放生态系统 (Radeon Open Ecosystem),是我们在 Linux 上进行 GPU 计算的开源软件基础。而 TensorFlow 实现则使用了MIOpen,这是一个适用于深度学习的高度优化 GPU 例程库。

AMD 提供了一个预构建的whl软件包,安装过程很简单,类似于安装 Linux 通用 TensorFlow。目前 Google 已发布安装说明及预构建的 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 容器通常不包含元数据存储库命令 apt。因此,在尝试使用 apt 安装新软件之前,请首先确保命令 sudo apt update 的正常运行。

出现如下报错消息,通常意味着当前用户无执行 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

之后,你会看到一个带有相关分数的标签列表,上面的脚本是用于对熊猫的图像进行分类,所以你会看到下面的结果:

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

你会看到“left”标签的得分最高:

left(score=0.74686)right(score=0.12304)unknown(score=0.10759)

3、多 GPU 训练

最后,让我们用多个 GPU 来训练 ResNet-50。我们将使用 TensorBoard 来监控进度,因此我们的工作流程分为两个终端和一个浏览器。首先,我们假设你将 ImageNet 数据集放在“/ 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://:6006/

使用 TensorBoard,你可以看到 loss 越来越小、准确性越来越高的趋势。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • gpu
    gpu
    +关注

    关注

    27

    文章

    4424

    浏览量

    126724
  • tensorflow
    +关注

    关注

    13

    文章

    313

    浏览量

    60242

原文标题:喜大普奔!TensorFlow终于支持A卡了

文章出处:【微信号:rgznai100,微信公众号:rgznai100】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    何在Raspberry Pi上安装TensorFlow

     在本教程中,我们将学习如何在 Raspberry Pi 上安装 TensorFlow,并将展示一些在预训练神经网络上进行简单图像分类的示例。
    发表于 09-01 16:35 1740次阅读
    如<b class='flag-5'>何在</b>Raspberry Pi上安装<b class='flag-5'>TensorFlow</b>

    使用 TensorFlow, 你必须明白 TensorFlow

    TensorFlow 图描述了计算的过程. 为了进行计算, 图必须在 会话 里被启动. 会话 将图的 op 分发到诸如 CPU 或 GPU 之类的 设备 , 同时提供执行 op 的方法. 这些方法
    发表于 03-30 20:03

    在阿里云Kubernetes容器服务打造TensorFlow实验室

    的定义和训练的收敛趋势。总结我们可以利用阿里云Kubernetes容器服务,轻松的搭建在云端搭建TensorFlow的环境,运行深度学习的实验室,并且利用TensorBoard追踪训练效果。欢迎大家使用阿里云
    发表于 05-10 10:24

    可以在vGPU配置文件运行TensorFlow吗?

    大家好,我有一些问题,你们可能知道答案。我阅读了文档,但我还不确定。开发团队中有一些人正在为TensorFlow(AI项目)寻找GPU。我们对在工作站和Dockers运行的Quadr
    发表于 09-18 16:35

    干货!教你怎么搭建TensorFlow深度学习开发环境!

    的Installation一栏,Windows的Tensorflow有CPU和GPU两个版本,安装了CUDA8.0的朋友们可以选择下载GPU版本。下载好以后,在“开始”菜单的“运行”里
    发表于 09-27 13:56

    深度学习框架TensorFlow&TensorFlow-GPU详解

    TensorFlow&TensorFlow-GPU:深度学习框架TensorFlow&TensorFlow-GPU的简介、安装、使用方法详细攻略
    发表于 12-25 17:21

    tensorflow-gpu安装报错的修改

    tensorflow-gpu安装遇到的一些问题解决
    发表于 05-20 10:25

    TensorFlow XLA加速线性代数编译器

    编译:在会话级别中打开JIT编译: 这是手动打开 JIT 编译: 还可以通过将操作指定在特定的 XLA 设备(XLA_CPU 或 XLA_GPU,通过 XLA 来运行计算: AoT编译:独立使用 tfcompile 将
    发表于 07-28 14:31

    TensorFlow指定CPU和GPU设备操作详解

    算放在一个特定的设备。默认情况下,如果 CPU 和 GPU 都存在,TensorFlow 会优先考虑 GPUTensorFlow 将设备
    发表于 07-28 14:33

    Mali GPU支持tensorflow或者caffe等深度学习模型吗

    好的Tensorflow或者Caffe模型部署到ARM平台Mali-G71/72 GPU运行,而不重新OpenCL编写代码,但没有看见相关可行的资料。网上信息显示
    发表于 09-16 14:13

    在Ubuntu 18.04 for Arm运行TensorFlow和PyTorch的Docker映像

    用于试用镜像,包括 A1、T4g、M6g、C6g 或 R6g。TensorFlow 和 PyTorch 图像在 Graviton2 构建和运行的速度明显更快。要记住的另一件事是,在 Graviton2
    发表于 10-14 14:25

    TensorFlow是什么?如何启动并运行TensorFlow

    TensorFlow 是一款用于数值计算的强大的开源软件库,特别适用于大规模机器学习的微调。 它的基本原理很简单:首先在 Python 中定义要执行的计算图(例如图 9-1),然后 TensorFlow 使用该图并使用优化的 C++ 代码高效
    的头像 发表于 07-29 11:16 1.6w次阅读

    关于TensorFlowGPU中的使用规则

    在一套标准系统中通常有多台计算设备。TensorFlow 支持 CPU 和 GPU 这两种设备。它们均用 strings 表示。
    的头像 发表于 12-04 09:27 3382次阅读

    GPU上利用TensorFlow Serving 部署ResNet

    的 SavedModel,并在主机中开放 REST API 端口 8501。resnet_client.py 会发送一些图像给服务器,并返回服务器所作的预测。现在让我们终止 TensorFlow Serving 容器的运行,以释放所占用的
    的头像 发表于 03-05 17:51 7356次阅读
    在<b class='flag-5'>GPU</b>上利用<b class='flag-5'>TensorFlow</b> Serving 部署ResNet

    何在ESP32上使用代码运行TensorFlow模型?

    该项目使用在ESP32上运行TensorFlow Lite创建一个语音控制的机器人。它可以响应简单的单字命令:“左”,“右”,“前进”和“后退”。
    的头像 发表于 04-27 14:54 4147次阅读