2017-01-30 8 views
1

Я изменил файл JSON для keras быть следующее:Keras бэкенд JSON определяется как tensorflow, но Keras до сих пор не может найти tensorflow

{ 
    "image_dim_ordering": "tf", 
    "epsilon": 1e-07, 
    "floatx": "float32", 
    "backend": "tensorflow" 
} 

Но когда я запускаю следующий простой Keras учебник для нейронная сеть:

from keras.models import Sequential 
from keras.layers import Dense, Dropout, Activation 
from keras.optimizers import SGD 

model = Sequential() 
# Dense(64) is a fully-connected layer with 64 hidden units. 
# in the first layer, you must specify the expected input data shape: 
# here, 20-dimensional vectors. 
model.add(Dense(64, input_dim=20, init='uniform')) 
model.add(Activation('tanh')) 
model.add(Dropout(0.5)) 
model.add(Dense(64, init='uniform')) 
model.add(Activation('tanh')) 
model.add(Dropout(0.5)) 
model.add(Dense(10, init='uniform')) 
model.add(Activation('softmax')) 

sgd = SGD(lr=0.1, decay=1e-6, momentum=0.9, nesterov=True) 
model.compile(loss='categorical_crossentropy', 
       optimizer=sgd, 
       metrics=['accuracy']) 

model.fit(X_train, y_train, 
      nb_epoch=20, 
      batch_size=16) 
score = model.evaluate(X_test, y_test, batch_size=16) 

Как взяты из: https://keras.io/getting-started/sequential-model-guide/

Я все еще получаю следующее сообщение об ошибке:

Using TensorFlow backend. 
Traceback (most recent call last): 
    File "./keras_test", line 3, in <module> 
    from keras.models import Sequential 
    File "/usr/local/lib/python2.7/dist-packages/keras/__init__.py", line 2, in <module> 
    from . import backend 
    File "/usr/local/lib/python2.7/dist-packages/keras/backend/__init__.py", line 67, in <module> 
    from .tensorflow_backend import * 
    File "/usr/local/lib/python2.7/dist-packages/keras/backend/tensorflow_backend.py", line 1, in <module> 
    import tensorflow as tf 
ImportError: No module named tensorflow 

У меня нет идей относительно того, что может быть проблемой, поэтому некоторая помощь будет высоко оценена.

Первоначально я думал, что это может быть проблема с версией python. Поскольку я немного новичок в кодировании python и Linux, я устанавливал/обновлял все свои версии python, даже не думая, и я только надеюсь, что Keras будет использовать ту же версию python, что и мой бэкэнд Tensorflow (который должен быть использованным anaconda3). Оглядываясь назад, я действительно должен использовать virtualenv, но я не уверен, что это моя проблема или нет (просто пытаюсь дать как можно больше информации).

Я установил Keras с помощью:

sudo pip install keras 

Если я запустить его снова, я получаю следующий результат:

Requirement already satisfied (use --upgrade to upgrade): keras in /usr/local/lib/python2.7/dist-packages 
Requirement already satisfied (use --upgrade to upgrade): theano in /usr/local/lib/python2.7/dist-packages (from keras) 
Requirement already satisfied (use --upgrade to upgrade): pyyaml in /usr/local/lib/python2.7/dist-packages (from keras) 
Requirement already satisfied (use --upgrade to upgrade): six in /usr/local/lib/python2.7/dist-packages (from keras) 
Requirement already satisfied (use --upgrade to upgrade): numpy>=1.7.1 in /usr/local/lib/python2.7/dist-packages (from theano->keras) 
Requirement already satisfied (use --upgrade to upgrade): scipy>=0.11 in /usr/local/lib/python2.7/dist-packages (from theano->keras) 
You are using pip version 8.1.2, however version 9.0.1 is available. 
You should consider upgrading via the 'pip install --upgrade pip' command. 

Кроме того, я 100% уверен, что моя установка Tensorflow работает, как я работать (и закодированы) некоторые примеры GPU-Cuda для этого.

Спасибо!

+0

бежишь keras из среды Конда? что происходит при запуске python, а затем «import tensorflow»? – gidim

+0

Когда я запускаю python и использую 'import tensorflow', я не получаю сообщений об ошибках. Все работает отлично. Я не работаю из среды conda, все на моем основном компьютере/системе.Это, как говорится, когда я делал все внутри виртуальных вещей, казалось, работал нормально (не то, что это помогает решить мою проблему, размещенную здесь), но я могу по крайней мере начать работать с keras. :/ – pche8701

ответ

1

Я думаю, что вы забыли самую очевидную вещь, TensorFlow не установлен, и это не зависимость Keras. Я рекомендую вам установить TensorFlow с:

pip install --user tensorflow 

Это установит TensorFlow в нашей папке пользователя (~/.local) и не требует привилегий суперпользователя.

+0

Я уверен, что у меня установлен TensorFlow. :/Потому что я установил и фактически использовал tensorflow-gpu на своем компьютере, поэтому я знаю, что он есть и работает – pche8701

+0

@ pche8701 Конечно, но вопрос не содержит никаких доказательств того, что установлен тензор. Пожалуйста, предоставьте некоторые. –

1

Вы можете установить все зависимости для tensorflow вместе с keras следующим образом,

Эта установка предназначена для 14,04 сервера Ubuntu

# Pick up some TF dependencies 
apt-get update && apt-get install -y --no-install-recommends \ 
    build-essential \ 
    curl \ 
    git \ 
    cmake \ 
    libfreetype6-dev \ 
    libpng12-dev \ 
    libzmq3-dev \ 
    pkg-config \ 
    python \ 
    python-dev \ 
    rsync \ 
    software-properties-common \ 
    unzip \ 
    && \ 
apt-get clean && \ 
rm -rf /var/lib/apt/lists/* 

curl -O https://bootstrap.pypa.io/get-pip.py && \ 
python get-pip.py && \ 
rm get-pip.py 

pip --no-cache-dir install --upgrade ipython && \ 
pip --no-cache-dir install \ 
    ipykernel \ 
    jupyter \ 
    matplotlib \ 
    numpy \ 
    scipy \ 
    sklearn \ 
    pandas \ 
    Pillow \ 
    && \ 
python -m ipykernel.kernelspec 

# Install TensorFlow CPU version from central repo 
pip --no-cache-dir install https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-1.0.1-cp27-none-linux_x86_64.whl 

# h5py is optional dependency for keras 
apt-get update && apt-get install -y libhdf5-dev libhdf5-serial-dev 
pip install keras h5py 

Если вы все еще возникают проблемы окружающей среды, я предложил бы использовать этот Dockerfile. Это позволяет нам работать независимо от локального python, который я нашел очень полезным для репликации среды в любой другой системе. Вы также можете найти преобразование Datmo, полезное для облегчения этого.

ОТКАЗ: Я работаю в этой компании под названием Datmo, и мы строим сообщество разработчиков за счет упрощения рабочего процесса машинного обучения