如何将Deepface模型权重默认路径从主目录改为项目目录?
自定义Deepface模型权重存储目录的实现方案
方法一:通过环境变量指定(最通用)
Deepface支持通过DEEPFACE_HOME环境变量修改默认权重存储路径,直接在代码开头设置即可:
import os # 设为项目目录下的自定义文件夹,比如项目根目录的deepface_weights os.environ["DEEPFACE_HOME"] = "./deepface_weights" # 之后正常导入使用Deepface from deepface import DeepFace
首次运行时权重会自动下载到你指定的项目目录,后续把这个文件夹和项目代码一起打包,换设备运行就不用重复下载了。
方法二:手动迁移已下载的权重(解决你手动迁移失败的问题)
如果已经在默认目录下下载过权重,按以下步骤操作:
- 找到默认权重目录:Linux/macOS是
~/.deepface,Windows是C:\Users\<你的用户名>\.deepface - 把整个
.deepface文件夹复制到项目目录,比如重命名为deepface_local_weights - 在代码里通过环境变量指定这个路径(和方法一一样),部分模型也支持直接在调用时指定权重文件路径:
from deepface import DeepFace # 示例:用Facenet时指定本地权重文件 result = DeepFace.verify( img1_path="img1.jpg", img2_path="img2.jpg", model_name="Facenet", model_path="./deepface_local_weights/weights/facenet_weights.h5" )
注意:不是所有模型都支持单独指定model_path,优先用环境变量的方式更稳妥。
更优方案:把权重纳入项目资产
将项目目录下的权重文件夹加入项目打包范围(比如Git中不要加到.gitignore),提前下载好所有需要的模型权重。这样跨设备部署或团队协作时,拉取项目就能直接用,无需额外配置。
内容的提问来源于stack exchange,提问作者Yashaswat
相关产品推荐
相关产品推荐

