J'ai installé tensorflow-gpu dans mon environnement Anaconda. Ils fonctionnent tous les deux bien.
Maintenant, j'essaie d'installer Keras avec le backend Tensorflow. Selon le instruction je lance juste:
pip install keras
Mais il n'installe pas de keras, alors j'ai essayé:
conda install -c conda-forge keras=2.0.2
Ensuite, je suis maintenant capable d'importer des keras en python. Mais le problème est qu'il utilise toujours le backend Theano. J'essaie de changer cela, mais je ne sais pas comment le faire.
J'ai également essayé d'éditer le fichier ~/.keras , mais en fait le backend par défaut était déjà tensorflow.
S'il vous plaît aider .. Merci beaucoup!
Cela se produit car le package keras conda-forge place un fichier dans ${CONDA_PREFIX}/etc/conda/activate.d/keras_activate.sh
, qui définit la variable d'environnement 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
Comme vous pouvez le voir dans le fichier, sous Linux, il définit la valeur sur 'theano' et selon les documents officiels:
la variable d'environnement KERAS_BACKEND remplacera ce qui est défini dans votre fichier de configuration
Pour contourner ce problème, vous pouvez soit modifier ce fichier et remplacer "theano" par "tensorflow" (qui serait probablement écrasé lors de la réinstallation ou de l'évolution des environnements) ou, procédez comme suit:
export KERAS_BACKEND=tensorflow
python /path/to/python/program.py
Eu le même problème après l'installation des keras de conda-forge. keras.json
avait déjà tensorflow:
{
"floatx": "float32",
"epsilon": 1e-07,
"backend": "tensorflow",
"image_data_format": "channels_last"
}
mais activate tensorflow_keras
(où "tensorflow_keras
"est le nom de l'environnement), change le backend en 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"
Suite à @FvD ci-dessus, j'ai édité ce fichier:
C:\Program Files\Anaconda3\envs\tensorflow_keras\etc\conda\activate.d
et changé le ano en tensorflow:
set "KERAS_BACKEND=tensorflow"
Sur une installation multi-utilisateur sur Windows 10, le fichier d'activation de l'environnement Anaconda est:
C:\Users\<user name>\AppData\Local\Continuum\Anaconda3\envs\<environment name>\etc\conda\activate.d\keras_activate.bat
Changez simplement <user name>
et <environment name>
correspondre.
Pour les utilisateurs de Windows utilisant Anaconda. Ouvrez l'invite Anaconda et saisissez:
set "KERAS_BACKEND=tensorflow"
Cela devrait faire l'affaire. Si vous utilisez Jupyter Notebook, vous devrez le redémarrer.
Eu un problème similaire, semble que si ~/.keras/keras.json
n'est pas accessible, keras utilise /tmp/.keras/keras.json
Bien que cela semble un peu de travail, si vous utilisez autant de conda envs que moi, où j'ai des environnements pour Tensorflow et Theano séparément. Cela réduira de nombreux réglages et désinstallations répétés des variables d'environnement chaque fois qu'il est activé.
https://conda.io/docs/user-guide/tasks/manage-environments.html
Selon la page de conda envs.
1) Localisez le répertoire de l'environnement conda dans votre fenêtre Terminal, tel que
/home/jsmith/anaconda3/envs/analytics.
2) Entrez dans ce répertoire et créez ces sous-répertoires et fichiers:
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) Modifiez ./etc/conda/activate.d/env_vars.sh comme suit:
echo 'export KERAS_BACKEND=theano' > ./etc/conda/activate.d/env_vars.sh
4) Modifiez ./etc/conda/deactivate.d/env_vars.sh comme suit:
echo 'unset KERAS_BACKEND' > ./etc/conda/deactivate.d/env_vars.sh
Dans le système Mac, accédez au terminal et accédez au profil utilisateur et vérifiez si le dossier . Keras existe ou non.
ls -a
cd .keras
vim keras.json # edit the keras.json file in editor and change the backend to tensorflow
Cela devrait ressembler à ceci.
"floatx": "float32",
"epsilon": 1e-07,
"backend": "tensorflow",
"image_data_format": "channels_last"
Fermez l'éditeur en appuyant sur le bouton escape puis suivi par : wq Cela devrait fonctionner
Maintenant, si vous utilisez un environnement conda, suivez les étapes mentionnées ci-dessous 1. localisez d'abord la variable d'environnement en accédant au dossier anaconda env
Anaconda3/envs/"nom_de_votre_environnement_conda" /etc/conda/activate.d
Il contient le fichier keras_activate.bat qui a theano as backend par défaut. Modifiez la valeur en tensorflow et enregistrez le fichier. KERAS_BACKEND = tensorflow
désactiver l'environnement et le réactiver, c'est-à-dire
source deactivate name_of_your_conda_environment
source activate name_of_your_conda_environment
J'espère que cela résoudra tous les problèmes de tensorflow du backend des keras.