如何在虚拟环境下更改Keras预训练模型的默认下载目录?
其实这个修改和virtualenv关联不大哦,Keras的预训练模型下载路径是由它自身的配置或者环境变量来控制的,虚拟环境只是帮你隔离了Python包环境,不会直接干涉Keras的默认存储路径。不过咱们可以轻松设置成你想要的路径,给你两种常用方法:
方法1:通过环境变量设置(灵活适配虚拟环境)
这种方法可以针对单个虚拟环境单独配置,不会影响全局:
- 临时生效(仅当前终端会话):先激活你的虚拟环境,然后执行这条命令:
之后Keras就会把预训练模型下载到这个目录下的export KERAS_HOME="/your/custom/keras/directory"models子文件夹里。 - 永久生效(每次激活虚拟环境自动生效):打开虚拟环境目录下的
bin/activate文件,在文件末尾添加上面的export命令,保存后,每次激活这个虚拟环境时都会自动应用这个路径设置。 - 全局生效(所有Python环境通用):如果想让所有环境都用同一个自定义路径,可以把
export命令添加到你的~/.bashrc(Linux/macOS)或者~/.bash_profile文件中。
方法2:修改Keras配置文件(全局生效)
通过配置文件可以一次性固定Keras的存储路径:
- 首先找到Keras的默认配置文件:一般在
$HOME/.keras/keras.json,如果没有的话直接创建这个文件即可。 - 在配置文件中添加或修改
"keras_home"字段,示例如下:{ "floatx": "float32", "epsilon": 1e-07, "backend": "tensorflow", "image_data_format": "channels_last", "keras_home": "/your/custom/keras/directory" } - 保存文件后,不管你用哪个虚拟环境,Keras都会优先使用这个自定义路径来存储预训练模型。
补充一句:如果你的虚拟环境里安装了独立的Keras,它还是会优先读取用户目录下的.keras配置,除非你用环境变量单独指定了路径,所以如果只想针对当前虚拟环境改路径,方法1里修改activate文件的方式是最适配的。
内容的提问来源于stack exchange,提问作者Sunil
相关产品推荐
相关产品推荐

