我试图使用cifar10数据集运行深度学习模型。当keras安装在系统上并试图使用数据集时,keras会在中下载一次
~/.keras/datasets/
我这么说是因为我可以找到那个目录,我看到:
$ ls
cifar-10-batches-py cifar-10-batches-py.tar.gz cifar-100-python cifar-100-python.tar.gz mnist.pkl.gz
然而,当我在docker容器中安装keras时,~/.keras
并不存在。我确信它被保存在某个地方,因为当我稍后通过带有bash(带有docker run -it --rm tf_img bash
)的容器登录到docker映像时,我可以加载数据集。但是,我在这里找不到可能保存的文件。它们被保存在哪里?
此外,一旦我找到这个位置,我就计划用容器填充我本地的~/.keras/
(或我登录的任何计算机),这样每次我尝试训练某个模型时,数据集就不必加载30次。
我发现的第一个进度是.keras
在容器中使用find -type d -name .keras
命令(它在./root/.keras
中)。然而,似乎即使我正确地设置了文件夹的容量,它还是会下载它(即使我已经去了容器中的/root/.keras
位置,看到了那里的东西,就像它在我的本地计算机中一样)。我做到了:
docker run -it --rm -v /Users/folder1:/Users/folder1 -v /Users/Pinocchio/.keras:/root/keras tf_cpu cifar10_cnn.py
并且它仍然下载数据集。为什么?
另一件让我感到非常奇怪的事情是,当我撞到容器时,它会让我进入根目录,而它以前从未这样做过。
似乎我解决了这个问题。要找到.keras
在容器中的位置,请使用bash登录容器(例如docker run -it --rm -v /local:/container image_name bash
):
find -type d -name .keras
发现位置是
./root/.keras
现在只是卷数据集的位置:
docker run -it --rm -v /Users/folder1:/Users/folder1 -v /Users/Pinocchio/.keras:/root/.keras tf_cpu cifar10_cnn.py
确保没有任何打字错误,特别是因为它是.keras
而不是keras
。