如何在不同的conda
环境中设置不同的keras后端?因为在特定环境中,如果我将后端更改为tensorflow
中的keras.json
,那么在另一个python环境中,keras后端也将tensorflow
。我的文档中只有一个keras.json
。
答案 0 :(得分:2)
用于在Anaconda的不同环境中使用不同的keras后端-'env1'和'env2'
<div>{{ myFunc(myObject) }}</div>
<!-- it is even worse if the above template is encapsulated by a *ngFor -->
...
class SomeComponent {
myFunc(var someVar) {
print('Hello!'); // Hello is being repeatadly print
}
}
答案 1 :(得分:2)
这是我出于个人目的所做的事情,与Kedar的answer的逻辑相同,但是在Windows安装(和Keras版本)上,其位置和文件名可能有所不同:>
1 / 在目标Anaconda环境的文件夹中设置特定的keras.json 文件。修改“后端”值。
2 / 然后强制'load_backend.py'(特定于您的anaconda环境)加载该特定的keras.json。 另外,将“默认后端”强制为该文件中所需的默认后端。
================================================ ========
详细信息:
1.1 打开您想要特定后端的Anaconda环境文件夹。就我而言,它是C:\ ProgramData \ Anaconda3 \ envs \ [MyAnacondaEnvironment] \
1.2 在这里创建一个文件夹.keras,然后在该文件夹中复制或创建一个文件keras.json(我从C:\ Users \ [MyWindowsUserProfile] \。keras \ keras.json复制了我的文件夹)。
现在在该文件中,更改所需的后端,我为某些测试选择了“ cntk”。现在,文件内容应如下所示:
{
"floatx": "float32",
"epsilon": 1e-07,
"backend": "cntk",
"image_data_format": "channels_last"
}
文件的名称和位置类似于C:\ ProgramData \ Anaconda3 \ envs \ [MyAnacondaEnvironment] \。keras \ keras.json
2.1 现在打开特定于您要定制的环境的文件'load_backend.py',在这里(以我为例)C:\ ProgramData \ Anaconda3 \ envs \ [MyAnacondaEnvironment] \ Lib \ site-packages \ keras \ backend
2.2 在我的Keras版本(2.3.1)的第17到25行中,该文件通常会在环境变量或当前Windows的帮助下从其定位的配置文件中加载后端例如用户。因此,当前您的后端是跨环境的。
通过强制'load_backend.py'查找要直接在您的环境特定的配置文件(在步骤1.2中创建的配置文件)中加载哪个后端来摆脱这种情况
例如,该“ load_backend.py”文件的第26行(在我的情况下,第26行,无论如何尝试自动加载配置文件之后)都会添加该行(并针对您自己的位置进行自定义):>
_keras_dir ='C:\ ProgramData \ Anaconda3 \ envs \ [MyAnacondaEnvironment] \。keras'## Force脚本从特定文件获取配置
3.1 然后,将默认后端_BACKEND ='tensorflow'替换为_BACKEND ='cntk'(在我的情况下,第28行,无论是在强制使用_keras_dir路径之后)。
您应该完成
答案 2 :(得分:0)
一种解决方案是为不同的环境创建不同的用户,并为两者添加不同的keras.json
文件:
$HOME/.keras/keras.json
这样您就可以独立更改任何keras参数。
如果您只需要更改后端,则更容易使用KERAS_BACKEND
env变量。以下命令将使用tensorflow
,而不管keras.json
中的内容:
$ KERAS_BACKEND=tensorflow python -c "from keras import backend"
Using TensorFlow backend.
所以你可以启动一个新的shell终端,在其中运行export KERAS_BACKEND=tensorflow
,所有后续命令都将使用tensorflow
。你可以进一步设置每个conda env激活的变量,如this question中所述(如果你需要它永久):
$PREFIX/etc/conda/activate.d