Попытка установить keras & tenorflow на инстанс Amazon AWS - PullRequest
3 голосов
/ 21 января 2020

У меня возникают некоторые проблемы при попытке установить керасы и тензор потока в экземпляре Ubuntu EC2.

Я загружаюсь в библиотеку и пытаюсь установить керасы.

library(keras)
library(tensorflow)
install_keras(tensorflow = "gpu")

Получаю следующая ошибка:

Error: could not find a Python environment for /usr/bin/python

Я также выполнил следующее вместе с несколькими другими терминальными командами, чтобы попытаться установить conda и python et c.

sudo apt install git libpython3.7-dev

Я также следил за сайтом keras.io, чтобы попытаться установить его. У меня есть папка на сервере /usr/bin/python3.6:, но при попытке доступа к ней появляется ошибка Directory /usr/bin/python3.6: no such file or directory. У меня есть две учетные записи пользователей в каталоге home на сервере (вместе с двумя папками с одинаковыми именами) ubuntu и myUsername_folder.

В /home/myUsername_folder у меня есть файлы .rstudio , (/home/myUsername_folder/.rstudio) и некоторые наборы данных. В папке home/ubuntu у меня установлен R /home/ubuntu/R/x86_64-pc-linux-gnu-library/3.6. В каталоге / root у меня есть папки, такие как usr, var, lib64, tmp, bin et c.

Как я могу сказать, где R Python находится?

РЕДАКТИРОВАТЬ:

Я перезапустил RStudio и запустил:

> library(keras)
> library(tensorflow)
> install_keras(tensorflow = "gpu")
Using virtual environment '~/.virtualenvs/r-reticulate' ...
/home/myUser/.virtualenvs/r-reticulate/bin/python: No module named pip
Error in strsplit(output, "\\s+")[[1]] : subscript out of bounds
In addition: Warning message:
In system2(python, c("-m", "pip", "--version"), stdout = TRUE) :
  running command ''/home/myUser/.virtualenvs/r-reticulate/bin/python' -m pip --version' had status 1

Пытаясь установить pip, используя:

sudo apt-get install python3-pip

Reading package lists... Done
Building dependency tree
Reading state information... Done
python3-pip is already the newest version (9.0.1-2.3~ubuntu1.18.04.1).
0 upgraded, 0 newly installed, 0 to remove and 39 not upgraded.

Для запуска Anaconda я запустил следующее:

wget https://repo.anaconda.com/archive/Anaconda3-2019.10-Linux-x86_64.sh bash Anaconda3-2019.10- Linux -x86_64. sh

Затем побежал:

> install_keras(method = c("conda"),
+               conda = "auto", version = "default", tensorflow = "gpu")
ERROR: The install method you used for conda--probably either `pip install conda`
or `easy_install conda`--is not compatible with using conda as an application.
If your intention is to install conda as a standalone application, currently
supported install methods include the Anaconda installer and the miniconda
installer.  You can download the miniconda installer from
https://conda.io/miniconda.html.

Error: Error 1 occurred creating conda environment r-reticulate

РЕДАКТИРОВАТЬ: Я пытался:

Wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh bash Miniconda3-новей- Linux -x86_64. sh

Затем в RStudio

> install_keras(method = c("conda"),
+               conda = "/home/myUser/miniconda3/bin/",
+               version = "default", tensorflow = "gpu")
sh: 1: /home/myuser/miniconda3/bin/: Permission denied
Error: Error 126 occurred creating conda environment r-reticulate

я меняю права доступа:

sudo chmod -R 777 /home/myUser/miniconda3/bin/

и получаю ту же ошибку после запуска install_keras(...).

EDIT:

Я работаю в RStudio

tf_config()

Установка TensorFlow не найдена.

Python environments searched for 'tensorflow' package:
 /usr/bin/python3.6
 /usr/bin/python3.6
 /usr/bin/python2.7
 /home/myuser/anaconda3/bin/python3.7
 /usr/bin/python3.6
 /home/myuser/miniconda3/bin/python3.7

Вы можете установить TensorFlow с помощью функции install_tensorflow ().

install_tensorflow()

Ошибка: не удалось найти среду Python для / usr / bin / python

I al так пробовал use_python("/home/myuser/anaconda3/bin/python3.7")

РЕДАКТИРОВАТЬ

Проблемы выше все еще сохраняются, но я могу запустить следующий код R (который "работает"):

nn_dat = iris %>% as_tibble %>%
  mutate(sepal_l_feat = scale(Sepal.Length),
         sepal_w_feat = scale(Sepal.Width),
         petal_l_feat = scale(Petal.Length),
         petal_w_feat = scale(Petal.Width),          
         class_num    = as.numeric(Species) - 1, # factor, so = 0, 1, 2
         class_label  = Species) %>%
  select(contains("feat"), class_num, class_label)
nn_dat %>% head(3)

test_f = 0.20
nn_dat = nn_dat %>%
  mutate(partition = sample(c('train','test'), nrow(.), replace = TRUE, prob = c(1 - test_f, test_f)))

x_train = nn_dat %>% filter(partition == 'train') %>% select(contains("feat")) %>% as.matrix
y_train = nn_dat %>% filter(partition == 'train') %>% pull(class_num) %>% to_categorical(3)
x_test  = nn_dat %>% filter(partition == 'test')  %>% select(contains("feat")) %>% as.matrix
y_test  = nn_dat %>% filter(partition == 'test')  %>% pull(class_num) %>% to_categorical(3)

