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

时间:2017-01-26 19:57:20

标签: machine-learning tensorflow deep-learning 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

它仍会下载数据集。为什么呢?

另一件让我感到非常奇怪的事情是,当我冲进容器时,它会启动我的root内部,而它之前从未做过。

1 个答案:

答案 0 :(得分:3)

似乎我解决了它。要查找容器中.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