首页 > 解决方案 > Keras 加载的模型不工作

问题描述

我使用 Keras 训练了一个模型,使用 保存它model.save(),并且从Keras 文档中我不需要保存任何其他内容或在加载后编译模型。

当我加载它以在不同的图像上对其进行测试时,它会出现此错误:

totalMemory: 5.93GiB freeMemory: 5.41GiB 2018-05-17 10:10:53.265572: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1120] 创建 TensorFlow 设备 (/device:GPU:0) -> (device: 0,名称:采用 Max-Q 设计的 GeForce GTX 1060,pci 总线 ID:0000:01:00.0,计算能力:6.1)

2018-05-17 10:10:55.939415:E tensorflow/stream_executor/cuda/cuda_dnn.cc:385] 无法创建 cudnn 句柄:CUDNN_STATUS_INTERNAL_ERROR

2018-05-17 10:10:55.939452:E tensorflow/stream_executor/cuda/cuda_dnn.cc:352] 无法破坏 cudnn 句柄:CUDNN_STATUS_BAD_PARAM

2018-05-17 10:10:55.939459: F tensorflow/core/kernels/conv_ops.cc:667] 检查失败:stream->parent()->GetConvolveAlgorithms(conv_parameters.ShouldIncludeWinogradNonfusedAlgo(), &algorithms)

中止(核心转储)

这是我正在使用的代码:

num_classes = 17
model = load_model('model.h5')


img1 = cv2.resize(cv2.cvtColor(cv2.imread("s_0.jpg"), cv2.COLOR_BGR2RGB), (24,24))
img2 = cv2.resize(cv2.cvtColor(cv2.imread("s_f.jpg"), cv2.COLOR_BGR2RGB), (24,24))
img3 = cv2.resize(cv2.cvtColor(cv2.imread("s_2.jpg"), cv2.COLOR_BGR2RGB), (24,24))

X_test = np.array([img1,img2,img3])
Y_test = to_categorical(np.array([0,12,2]), num_classes)

Y_predict = model.predict(X_test)
print np.argmax(Y_predict,axis = 1)

当我在训练后使用确切的代码进行测试时(模型可用未加载),它工作正常。

标签: tensorflowmodelkerasload

解决方案


看起来你的 CUDA 坏了。通过禁用 GPU 进行测试export CUDA_VISIBLE_DEVICES=-1


推荐阅读