我创建了一个 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
添加回答
举报
0/150
提交
取消