为了账号安全,请及时绑定邮箱和手机立即绑定

我在加载的张量流模型上进行预测时遇到了令人困惑的cuDNN错误

我在加载的张量流模型上进行预测时遇到了令人困惑的cuDNN错误

尚方宝剑之说 2022-08-02 16:21:46
我创建了一个 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_functioncuDNN怎么可能在这个笔记本中不能正常工作,但在另一个笔记本中很好。如果它不起作用,我怎么能构建模型呢?
查看完整描述

1 回答

?
慕雪6442864

TA贡献1812条经验 获得超5个赞

默认情况下,TensorFlow映射了所有GPU(源)的几乎所有GPU内存,因此可能与此相关。


您可以尝试重置笔记本 A 的内核以在运行笔记本 B 之前释放该内存。


或者,您可以设置该选项以仅在需要时分配更多 GPU 内存:allow_growth


tf_config=tf.ConfigProto()

tf_config.gpu_options.allow_growth=True

sess = tf.Session(config=tf_config)

K.set_session(sess)

当然,这取决于您同时运行的会话数量,总GPU内存,模型大小等。


要检查当前正在使用的内存量,可以使用 。我不是Windows用户,但也许这个答案可以帮助你(我如何在Windows上运行nvidia-smi?)。nvidia-smi


查看完整回答
反对 回复 2022-08-02
  • 1 回答
  • 0 关注
  • 99 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信