没有N卡?那就用AMD GPU训练深度学习模型

2020-03-11 17:53:14 浏览数 (1)

PlaidML是一种高级且可移植的张量编译器,用于在笔记本电脑,嵌入式设备或其他设备上进行深度学习,而这些笔记本计算机,嵌入式设备或其他设备未充分支持可用的计算硬件,比如Nvidia显卡。

PlaidML位于常见的机器学习框架之下,使用户能够访问PlaidML支持的任何硬件。比如Keras。

PlaidML可在所有主要操作系统上运行:Linux,macOS和Windows。

已验证的硬件:

•AMD

R9 Nano,Vega 10,RX 480

• Intel

HD4000,HD Graphics 505

•NVIDIA

K80,GT 640M,GTX 1050,GTX 1070

安装

windows

• 首先,打开PowerShell输入以下命令,安装Chocolatey[1]

代码语言:javascript复制
Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))

•然后重启终端,安装python

代码语言:javascript复制
choco install -y python git vcredist2015

•然后切换到没有管理员权限的终端安装PlaidML和Keras

代码语言:javascript复制
pip install -U plaidml-kerasplaidml-setup

或者直接安装Anaconda,然后通过conda管理器进行安装。

MacOS

支持大部分MacOS电脑。官方提供的安装方法如下:

•首先创建虚拟环境

代码语言:javascript复制
python3 -m venv plaidml-venvsource plaidml-venv/bin/activate

•然后安装PlaidML-keras套件

代码语言:javascript复制
pip install -U plaidml-keras

•设置电脑硬件

代码语言:javascript复制
plaidml-setup

•使用MobileNet测试安装

代码语言:javascript复制
pip install plaidml-keras plaidbenchplaidbench keras mobilenet

Linux的安装过程与MacOS类似,此处不再赘述。如有疑问,可查官方安装教程[2]。

测试

安装完成后,可以通过如下代码运行VGG-19进一步测试。

代码语言:javascript复制
#!/usr/bin/env python
import numpy as npimport osimport time
os.environ["KERAS_BACKEND"] = "plaidml.keras.backend"
import kerasimport keras.applications as kappfrom keras.datasets import cifar10
(x_train, y_train_cats), (x_test, y_test_cats) = cifar10.load_data()batch_size = 8x_train = x_train[:batch_size]x_train = np.repeat(np.repeat(x_train, 7, axis=1), 7, axis=2)model = kapp.VGG19()model.compile(optimizer='sgd', loss='categorical_crossentropy',              metrics=['accuracy'])
print("Running initial batch (compiling tile program)")y = model.predict(x=x_train, batch_size=batch_size)
# Now start the clock and run 10 batchesprint("Timing inference...")start = time.time()for i in range(10):    y = model.predict(x=x_train, batch_size=batch_size)print("Ran in {} seconds".format(time.time() - start))

如果没有N卡的话,闲置的电脑可以拿出来了,用来跑一些模型还是比纯CPU要快不少的。感兴趣的可以测试一下。

References

[1] Chocolatey: https://chocolatey.org [2] 官方安装教程: https://plaidml.github.io/plaidml/docs/install

0 人点赞