当使用docker容器时,keras将其数据集存储在哪里



我试图使用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

最新更新