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]
Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object .WebClient).DownloadString('/install.ps1'))
•然后重启终端,安装python
choco install -y python git vcredist
•然后切换到没有管理员权限的终端安装PlaidML和Keras
pip install -U plaidml-kerasplaidml-setup
或者直接安装Anaconda,然后通过conda管理器进行安装。
MacOS
支持大部分MacOS电脑。官方提供的安装方法如下:
•首先创建虚拟环境
python3 -m venv plaidml-venvsource plaidml-venv/bin/activate
•然后安装PlaidML-keras套件
pip install -U plaidml-keras
•设置电脑硬件
plaidml-setup
•使用MobileNet测试安装
pip install plaidml-keras plaidbenchplaidbench keras mobilenet
Linux的安装过程与MacOS类似,此处不再赘述。如有疑问,可查官方安装教程[2]。
测试
安装完成后,可以通过如下代码运行VGG-19进一步测试。
#!/usr/bin/env pythonimport numpy as npimport osimport timeos.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()pile(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:[2]官方安装教程:https://plaidml.github.io/plaidml/docs/install
往期推荐