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

anauzrmj  于 2023-05-23  发布在  其他
关注(0)|答案(3)|浏览(535)

我正在使用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 not a directory,当我再次尝试时,它似乎可以工作,但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())
bwleehnv

bwleehnv1#

# 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,
)

//reference:https://github.com/amaiya/ktrain

mkshixfv

mkshixfv2#

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中找到dataset并根据需要使用它
文档tf.keras.utils.get_file

vsaztqbk

vsaztqbk3#

我也有同样的问题,我不得不采取其他略有不同的道路,你可以像我一样做,看看它是否为你服务好。所以我把.zip文件上传到我的Google Drive帐户中,挂载到Colab,然后我使用patoolib.extract_archive(zip_file_path, outdir='destination_folder')并继续使用destination_folder中的图像进行编码。当然,你需要使用!pip install patool安装库,然后使用import patoolib导入它。

相关问题