deep|开源深度学习框架PlaidML安装及测试 一

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版本以上。
deep|开源深度学习框架PlaidML安装及测试 一
文章图片

1.2安装PlaidML-keras 这需要安装PlaidML版本的keras,PlaidML-keras最新的版本是0.7,但是最新的版本安装的时候有问题,具体参照GitHub上的issue,所以最好是指定版本安装
pip install plaidml-keras==0.6.4
1.3运行PlaidML-setup deep|开源深度学习框架PlaidML安装及测试 一
文章图片

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的功能,一下为运行的结果
deep|开源深度学习框架PlaidML安装及测试 一
文章图片

GPU的使用情况
deep|开源深度学习框架PlaidML安装及测试 一
文章图片

3测试结果 加载Opencl的速度还是挺快的,比tensorflow加载CUDA的速度要快,可能是我的笔记本电脑的显存比较少,只有2G,运行的结果可以看到batch_size为8,运行10次,标准的VGG16输入的大小为224x224X3,predictde1时间大约为0.26秒。
4待测试项目
  1. PlaidML 的CPU加速
  2. 和Tensorflow的对比
  3. 和OpenCV的DNN模块加速效果对比

    推荐阅读