我知道Keras的默认后端已经从Theano切换到了TensorFlow,但是有了Theano的开发版本,我可以在GPU上使用OpenCL进行训练(我有一张AMD卡)。
但是,当我导入Keras时,它只使用TensorFlow后端,即使在更改了Keras配置文件中的值之后。
~ $ cat $HOME/.keras/keras.json
{"epsilon": 1e-07, "floatx": "float32", "backend": "theano"}
~ $ python -c 'import keras'
Using TensorFlow backend.
~ $ KERAS_BACKEND=theano python -c 'import keras'
Using Theano backend.
Mapped name None to device opencl0:2: AMD Radeon R9 M370X Compute Engine此外,我知道Keras在导入后读取配置文件,因为如果我为"backend"填充了一些非有效值,就会得到一个错误:
~ $ cat $HOME/.keras/keras.json
{"epsilon": 1e-07, "floatx": "float32", "backend": "foobar"}
~ $ python -c 'import keras'
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/Users/antalek/anaconda/envs/ENVPy3/lib/python3.5/site-packages/keras/__init__.py", line 3, in <module>
from . import activations
File "/Users/antalek/anaconda/envs/ENVPy3/lib/python3.5/site-packages/keras/activations.py", line 3, in <module>
from . import backend as K
File "/Users/antalek/anaconda/envs/ENVPy3/lib/python3.5/site-packages/keras/backend/__init__.py", line 34, in <module>
assert _backend in {'theano', 'tensorflow'}
AssertionError系统详细信息:
我希望Keras使用Theano作为默认后端。有人知道怎么把它设置成这样吗?
编辑:
要回答@Marcin Możejko的问题:
~ $ which python
/Users/<my name>/anaconda/envs/ENVPy3/bin/python这也是安装Keras的conda虚拟环境。
发布于 2017-04-01 09:20:05
同样的问题,系统设置:
更改后端的唯一方法是使用KERAS_BACKEND环境变量。Json字段被忽略。
编辑:问题是Anaconda,打开anaconda3/envs/ENV-NAME/etc/conda/activate.d/keras_activate.sh
#!/bin/bash
if [ "$(uname)" == "Darwin" ]
then
# for Mac OSX
export KERAS_BACKEND=tensorflow
elif [ "$(uname)" == "Linux" ]
then
# for Linux
export KERAS_BACKEND=theano
fi您将看到tensorflow被强制用于MAC,Theano用于Linux。
我不知道是谁创建了这个文件,keras还是anaconda,以及这种强迫背后的原因。我只是无视它,按我自己的方式行事:)
https://stackoverflow.com/questions/43054687
复制相似问题