そして、今回は、
にあるように、PlaidML 0.3.0 にて、ONNX 1.1.0 を import できるようになったと。onnx-plaidml
こんな感じ、引用 import onnx import onnx_plaidml.backend import numpy as np # Assumption: test_images.npz contains a tensor, "inputs", whose # most-major dimension strides through images to be supplied to the model. with np.load('test_images.npz') as img: model = onnx.load('resnet50_model.onnx') rep = onnx_plaidml.backend.prepare(model, device='GPU') for batch in range(img['inputs'].shape[0]): data = img['inputs'][batch, :] output = rep.run([data]) print(output)
Announcing PlaidML: Open Source Deep Learning for Every Platformにあるように、PlaidMLは、フロントエンドは、keras、バックエンドは、NVIDIA GPU、AMD GPU、Intel GPUをサポートしています。
ONNXの記事では、
引用 Experimental Config Devices: geforce_gpu.0 : NVIDIA Corporation GeForce GPU opencl_cpu.0 : Intel(R) Corporation OpenCL CPU
PlaidML Architecture Overviewを見ると、
引用 Frontend adapters that utilize the op library and the API to implement support for that frontend ONNX Keras
ONNX以外にも、Kerasをサポートしているのね。
Kerasのサンプルコード
引用 import plaidml.keras plaidml.keras.install_backend() import keras import keras.applications as kapp from keras.datasets import cifar10