mnist原始数据读取时怎么增加维度
时间: 2024-03-03 21:51:17 浏览: 20
如果你是使用Python的numpy库读取MNIST原始数据集,可以使用numpy的reshape方法来增加维度。MNIST数据集中的图像是单通道的灰度图像,因此可以将每张图像的像素值重新排列成一个28x28的矩阵,然后再将这个矩阵的维度增加一维,变成(N,1,28,28)的形式,其中N是图像数量。具体的代码实现如下:
```python
import numpy as np
import gzip
def load_mnist(path, kind='train'):
"""Load MNIST data from `path`"""
labels_path = os.path.join(path, '%s-labels-idx1-ubyte.gz' % kind)
images_path = os.path.join(path, '%s-images-idx3-ubyte.gz' % kind)
with gzip.open(labels_path, 'rb') as lbpath:
labels = np.frombuffer(lbpath.read(), dtype=np.uint8, offset=8)
with gzip.open(images_path, 'rb') as imgpath:
images = np.frombuffer(imgpath.read(), dtype=np.uint8, offset=16).reshape(len(labels), 1, 28, 28)
return images, labels
```
在这个代码中,我们首先使用numpy的`frombuffer`方法从压缩文件中读取MNIST数据,然后使用`reshape`方法将每张图像的像素值重新排列成一个28x28的矩阵,并将矩阵的维度增加一维。