Как заставить Keras использовать бэкэнд Tensorflow в Anaconda?

у меня есть установка tensorflow-gpu в моей среде Anaconda. Они оба хорошо работают.

теперь я пытаюсь установить Keras с бэкэндом Tensorflow. Согласно - инструкции Я просто запустите:

pip install keras

но он не устанавливает keras, тогда я попытался:

conda install -c conda-forge keras=2.0.2

тогда я теперь могу импортировать keras в python. Но проблема в том, что он всегда использует бэкэнд Theano. Я пытаюсь изменить это, но не знаю, как это сделать.

I также попробовал отредактировать файл ~/.керрас, но на самом деле бэкэнд по умолчанию уже был tensorflow.

пожалуйста, помогите.. Большое вам спасибо!

9 ответов


это происходит потому, что пакет keras conda-forge помещает файл в ${CONDA_PREFIX}/etc/conda/activate.d/keras_activate.sh, который устанавливает переменную окружения KERAS_BACKEND

(root) [root@starlabs ~]# cat $CONDA_PREFIX/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

как вы можете видеть из файла, в Linux он устанавливает значение "theano" и согласно официальным документам:

переменная окружения KERAS_BACKEND переопределит то, что определено в файле конфигурации

чтобы обойти это, вы можете либо отредактировать этот файл и изменить "theano" на "tensorflow" (который, вероятно, будет перезаписан при переустановке или при изменении сред) или сделайте следующее:

export KERAS_BACKEND=tensorflow
python /path/to/python/program.py

была такая же проблема после установки keras из conda-forge. keras.json уже был tensorflow:

{
    "floatx": "float32",
    "epsilon": 1e-07,
    "backend": "tensorflow",
    "image_data_format": "channels_last"
}

но activate tensorflow_keras (если "tensorflow_keras " - это имя среды), изменяет бэкэнд на theano:

C:\Users\User1>activate tensorflow_keras

(tensorflow_keras) C:\Program Files\Anaconda3\envs\tensorflow_keras\etc\conda\ac
tivate.d>set "KERAS_BACKEND=theano"

после @FvD выше, я отредактировал этот файл:

C:\Program Files\Anaconda3\envs\tensorflow_keras\etc\conda\activate.d

и изменил Теано на tensorflow:

set "KERAS_BACKEND=tensorflow"

при многопользовательской установке в Windows 10 файл активации среды Anaconda:

C:\Users\<user name>\AppData\Local\Continuum\Anaconda3\envs\<environment name>\etc\conda\activate.d\keras_activate.bat

просто изменить <user name> и <environment name> в матче.


была аналогичная проблема, кажется, что если ~/.keras/keras.json недоступен, keras использует /tmp/.keras/keras.json


для пользователей Windows, использующих Anaconda. Откройте приглашение Anaconda и введите:

set "KERAS_BACKEND=tensorflow"

это должно сделать трюк. Если вы используете Jupyter Notebook, вам нужно будет перезапустить его.


хотя это кажется немного работы , если вы используете conda envs столько, сколько я, где у меня есть среды для Tensorflow и Theano отдельно. Это уменьшит множество повторных настроек и сбросов переменных среды каждый раз, когда он активируется.

https://conda.io/docs/user-guide/tasks/manage-environments.html

согласно странице conda envs.

1) найдите каталог для среды conda в окне терминала, например as

/home/jsmith/anaconda3/envs/analytics.

2) введите этот каталог и создайте эти подкаталоги и файлы:

cd /home/jsmith/anaconda3/envs/analytics
mkdir -p ./etc/conda/activate.d
mkdir -p ./etc/conda/deactivate.d
touch ./etc/conda/activate.d/env_vars.sh
touch ./etc/conda/deactivate.d/env_vars.sh

3) правка ./etc/conda/activate.d/env_vars.sh следующим образом:

echo 'export KERAS_BACKEND=theano' > ./etc/conda/activate.d/env_vars.sh

4) редактировать ./etc/conda/deactivate.d/env_vars.sh следующим образом:

echo 'unset KERAS_BACKEND' > ./etc/conda/deactivate.d/env_vars.sh

в системе Mac перейдите к терминалу и перейдите к профилю пользователя и проверьте, есть ли .керрас папка существует или нет.

ls -a
cd .keras
vim keras.json # edit the keras.json file in editor and change the backend to tensorflow

это должно выглядеть так.

"floatx": "float32",
"epsilon": 1e-07,
"backend": "tensorflow",
"image_data_format": "channels_last" 

закройте редактор клавишей побег кнопка затем следует : wq Это должно сработать

Теперь, если вы используете любую среду conda, выполните следующие действия 1. сначала найдите переменную среды, перейдя к папка анаконда ОКР

Anaconda3/envs/"name_of_your_conda_environment"/etc/conda / активировать.d

Он содержит файл keras_activate.летучая мышь, которая Феано как backend по умолчанию. Измените значение на tensorflow и сохраните файл. KERAS_BACKEND=tensorflow

деактивировать среду и активировать ее снова я.е

source deactivate name_of_your_conda_environment
source activate name_of_your_conda_environment

надеюсь, что это решит все керрас бэкэнд вопросы tensorflow.


есть файл keras_activate.sh в путь "/anaconda2/envs/py2/etc/conda/activate.d".

затем отредактировав его, удалите содержимое:

"if [ "$(uname)" == "Darwin" ]

затем

    # for Mac OSX
    export KERAS_BACKEND=tensorflow
elif [ "$(uname)" == "Linux" ]

затем

    # for Linux
    export KERAS_BACKEND=theano
fi". 

после этого добавьте строку :

set "KERAS_BACKEND=tensorflow"

прежде всего, вы должны установить одну из следующих версий python

затем установите tensor flow в качестве движка бэкэнда, используя следующую команду:

pip3 install --upgrade tensorflow

затем установите keras, используя следующую команду:

pip3 install keras

больше информации здесь: http://royalcrowntutorials.blogspot.com/2018/02/installing-tensor-flow-start-terminal.html