主机和泊坞窗容器之间的差异

时间:2018-01-28 07:47:44

标签: docker tensorflow gpu nvidia-docker

我一直在努力训练具有特定架构的3DCNN网络。我想创建一个dockerfile,其中包含使网络正常工作所需的所有步骤。问题是如果我在主机中运行神经网络网络我没有问题,一切正常。但是在docker容器上做的几乎一样,我总是得到“segment fault(core dumped)”错误。

两种安装都不完全相同,但变化(可能安装了一些额外的包)应该不是问题,对吧?除了我开始迭代之前我没有任何错误,所以它似乎是一个内存问题。 GPU在docker容器上工作,与主机GPU相同。 python代码是一样的。

Docker容器神经网络网络开始使用数据进行训练但是在时代1上它得到了“分段错误(核心转储)”。

所以我的问题如下:主机和docker容器之间是否有可能存在严重差异,即使它们安装了完全相同的软件包?特别是与张量流和GPU有关。因为错误必须来自代码外部,因为代码在类似的环境中工作。

希望我能够解释自己的问题,谢谢你。

enter image description here

1 个答案:

答案 0 :(得分:1)

docker镜像将在运行时解析主机内核解析其系统调用 请参阅" How can Docker run distros with different kernels?"。

在您的情况下,您的错误是

Thread 1: EXC_BAD_ACCESS (code=50, address=0x1011ff000)

参见" How to compile Tensorflow with SSE4.2 and AVX instructions?"
(由tensorflow/tensorflow issue 8037引用)

您可以尝试使用Tensorflow built from sourcedocker multi-stage build构建图片。