嗯,上车有点晚...但是依然坚持上去看看~~
首先记录一下keras用radeon支持,基本此文就可以搞定。然后再说tensorflow 这个东西相对恶心一点。首先需要查看一下自己电脑的OpenCL版本。跑一下以下代码基本就清楚了(庆幸自己还是OpenCL1.2,因为tensorflow支持的野路子GPU必须用这个版本的opencl不然也是会挂的)。
#include <stdio.h>
#include <stdlib.h>
#include <OpenCL/opencl.h>
int main(int argc, char* const argv[]) {
cl_uint num_devices, i;
clGetDeviceIDs(NULL, CL_DEVICE_TYPE_ALL, 0, NULL, &num_devices);
cl_device_id* devices = calloc(sizeof(cl_device_id), num_devices);
clGetDeviceIDs(NULL, CL_DEVICE_TYPE_ALL, num_devices, devices, NULL);
char buf[128];
for (i = 0; i < num_devices; i++) {
clGetDeviceInfo(devices[i], CL_DEVICE_NAME, 128, buf, NULL);
fprintf(stdout, "Device %s supports ", buf);
clGetDeviceInfo(devices[i], CL_DEVICE_VERSION, 128, buf, NULL);
fprintf(stdout, "%s\n", buf);
}
free(devices);
}
跑一下以上代码基本就知道自己版本了。版本不对路,可能要自己编译自己的tensorflow-opencl。
如果是同一个版本,那么恭喜你:直接装,而不用管机器的操作平台版本。它其实主要就是在计较opencl版本。
notebook的开篇备忘
import os
os.environ["KERAS_BACKEND"] = "plaidml.keras.backend"
import tensorflow as tf
os.environ["CL_GPUOFFSET"] ="1"
from keras.models import Sequential
from keras.layers import Dense
from keras import optimizers