PlaidML 致力于跨平台开发部署的开源高性能深度学习框架,目前PlaidML支持Keras,OpenCL,Linux,macOS和Windows的支持。最重要的是PlaidML 可以使用AMD的显卡在windows平台上进行深度学习,由于手头上的笔记本只有A卡,所以决定尝试一下利用A卡的GPU来尝试一下,虽然是基于Opencl的加速,尝试一下和CUDA的对比。
1安装PlaidML
1.1安装python 在windows平台上安装PlaidML还是比较简单的,按照官网的例子,其实不需要安装Chocolatey这个软件,只需要安装python 和vcredist2015就可以了,还有显卡的驱动需要安装,支持OpenCL 1.2版本以上。
文章图片
1.2安装PlaidML-keras 这需要安装PlaidML版本的keras,PlaidML-keras最新的版本是0.7,但是最新的版本安装的时候有问题,具体参照GitHub上的issue,所以最好是指定版本安装
pip install plaidml-keras==0.6.4
1.3运行PlaidML-setup
文章图片
2测试运行 【deep|开源深度学习框架PlaidML安装及测试 一】GitHub上的Hello VGG例子
import numpy as np
import os
import timeos.environ["KERAS_BACKEND"] = "plaidml.keras.backend"import keras
import keras.applications as kapp
from keras.datasets import cifar10(x_train, y_train_cats), (x_test, y_test_cats) = cifar10.load_data()
batch_size = 8
x_train = x_train[:batch_size]
x_train = np.repeat(np.repeat(x_train, 7, axis=1), 7, axis=2)
model = kapp.VGG16()
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 batches
print("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))
这里采用的是keras的标准接口,直接导入keras的模型和predict的功能,一下为运行的结果
文章图片
GPU的使用情况
文章图片
3测试结果 加载Opencl的速度还是挺快的,比tensorflow加载CUDA的速度要快,可能是我的笔记本电脑的显存比较少,只有2G,运行的结果可以看到batch_size为8,运行10次,标准的VGG16输入的大小为224x224X3,predictde1时间大约为0.26秒。
4待测试项目
- PlaidML 的CPU加速
- 和Tensorflow的对比
- 和OpenCV的DNN模块加速效果对比
推荐阅读
- Machine|scikit-learn-分类模型评价标准
- AI|bert实现端到端继续预训练
- deep|Andrew Ng, deeplearning. Course2 week2,Optimization
- 数学|matlab三维山峰/山脉/山地曲面数据图
- Deep|Caffe——整体结构剖析
- Deep|Caffe——环境安装和配置(CPU)
- Deep|Caffe——模型解析
- machine|LightGBM参数介绍
- Python|Python怎么控制浮点数保留几位小数
- statistic|隐马尔科夫模型(HMM)与线性动态系统(LDS)