使用docker容器时keras在哪里存储数据集?

Pin*_*hio 5 machine-learning deep-learning keras tensorflow

我试图使用cifar10数据集运行深度学习模型.当keras安装在系统上并且尝试使用数据集时,keras会将其下载一次:

~/.keras/datasets/
Run Code Online (Sandbox Code Playgroud)

我这样说是因为我可以使用该目录而且我看到:

$ ls
cifar-10-batches-py        cifar-10-batches-py.tar.gz cifar-100-python           cifar-100-python.tar.gz    mnist.pkl.gz
Run Code Online (Sandbox Code Playgroud)

但是当我在docker容器~/.keras中安装keras时不存在.我确定它被保存在某处,因为我可以在以后通过带有bash(with docker run -it --rm tf_img bash)的容器登录到docker镜像时加载数据集.但是,我在这里找不到可能保存的文件.他们在哪里救了?

一旦我找到这个位置,我就打算~/.keras/用容器来扩展我的本地(或者我登录的任何计算机),这样每次我尝试训练某些模型时,数据集都不需要下载30次.


我发现第一个进展.kerasfind -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
Run Code Online (Sandbox Code Playgroud)

它仍然下载数据集.为什么?

让我感到极为奇怪的另一件事是,当我冲进容器时,它会启动我在root中的内容,而它之前从未做过.

Cha*_*ker 3

看来我解决了。要查找.keras容器中的位置,请使用 bash 登录到容器(如docker run -it --rm -v /local:/container image_name bash):

find -type d -name .keras 
Run Code Online (Sandbox Code Playgroud)

发现该位置是

./root/.keras
Run Code Online (Sandbox Code Playgroud)

现在只需调整数据集的位置即可:

docker run -it --rm -v /Users/folder1:/Users/folder1 -v /Users/Pinocchio/.keras:/root/.keras tf_cpu cifar10_cnn.py
Run Code Online (Sandbox Code Playgroud)

确保没有任何拼写错误,特别是因为它.keras和不是keras