解决办法
Python在使用efficientnet_lite中出现OSError: SavedModel file does not exist at:
OSError: SavedModel file does not exist at: C:\Users\Edgar\AppData\Local\Temp\tfhub_modules\a3b91f2744273e376e489b1c60d6bddddebdc084{saved_model.pbtxt|saved_model.pb}
这个错误表明 TensorFlow Hub 试图从临时文件夹加载预训练的 EfficientNet-Lite 模型,但在该文件夹中找不到模型文件。这可能是因为下载失败或者其他原因。尝试以下解决方案:
1 清理临时文件夹:
手动删除 C:\Users\Edgar\AppData\Local\Temp\tfhub_modules 中的文件。然后重新运行代码,让 TensorFlow Hub 重新下载模型。
2 指定缓存目录:
使用 os.environ 设置环境变量 TFHUB_CACHE_DIR,以便 TensorFlow Hub 将模型缓存到指定的目录。在运行代码之前,添加以下行:
import os
os.environ['TFHUB_CACHE_DIR'] = 'path/to/your/cache/directory'
注意:将 path/to/your/cache/directory 替换为你希望存储模型缓存的目录路径。确保该目录是可写的。
3 直接下载模型文件:
如果上述方法都不起作用,可以尝试直接从 TensorFlow Hub 下载模型文件,然后在本地加载。首先,下载 EfficientNet-Lite 的预训练模型文件:
wget https://storage.googleapis.com/tfhub-modules/tensorflow/efficientnet/lite0/feature-vector/2.tar.gz
解压下载的文件:
tar -xzf 2.tar.gz
然后,在 Python 代码中使用 hub.load() 加载本地的模型文件:
import tensorflow_hub as hub
model_path = "path/to/your/local/efficientnet_lite0"
model = hub.KerasLayer(model_path, input_shape=(224, 224, 3))
将 path/to/your/local/efficientnet_lite0 替换为你解压模型文件的目录路径。这将从本地文件系统加载预训练的 EfficientNet-Lite 模型,而不是从 TensorFlow Hub 下载。