#python #python-3.x #numpy #mnist #hashlib
#python #python-3.x #тупой #mnist #hashlib
Вопрос:
Я пытаюсь извлечь сжатый файл MNIST отсюда. Как я могу сделать это из скрипта python и разделить на обучающие и тестовые образцы. Код, который я пробовал
def fetch(url):
import requests, gzip, os, hashlib, numpy
fp = os.path.join("/tmp", hashlib.md5(url.encode('utf-8')).hexdigest())
if not os.path.isfile(fp):
with open(fp, "rb") as f:
dat = f.read()
else:
with open(fp, "wb") as f:
dat = requests.get(url).content
f.write(dat)
return numpy.frombuffer(gzip.decompress(dat), dtype=np.uint8).copy()
X_train = fetch("http://yann.lecun.com/exdb/mnist/train-images-idx3-ubyte.gz")[0x10:].reshape((-1, 28, 28))
Y_train = fetch("http://yann.lecun.com/exdb/mnist/train-labels-idx1-ubyte.gz")[8:]
X_test = fetch("http://yann.lecun.com/exdb/mnist/t10k-images-idx3-ubyte.gz")[0x10:].reshape((-1, 28, 28))
Y_test = fetch("http://yann.lecun.com/exdb/mnist/t10k-labels-idx1-ubyte.gz")[8:]
Я получаю ошибку FileNotFoundError: [Errno 2] No such file or directory: '/tmp/d8b415e67abd11881e156b8f111d3300'
когда я пытаюсь if not os.path.isfile(fp):
быть if os.path.isfile(fp):
.
Я получаю сообщение об ошибке
> TypeError Traceback (most recent call last)
> <ipython-input-3-a98ee7ff45b8> in <module> 14 f.write(dat) 15 return
> numpy.frombuffer(gzip.decompress(dat), dtype=np.uint8).copy()
> ---> 16 X_train = fetch("http://yann.lecun.com/exdb/mnist/train-images-idx3-ubyte.gz")[0x10:].reshape((-1,
> 28, 28)) 17 Y_train =
> fetch("http://yann.lecun.com/exdb/mnist/train-labels-idx1-ubyte.gz")[8:]
> 18 X_test =
> fetch("http://yann.lecun.com/exdb/mnist/t10k-images-idx3-ubyte.gz")[0x10:].reshape((-1,
> 28, 28))
>
> TypeError: 'NoneType' object is not subscribable
Как их успешно извлечь?