Как заставить 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