model = keras_model_sequential()
model %>% 
  layer_dense(units = 4, activation = 'relu', input_shape = 4) %>% 
  layer_dense(units = 3, activation = 'softmax')
model %>% summary

model %>% compile(
  loss      = 'categorical_crossentropy',
  optimizer = optimizer_rmsprop(),
  metrics   = c('accuracy')
)

history = model %>% fit(
  x = x_train, y = y_train,
  epochs           = 200,
  batch_size       = 20,
  validation_split = 0
)
plot(history)

Здесь я получаю это сообщение:

/home/myuser/.local/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:516: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  _np_qint8 = np.dtype([("qint8", np.int8, 1)])
/home/myuser/.local/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:517: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  _np_quint8 = np.dtype([("quint8", np.uint8, 1)])
/home/myuser/.local/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:518: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  _np_qint16 = np.dtype([("qint16", np.int16, 1)])
/home/myuser/.local/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:519: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  _np_quint16 = np.dtype([("quint16", np.uint16, 1)])
/home/myuser/.local/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:520: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  _np_qint32 = np.dtype([("qint32", np.int32, 1)])
/home/myuser/.local/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:525: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  np_resource = np.dtype([("resource", np.ubyte, 1)])
/home/myuser/.local/lib/python3.6/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:541: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  _np_qint8 = np.dtype([("qint8", np.int8, 1)])
/home/myuser/.local/lib/python3.6/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:542: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  _np_quint8 = np.dtype([("quint8", np.uint8, 1)])
/home/myuser/.local/lib/python3.6/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:543: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  _np_qint16 = np.dtype([("qint16", np.int16, 1)])
/home/myuser/.local/lib/python3.6/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:544: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  _np_quint16 = np.dtype([("quint16", np.uint16, 1)])
/home/myuser/.local/lib/python3.6/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:545: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  _np_qint32 = np.dtype([("qint32", np.int32, 1)])
/home/myuser/.local/lib/python3.6/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:550: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  np_resource = np.dtype([("resource", np.ubyte, 1)])
WARNING:tensorflow:
The TensorFlow contrib module will not be included in TensorFlow 2.0.
For more information, please see:
  * https://github.com/tensorflow/community/blob/master/rfcs/20180907-contrib-sunset.md
  * https://github.com/tensorflow/addons
  * https://github.com/tensorflow/io (for I/O related ops)
If you depend on functionality not listed there, please file an issue.

2020-01-21 21:49:45.344207: I tensorflow/core/platform/cpu_feature_guard.cc:142] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
2020-01-21 21:49:45.384211: I tensorflow/core/platform/profile_utils/cpu_utils.cc:94] CPU Frequency: 2400050000 Hz
2020-01-21 21:49:45.384567: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x55fc4e3c43b0 executing computations on platform Host. Devices:
2020-01-21 21:49:45.384598: I tensorflow/compiler/xla/service/service.cc:175]   StreamExecutor device (0): <undefined>, <undefined>
2020-01-21 21:49:45.448620: W tensorflow/compiler/jit/mark_for_compilation_pass.cc:1412] (One-time warning): Not using XLA:CPU for cluster because envvar TF_XLA_FLAGS=--tf_xla_cpu_global_jit was not set.  If you want XLA:CPU, either set that envvar, or use experimental_jit_scope to enable XLA:CPU.  To confirm that XLA is active, pass --vmodule=xla_compilation_cache=1 (as a proper command-line flag, not via TF_XLA_FLAGS) or set the envvar XLA_FLAGS=--xla_hlo_profile.

Затем выполняется:

perf = model %>% evaluate(x_test, y_test)
print(perf)

$loss
[1] 0.2995828

$acc
[1] 0.84375

Так что я могу использовать поток keras & tensor, но я получаю сообщение об ошибке все так же, как указано выше.

1 Ответ

2 голосов
/ 22 января 2020

Ну, я раньше не работал с R, однако у меня были похожие проблемы с окружением, когда он использовал такие библиотеки, как Tensorflow. У меня была такая же проблема, когда я изучал Tensorflow и Keras для глубокого обучения. В моем случае я выяснил, что проблема с дырами связана с самой библиотекой Tensorflow. Я использую windows, но это может работать и на linux, поэтому я сделал следующее:

  1. Unistalled каждые Conda, Python и R (включая дополнительные библиотеки, такие как tenorflow) с вашего компьютера.
  2. Я скачал последнюю версию "ANACONDA", но скачал только ANACONDA, больше ничего. На самом деле это все, что вам нужно, чтобы избежать ошибок.
  3. Продолжите установку, и у вас будет Anaconda Navigator. Это включает в себя приложение и python по умолчанию (внутри навигатора anaconda), такие как Jupyter, Spyder и R.
  4. Go в разделе окружения, и создание выделенного окружения, в котором вы познакомитесь с библиотекой Tensorflow. Вы можете ввести имя в навигаторе внутри навигатора Anaconda, чтобы найти библиотеки, к которым вы обращаетесь.
  5. Убедитесь, что вы установили нужные библиотеки дырок в новой только что созданной среде.
  6. Go вернуться в домашний раздел и, убедившись, что вы выбрали «новую созданную среду», установите нужные вам приложения, которые могут быть у вас ниже. Среди них есть и R.

Это должно сработать, и я надеюсь, что это поможет вам. Этот способ более четкий и понятный, чем традиционный процесс установки пипса. Обратите внимание, что Tensorflow не является простой библиотекой, и благодаря этому методу, все хорошо организовано навигатором ANACONDA, без ошибок в будущем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...