如何使用tf.keras.utils.get_file加载图像数据集?

3

我正在使用cifar-10数据集,并且需要公开可用的数据集,因此我将其推送到了gitlab。我想在我的代码中加载这个数据集,在一些挖掘后,我找到了一个使用tf.keras.utils.get_file()的例子,看起来很完美,但是当我尝试加载我的数据集时,我遇到了NotADirectoryError。但是我在网上找到的示例可以正常加载,这让人感到困惑,请问有人能解释一下为什么它对我的数据集不起作用吗?

这是我发现的可以工作的示例,is_dir()返回true。

import pathlib

data_root_orig = tf.keras.utils.get_file(
'flower_photos','https://storage.googleapis.com/download.tensorflow.org/example_images/flower_photos.tgz',untar=True)
    data_root = pathlib.Path(data_root_orig)
    print(data_root.is_dir()
)

这是我正在尝试加载的数据集。最初会抛出“train_data不是目录”的错误,当我再次尝试时似乎可以工作,但is_dir为false,我无法访问我的数据集中的文件。

import pathlib
import tensorflow as tf
data_root_orig = tf.keras.utils.get_file('train',
                                         'https://gitlab.com/StephenAI/osato-file/raw/master/train.zip',
                                        untar=True, archive_format='zip')
data_root = pathlib.Path(data_root_orig)
print(data_root, type(data_root),data_root.is_dir())
3个回答

1
# download IMDb movie review dataset
import tensorflow as tf
dataset = tf.keras.utils.get_file(
    fname="aclImdb.tar.gz", 
    origin="http://ai.stanford.edu/~amaas/data/sentiment/aclImdb_v1.tar.gz", 
    extract=True,
)

//参考资料:https://github.com/amaiya/ktrain


1
import tensorflow as tf
import pathlib
url = 'https://.zip'
data_dir = tf.keras.utils.get_file('dataset', url, extract=True)
# if url = 'https://tgz' => untar=True
data_dir = pathlib.Path(data_dir)
image_count = len(list(data_dir.glob('*/*.jpg')))

对于 TensorFlow 2,您可以直接在 ~/.keras/datasets 中找到数据集,并按照您的需要使用它。

文档 tf.keras.utils.get_file


0

我曾经遇到同样的问题,但是我采用了稍微不同的方法,你可以像我一样尝试一下,看看是否适合你。 所以我将.zip文件上传到我的Google Drive帐户中,将其挂载到Colab中,然后使用patoolib.extract_archive(zip_file_path, outdir='destination_folder')解压缩并继续使用目标文件夹中的图像进行编码.. 当然,你需要使用!pip install patool安装库,然后使用import patoolib导入它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接