我现在正在使用支持GPU的tensorflow C ++动态库。
我使用CUDA9.0,CUDNN7.0,visual studio 2015 x64和CMAKE设置构建:CMAKE settings
我只将tensorflow.lib和tensorflow.dll链接到我的visual studio项目。 当我运行执行矩阵乘法的示例代码时,相同的设置也很顺利(示例代码在https://joe-antognini.github.io/machine-learning/windows-tf-project上)
但现在我试图运行tf示例code-label_image
结果如下: error code
E C:\tensorflow_gpu\tensorflow\tensorflow\core\common_runtime\executor.cc:644] Executor failed to create kernel. Not found: No registered 'Snapshot' OpKernel for GPU devices compatible with node Subtract = Snapshot[T=DT_FLOAT, _device="/job:localhost/replica:0/task:0/device:GPU:0"](ResizeBilinear)
. Registered: device='CPU'; T in [DT_INT64]device='CPU'; T in [DT_INT32]
device='CPU'; T in [DT_UINT16]
device='CPU'; T in [DT_INT16]
device='CPU'; T in [DT_UINT8]
device='CPU'; T in [DT_INT8]
device='CPU'; T in [DT_HALF]
device='CPU'; T in [DT_BFLOAT16]
device='CPU'; T in [DT_FLOAT]
device='CPU'; T in [DT_DOUBLE]
device='CPU'; T in [DT_COMPLEX64]
device='CPU'; T in [DT_COMPLEX128]
device='CPU'; T in [DT_BOOL]
[[Node: Subtract = Snapshot[T=DT_FLOAT, _device="/job:localhost/replica:0/task:0/device:GPU:0"](ResizeBilinear)]]
2018-03-14 17:13:05.408206: E Image_Label.cpp:385] Not found: No registered 'Snapshot' OpKernel for GPU devices compatible with node Subtract = Snapshot[T=DT_FLOAT, _device="/job:localhost/replica:0/task:0/device:GPU:0"](ResizeBilinear)
. Registered: device='CPU'; T in [DT_INT64]
device='CPU'; T in [DT_INT32]
device='CPU'; T in [DT_UINT16]
device='CPU'; T in [DT_INT16]
device='CPU'; T in [DT_UINT8]
device='CPU'; T in [DT_INT8]
device='CPU'; T in [DT_HALF]
device='CPU'; T in [DT_BFLOAT16]
device='CPU'; T in [DT_FLOAT]
device='CPU'; T in [DT_DOUBLE]
device='CPU'; T in [DT_COMPLEX64]
device='CPU'; T in [DT_COMPLEX128]
device='CPU'; T in [DT_BOOL]
[[Node: Subtract = Snapshot[T=DT_FLOAT, _device="/job:localhost/replica:0/task:0/device:GPU:0"](ResizeBilinear)]]
代码停在
TF_RETURN_IF_ERROR(session->Run({ inputs }, { output_name }, {}, out_tensors));
Status ReadTensorFromImageFile(const string& file_name, const int input_height,
const int input_width, const float input_mean,
const float input_std,
std::vector<Tensor>* out_tensors)
中的
任何人都知道问题可能是什么?我已经解决了这个问题好几天了。
答案 0 :(得分:0)
2018-03-15 11:45:35.085196: E D:\test\tensorflow_GPU_Build\tensorflow\tensorflow\core\common_runtime\executor.cc:644] Executor failed to create kernel. Not found: No registered 'Snapshot' OpKernel for GPU devices compatible with node Subtract = Snapshot[T=DT_FLOAT, _device="/job:localhost/replica:0/task:0/device:GPU:0"](ResizeBilinear)
. Registered: device='CPU'; T in [DT_INT64]
device='CPU'; T in [DT_INT32]
device='CPU'; T in [DT_UINT16]
device='CPU'; T in [DT_INT16]
device='CPU'; T in [DT_UINT8]
device='CPU'; T in [DT_INT8]
device='CPU'; T in [DT_HALF]
device='CPU'; T in [DT_BFLOAT16]
device='CPU'; T in [DT_FLOAT]
device='CPU'; T in [DT_DOUBLE]
device='CPU'; T in [DT_COMPLEX64]
device='CPU'; T in [DT_COMPLEX128]
device='CPU'; T in [DT_BOOL]
[[Node: Subtract = Snapshot[T=DT_FLOAT, _device="/job:localhost/replica:0/task:0/device:GPU:0"](ResizeBilinear)]]
2018-03-15 11:45:35.132428: E D:\test\tensorflow_GPU_Build\tensorflow\tensorflow\examples\label_image\main.cc:344] Not found: No registered 'Snapshot' OpKernel for GPU devices compatible with node Subtract = Snapshot[T=DT_FLOAT, _device="/job:localhost/replica:0/task:0/device:GPU:0"](ResizeBilinear)
. Registered: device='CPU'; T in [DT_INT64]
device='CPU'; T in [DT_INT32]
device='CPU'; T in [DT_UINT16]
device='CPU'; T in [DT_INT16]
device='CPU'; T in [DT_UINT8]
device='CPU'; T in [DT_INT8]
device='CPU'; T in [DT_HALF]
device='CPU'; T in [DT_BFLOAT16]
device='CPU'; T in [DT_FLOAT]
device='CPU'; T in [DT_DOUBLE]
device='CPU'; T in [DT_COMPLEX64]
device='CPU'; T in [DT_COMPLEX128]
device='CPU'; T in [DT_BOOL]
[[Node: Subtract = Snapshot[T=DT_FLOAT, _device="/job:localhost/replica:0/task:0/device:GPU:0"](ResizeBilinear)]]
我也遇到了同样的问题。 任何提示??
答案 1 :(得分:0)
我使用tensorflow r1.7分支来构建我的库来解决这个问题。希望这对任何人都有帮助。