在 fastai 库中使用 download_data() 和 untar_data()

Using download_data() and untar_data() in fastai library

我使用 fastai 库中的 dowload_data() 函数从 kaggle 下载了 Fashion MNIST 数据集。

downloaded_data = download_data("https://www.kaggle.com/zalando-research/fashionmnist/download")

输出 -

PosixPath('/root/.fastai/data/download.tgz')

download_data保存为.tgz文件,现在我用untar_data().

path = untar_data('/root/.fastai/data/download.tgz')

输出 -

PosixPath('/root/.fastai/data/download.tgz')

没有提取 .tgz 文件。如何在 fastai 库中使用此数据集?

在 fastai 库中,download_data 给你一个 pathlib.PosixPath 文件,而不是确切的文件,你需要使用另一个解压缩库来提取数据。

如果您只需要来自 fast ai 的 MNIST 数据,这里有一个更简单的方法:

from fastai import datasets
import gzip, pickle
MNIST_URL='http://deeplearning.net/data/mnist/mnist.pkl'
path = datasets.download_data(MNIST_URL, ext='.gz')
with gzip.open(path, 'rb') as f:
    ((x_train, y_train), (x_valid, y_valid), _) = pickle.load(f, encoding='latin-1')