【发布时间】:2018-10-27 10:30:57
【问题描述】:
我用 Keras 训练了一个模型,使用 model.save() 保存它,从 Keras Documentation 我不需要保存任何其他东西或在加载后编译模型。
当我加载它以在不同的图像上对其进行测试时,它会出现此错误:
总内存:5.93GiB 免费内存:5.41GiB 2018-05-17 10:10:53.265572:我 tensorflow/core/common_runtime/gpu/gpu_device.cc:1120] 创建 TensorFlow 设备 (/device:GPU:0) -> (设备: 0, 名称: GeForce GTX 1060 采用 Max-Q 设计,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] 检查失败: 流->父()->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)
当我在训练后使用确切的代码进行测试时(模型可用未加载),它工作正常。
【问题讨论】:
-
看起来你的 CUDA 坏了。您是否尝试过简单的重启?如果没有,您可以通过禁用 GPU 来测试是否是 CUDA 损坏。要做到这一点,请运行
export CUDA_VISIBLE_DEVICES=-1,假设您使用的是 Linux 发行版。 -
你是对的,当我禁用 GPU @marcopah 时它起作用了
标签: tensorflow model keras load