MacOs上Docker中的Tensorflow无法加载带有Tensorflow/Tensorflow:最新映像的库
遵循在docker容器中运行Tensorflow的入门指南会很快产生错误。按照说明操作,我拉出了MacOs上Docker中的Tensorflow无法加载带有Tensorflow/Tensorflow:最新映像的库,macos,docker,tensorflow,Macos,Docker,Tensorflow,遵循在docker容器中运行Tensorflow的入门指南会很快产生错误。按照说明操作,我拉出了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])))" 这是一个cpu专用图像(在第节下),我认为我需
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])))"
这是一个cpu专用图像(在第节下),我认为我需要它,因为我在Mac电脑上运行,并且没有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)
说明是否有误导性(说latest是一个仅限cpu的映像),或者我是否遗漏了什么?我在输出中看到对cuda的引用,所以这似乎不是一个仅cpu的映像?我应该使用不同的图像吗
以下是我的规格:
macOs Mojave - 10.14.6
Docker Desktop - 2.1.0.6
docker - 19.03.5
不久前我也遇到过同样的问题,但我发现它实际上打印了正确的结果,这些日志可能是警告
print(tf.reduce\u sum(tf.random.normal([1000,1000]))的结果实际上是tf.Tensor(-203.31216,shape=(),dtype=float32)
,它位于打印输出的最后一行
如果可以在jupyter笔记本中运行代码,那么应该使用jupyter/tensorflow笔记本映像
这样设置:
docker pull jupyter/tensorflow笔记本
docker-run-p 8888:8888 jupyter/tensorflow笔记本
运行容器后,终端上将显示一个链接,您可以使用该链接访问笔记本。复制链接并粘贴到浏览器中,然后开始编写代码。它对我很有效,没有打印任何“警告”
如果tensorflow容器正确运行您的代码,并且仍然打印出这些错误,请告诉我。但目前我正在使用jupyter笔记本电脑容器,没有收到任何错误或警告
如果我找到清除这些警告的方法,我会在这里告诉您。我也遇到了这个问题,并且我尝试在PC上运行。因为nvidia docker不支持Windows,我还必须使用仅cpu的映像
正如Odohi David所说,您可以在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教程
,并将代码写在笔记本上