【发布时间】:2020-06-03 02:07:23
【问题描述】:
我创建了一个 ResNet 模型并保存了它,但是在加载到不同的笔记本后尝试运行预测时,我得到了一堆错误。
假设我有笔记本 A 和 B。在笔记本 A 中,我创建了一个名为 resnet_model 的模型。我可以进行预测,一切都很好。我是这样保存模型的
resnet_model.save(os.path.join(DATAPATH,"res1_network.h5"))
然后我将模型加载到笔记本 A 中
loaded_model = load_model(os.path.join(DATAPATH,"res1_network.h5"))
我对其进行预测,结果与以前完全相同。现在,如果我去笔记本 B 并加载模型并尝试像这样进行预测
res1_model = load_model(os.path.join(DATAPATH,"res1_network.h5"))
res1_model.predict(pred_list, verbose=1)
我收到一系列错误
UnknownError: Failed to get convolution algorithm. This is probably because cuDNN failed to initialize, so try looking to see if a warning log message was printed above.
[[node model_2/conv2d/Conv2D (defined at C:\Users\Dave\Miniconda3\envs\tensorflow\lib\site-packages\tensorflow_core\python\framework\ops.py:1751) ]] [Op:__inference_distributed_function_23018]
Function call stack:
distributed_function
cuDNN 怎么会在这个笔记本上不能正常工作,但在另一个笔记本上却没问题。如果它不起作用,我怎么能建立模型?
【问题讨论】:
-
您在运行 B 之前是否重置或关闭了内核 A?可能和GPU内存有关。
-
不,我没有,我应该有吗?
-
默认情况下,TensorFlow 映射几乎所有 GPU (tensorflow.org/guide/gpu#limiting_gpu_memory_growth) 的所有 GPU 内存,因此可能与此有关。
-
我想就是这样。我一直在另一个笔记本上训练一些东西。训练已经完成,但我认为 GPU 正在坚持一些事情。我必须关闭内核
标签: python tensorflow