tensorflow - 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)
当我在训练后使用确切的代码进行测试时(模型可用未加载),它工作正常。
解决方案
看起来你的 CUDA 坏了。通过禁用 GPU 进行测试export CUDA_VISIBLE_DEVICES=-1
。
推荐阅读
- rust - 为什么 Rust 中的默认行为是执行赋值移动,而不是仅仅创建另一个对值的“引用”?
- c++ - c++中的使用函数是什么?
- azure-iot-central - IoT Central - 状态值错误:已存在具有相同 ID 的另一个实例
- javascript - 为容器中的所有链接设置一个基本目标
- tensorflow - 如何将 TensorFlow keras 模型保存为 .js 文件
- jquery - 使用实体框架在 ASP.NET MVC 中进行 Ajax 搜索和分页
- android - Android静默更新apk然后重启应用
- jquery - 专注于使用 jquery 的文本框而不触发 onblur
- devops - 对 BFSI 使用无服务器方法有多安全
- entity-framework-migrations - EF Core 重复创建相同的迁移,更改标识列并且什么都不更改