Tensorflow в Docker на MacO не может загружать библиотеки с помощью tenorflow / tenorflow: последнее изображение - PullRequest
0 голосов
/ 12 января 2020

Следование руководству по началу работы для запуска Tensorflow в контейнере docker приводит к очень быстрой ошибке. Работая с инструкциями здесь , я вытащил образ tensorflow/tensorflow:latest и затем попытался запустить:

docker run -it --rm tensorflow/tensorflow:latest python -c "import tensorflow as tf; print(tf.reduce_sum(tf.random.normal([1000, 1000])))"

Он выставлен как изображение только для процессора (в разделе https://www.tensorflow.org/install/docker#examples_using_cpu -only_images ), что, как мне кажется, мне нужно, потому что я работаю на Ma c и у меня нет видеокарты Nvidia. Однако возникают следующие ошибки:

~/> docker run -it --rm tensorflow/tensorflow:latest python -c "import tensorflow as tf; print(tf.reduce_sum(tf.random.normal([1000, 1000])))"
2020-01-12 18:53:17.848471: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'libnvinfer.so.6'; dlerror: libnvinfer.so.6: cannot open shared object file: No such file or directory
2020-01-12 18:53:17.848763: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'libnvinfer_plugin.so.6'; dlerror: libnvinfer_plugin.so.6: cannot open shared object file: No such file or directory
2020-01-12 18:53:17.848843: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:30] Cannot dlopen some TensorRT libraries. If you would like to use Nvidia GPU with TensorRT, please make sure the missing libraries mentioned above are installed properly.
2020-01-12 18:53:18.288367: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'libcuda.so.1'; dlerror: libcuda.so.1: cannot open shared object file: No such file or directory
2020-01-12 18:53:18.288461: E tensorflow/stream_executor/cuda/cuda_driver.cc:351] failed call to cuInit: UNKNOWN ERROR (303)
2020-01-12 18:53:18.288516: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:156] kernel driver does not appear to be running on this host (996a2dd2ab59): /proc/driver/nvidia/version does not exist
2020-01-12 18:53:18.289117: 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-12 18:53:18.295734: I tensorflow/core/platform/profile_utils/cpu_utils.cc:94] CPU Frequency: 2592000000 Hz
2020-01-12 18:53:18.296844: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x55c37f5f81f0 initialized for platform Host (this does not guarantee that XLA will be used). Devices:
2020-01-12 18:53:18.296881: I tensorflow/compiler/xla/service/service.cc:176]   StreamExecutor device (0): Host, Default Version
tf.Tensor(-203.31216, shape=(), dtype=float32)

Инструкции вводят в заблуждение (говоря, что последняя - это изображение только для процессора), или я что-то упустил? Я вижу ссылки на cuda в выводе, так что может показаться, что это изображение не только для процессора? Должен ли я использовать другое изображение?

Вот мои характеристики:

macOs Mojave - 10.14.6
Docker Desktop - 2.1.0.6
docker - 19.03.5

Ответы [ 2 ]

0 голосов
/ 10 февраля 2020

Я тоже столкнулся с этой проблемой и пытался запустить на P C. Поскольку nvidia- docker не поддерживает Windows, я также должен использовать образ только для процессора.

Как сказал Одохи Дэвид, вы можете запустить свой код в блокноте Jupyter. Вы можете запустить его с официальным изображением, например так:

docker run -it -p 8888:8888 tensorflow/tensorflow:latest-py3-jupyter

Затем откройте localhost:8888 в вашем браузере. Вам понадобится токен для доступа к ноутбуку, и вы сможете найти его в терминале. Например:

[I 13:57:13.801 NotebookApp] http://8c6f388f31c0:8888/?token=44ec1f209c1777c4c1b28b38b9842f297e170cbacf24b291

В этом случае токен будет 44ec1f209c1777c4c1b28b38b9842f297e170cbacf24b291.

После этого вы сможете получить доступ к официальному tensorflow-tutorials и записать свой код в блокнот.

0 голосов
/ 13 января 2020

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

Результат print(tf.reduce_sum(tf.random.normal([1000, 1000]))) на самом деле tf.Tensor(-203.31216, shape=(), dtype=float32) , которая находится в последней строке того, что было распечатано.

this is what mine printed out on jupyter notebook

, если вы можете запустить свой код в блокноте Jupyter, то вы должны использовать Изображение jupyter / tenorflow-notebook.

Настройте его следующим образом:

  1. docker pull jupyter/tensorflow-notebook
  2. docker run -p 8888:8888 jupyter/tensorflow-notebook

После при запуске контейнера на терминале будет отображаться ссылка, которую вы можете использовать для доступа к ноутбуку. Скопируйте ссылку и вставьте в браузер, и начните писать свой код. Для меня это сработало без распечатки этих «предупреждений».

Если контейнер tenorflow правильно запускает ваш код с теми ошибками, которые все еще распечатаны, пожалуйста, дайте мне знать. Но сейчас я использую контейнер для ноутбуков jupyter и не получаю никаких ошибок или предупреждений.

Если я найду способ очистки этих предупреждений, я сообщу вам здесь.

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