Keras의 backend가 생각대로 되지 않을 때의 메모
이 페이지 정보
(추기) 같은 사건의 기사가 있었으므로 링크 하겠습니다. 중복 스미마센.
이런 상황입니다
(tensorflow_p36)[ec2-user@hostname ~]$ cat .keras/keras.json
{
"backend": "tensorflow"
}
대응 방법
export KERAS_BACKEND=tensorflow
발생 원인과 확인한 과정
우선, jupyter와 자식 프로세스를 확인
(tensorflow_p36)[ec2-user@hostname ~]$ ps -ef |grep python
ec2-user 5978 5954 2 06:56 pts/0 00:00:01 /home/ec2-user/anaconda3/bin/python /home/ec2-user/anaconda3/bin/jupyter-notebook
★ ec2-user 6000 5978 1 06:56 ? 00:00:00 /home/ec2-user/anaconda3/envs/tensorflow_p36/bin/python -m ipykernel -f /home/ec2-user/.local/share/jupyter/~中略~.json
ec2-user 6054 6018 0 06:57 pts/1 00:00:00 grep --color=auto python
[ec2-user@hostname ~]$
해당 프로세스의 환경 변수 확인(범인 발견)
(tensorflow_p36)[ec2-user@hostname ~]$ vi /proc/6000/environ
~~~(色々な環境変数)~ KERAS_BACKEND=theano ~~~~
어디에서 KERAS_BACKEND가 정의 되었습니까?
(tensorflow_p36) [ec2-user@hostname ~]$ python
Python 3.6.3 |Anaconda, Inc.| (default, Nov 20 2017, 20:41:42)
[GCC 7.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import keras
Using Theano backend. ★ここ★
>>>
(tensorflow_p36) [ec2-user@hostname ~]$ bash -x activate tensorflow_p36
+ _CONDA_ROOT=/home/ec2-user/anaconda3
+ _conda_script_is_sourced
~~(中略)~~
++ . /home/ec2-user/anaconda3/envs/tensorflow_p36/etc/conda/activate.d/keras_activate.sh ★犯人★
++++ uname
+++ '[' Linux == Darwin ']'
++++ uname
+++ '[' Linux == Linux ']'
+++ export KERAS_BACKEND=theano ★環境変数★
+++ KERAS_BACKEND=theano
+ _conda_hashr
+ case "$_CONDA_SHELL_FLAVOR" in
+ hash -r
그럼, 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
결국 activate 명령은 theano를 지정했습니다. .
export KERAS_BACKEND=tensorflow
Reference
이 문제에 관하여(Keras의 backend가 생각대로 되지 않을 때의 메모), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/shnchr/items/a9adc4f8faa6776ab8b0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)