错误显示
2021-06-15 11:48:41.978235: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'cudart64_110.dll'; dlerror: cudart64_110.dll not found
2021-06-15 11:48:41.978656: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine.
pygame 2.0.1 (SDL 2.0.14, Python 3.9.4)
Hello from the pygame community. https://www.pygame.org/contribute.html
Traceback (most recent call last):
File "C:\Users\washi\Desktop\Driver-drowsiness-detection-CNN-Keras-OpenCV-master\final.py", line 17, in <module>
model = load_model('cnnCat2.h5')
File "D:\Program Files\Python39\lib\site-packages\keras\saving\save.py", line 206, in load_model
return saved_model_load.load(filepath, compile, options)
File "D:\Program Files\Python39\lib\site-packages\keras\saving\saved_model\load.py", line 109, in load
meta_graph_def = loader_impl.parse_saved_model(path).meta_graphs[0]
File "D:\Program Files\Python39\lib\site-packages\tensorflow\python\saved_model\loader_impl.py", line 113, in parse_saved_model
raise IOError(
OSError: SavedModel file does not exist at: cnnCat2.h5\{saved_model.pbtxt|saved_model.pb}
[Finished in 5.2s]
以tensorflow为后端运行final.py脚本,该脚本持续监控用户的眼睛状态并分类人是否昏昏欲睡。 model.py 是用于训练 CNN 分类器模型的脚本。但我收到此类错误,我该怎么办?
错误信息很明确: 你的代码试图加载一个名为 "cnnCat2.h5" 的 SavedModel,但它在这个路径下找不到 SavedModel 文件所需的组件。
让我们分解一下可能的原因以及如何解决这个问题:
1. 模型文件路径错误:
-
确认文件名和路径:
确保 "cnnCat2.h5" 文件确实存在于你的 Sublime Text 项目中,并且路径在
load_model
函数中是正确的。 -
使用绝对路径:
尝试使用文件的绝对路径,以避免任何相对路径问题。例如:
python model = load_model('C:/Users/washi/Desktop/Driver-drowsiness-detection-CNN-Keras-OpenCV-master/cnnCat2.h5')
-
检查项目结构:
根据提供的图片,"cnnCat2.h5" 文件位于项目根目录下。确保你的
final.py
文件能够正确访问这个路径。
2. 模型保存格式错误:
-
SavedModel vs. HDF5:
错误信息表明你的代码期望加载一个 SavedModel 格式的模型,但 "cnnCat2.h5" 扩展名通常表示 HDF5 格式。
-
如果你的模型是 HDF5 格式
, 你应该使用
keras.models.load_model
函数加载它。 - 如果你的模型是 SavedModel 格式 , 确保它包含 "saved_model.pbtxt" 或 "saved_model.pb" 文件,以及 "variables" 文件夹。
-
如果你的模型是 HDF5 格式
, 你应该使用
3. 模型文件损坏:
- 重新训练模型: 如果以上方法都不起作用,可能是模型文件本身已损坏。尝试重新训练模型并保存一个新的模型文件。
其他建议:
-
打印工作目录:
在
final.py
文件开头添加print(os.getcwd())
来打印当前工作目录,以确保你的脚本在正确的目录下运行。 -
清理临时文件:
删除项目中的任何
.pyc
文件以及__pycache__
文件夹,然后重试。
请仔细检查以上几点,并根据你的实际情况进行调整。 如果问题仍然存在,请提供更多信息,例如:
-
model.py
文件中保存模型的代码片段。 - 你使用的 TensorFlow 和 Keras 版本。
这将有助于更准确地诊断问题。
标签:python,tensorflow,keras From: 67981104