python 如何读取 mnist

Python 读取 MNIST 数据

python 如何读取 mnist

简介

MNIST 数据集包含 70,000 个手写数字图像,其中 60,000 个用于训练,10,000 个用于测试。每个图像都是一个 28×28 灰度图像,表示一个手写数字。MNIST 数据集被广泛用于图像分类和手写数字识别的机器学习任务。Python爬虫服务!

使用 Python 读取 MNIST 数据集

Python 提供了几种方法来读取 MNIST 数据集。最常用的方法是使用 tensorflowkeras 库。

使用 TensorFlow

“`python
import tensorflow as tf

(xtrain, ytrain), (xtest, ytest) = tf.keras.datasets.mnist.load_data()

print(“训练集大小:”, x_train.shape)seo文章托管?

print(“测试集大小:”, x_test.shape)
“`

使用 Keras

“`python
from keras.datasets import mnist

(xtrain, ytrain), (xtest, ytest) = mnist.load_data()

print(“训练集大小:”, x_train.shape)

print(“测试集大小:”, x_test.shape)
“`

数据集格式

MNIST 数据集包含两个文件:train-images-idx3-ubytetrain-labels-idx1-ubytetrain-images-idx3-ubyte 文件包含训练图像,而 train-labels-idx1-ubyte 文件包含图像标签。

相关阅读:  python中**代表什么意思

图像文件是一个二进制文件,包含以下信息:

  • 魔数:一个 4 字节的整数值,表示文件格式(0x00000803)
  • 图像数量:一个 4 字节的整数值,表示图像数量
  • 每张图像的行数:一个 4 字节的整数值,表示每张图像的行数
  • 每张图像的列数:一个 4 字节的整数值,表示每张图像的列数
  • 像素数据:一个逐行、逐列排列的字节数组,表示图像的像素值

标签文件是一个二进制文件,包含以下信息:

  • 魔数:一个 4 字节的整数值,表示文件格式(0x00000801)
  • 标签数量:一个 4 字节的整数值,表示标签数量
  • 标签数据:一个字节数组,包含每个图像的标签

数据预处理

在将 MNIST 数据集用于机器学习任务之前,通常需要进行一些数据预处理步骤:

  • 归一化:将像素值从 0 到 255 缩放为 0 到 1 之间的浮点数。
  • 扁平化:将 28×28 的图像展平为 784 维的向量。
  • 独热编码:将标签转换为独热编码向量。

常见问题

1. 如何获取 MNIST 数字的平均像素值?

“`python
import numpy as np
from keras.datasets import mnist

(xtrain, ytrain), (xtest, ytest) = mnist.load_data()

avgpixelvalue = np.mean(x_train)

print(“平均像素值:”, avgpixelvalue)
“`在线字数统计.

2. 如何查看 MNIST 数据集中的特定图像?

“`python
import matplotlib.pyplot as plt
from keras.datasets import mnist批量打开网址!

相关阅读:  python为什么有那么多第三方库

(xtrain, ytrain), (xtest, ytest) = mnist.load_data()

image_index = 0

image = xtrain[imageindex]
label = ytrain[imageindex]

plt.imshow(image, cmap=”gray”)
plt.title(“数字:{}”.format(label))
plt.show()
“`

3. 如何将 MNIST 数据集分成训练集和验证集?

“`python
from sklearn.modelselection import traintest_split标签导出插件!

(xtrain, ytrain), (xtest, ytest) = mnist.load_data()

xtrain, xval, ytrain, yval = traintestsplit(xtrain, ytrain, testsize=0.1, randomstate=42)

print(“训练集大小:”, xtrain.shape)
print(“验证集大小:”, x
val.shape)
print(“测试集大小:”, x_test.shape)
“`

4. 如何保存和加载 MNIST 数据集?

“`python
import numpy as np
from keras.datasets import mnist

(xtrain, ytrain), (xtest, ytest) = mnist.load_data()

np.savez(“mnistdata.npz”, xtrain=xtrain, ytrain=ytrain, xtest=xtest, ytest=y_test)

相关阅读:  ESP32用什么语言开发?

data = np.load(“mnistdata.npz”)
x
train = data[“xtrain”]
y
train = data[“ytrain”]
x
test = data[“xtest”]
y
test = data[“y_test”]
“`

5. 如何使用 MNIST 数据集训练手写数字分类器?

“`python
import tensorflow as tf
from keras import models, layers

(xtrain, ytrain), (xtest, ytest) = tf.keras.datasets.mnist.load_data()

xtrain, xtest = xtrain / 255.0, xtest / 255.0图片接口插件!

model = models.Sequential([
layers.Flatten(input_shape=(28, 28)),
layers.Dense(128, activation=”relu”),
layers.Dropout(0.2),
layers.Dense(10, activation=”softmax”)
])

model.compile(optimizer=”adam”, loss=”sparsecategoricalcrossentropy”, metrics=[“accuracy”])

model.fit(xtrain, ytrain, epochs=10)

testloss, testacc = model.evaluate(xtest, ytest, verbose=2)
print(“测试集准确率:”, test_acc)
“`

原创文章,作者:魏茂晴,如若转载,请注明出处:https://www.wanglitou.cn/article_126225.html

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 2024-08-15 03:43
下一篇 2024-08-15 04:47

相关推荐

公众号