def _mnist_raw_data():
fname = resource_filename('sudokuextract.data', "train-images-idx3-ubyte.gz")
if resource_exists('sudokuextract.data', "train-images-idx3-ubyte.gz"):
f = gzip.open(fname, mode='rb')
data = f.read()
f.close()
else:
sio = StringIO(urlopen(_url_to_mnist_train_data).read())
sio.seek(0)
f = gzip.GzipFile(fileobj=sio, mode='rb')
data = f.read()
f.close()
try:
sio.seek(0)
with open(fname, 'wb') as f:
f.write(sio.read())
except:
pass
correct_magic_number = 2051
magic_number = _toS32(data[:4])
if magic_number != correct_magic_number:
raise ValueError("Error parsing images file. Read magic number {0} != {1}!".format(
magic_number, correct_magic_number))
n_images = _toS32(data[4:8])
n_rows = _toS32(data[8:12])
n_cols = _toS32(data[12:16])
images = np.fromstring(data[16:], 'uint8').reshape(n_images, n_rows*n_cols)
return [imrow.reshape(28, 28) for imrow in images]
评论列表
文章目录