Mnist相关

本文展示了如何使用TensorFlow加载MNIST数据集并显示其中的图像。此外,还介绍了如何利用TensorFlow获取矩阵中最大值的索引,并通过实例说明了不同参数设置下的结果变化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1,显示一下mnist数据中的图片看看

#coding=utf-8
import tensorflow as tf
from tensorflow.examples.tutorials.mnist import input_data
import matplotlib.pyplot as plt
import numpy as np

mnist = input_data.read_data_sets("/tmp/data",one_hot=True)
#将图片转换为28*28的
test_image= mnist.test.images[0].reshape((28,28))
#图像类型原来为浮点型,转换为整型
test_image = (test_image*255).astype(int)
print(test_image)
plt.figure(1)
#绘制灰度图像
plt.imshow(test_image,cmap ='gray')
# plt.imshow(test_image,cmap =plt.cm.gray)
#plt.imshow(test_image,cmap =plt.cm.gray_r)#图像黑白翻转
plt.show()

2.tf.argmax()

tf.argmax(input, axis=None, name=None, dimension=None)

返回最大值的索引号

import tensorflow as tf
import numpy as np

A = [[1,3,4,5,6]]
B = [[1,3,4], [2,4,1]]

with tf.Session() as sess:
    print(sess.run(tf.argmax(A, 1)))#4
    print(sess.run(tf.argmax(B, 1)))#[2,1]

axis:0表示列,1表示行,别搞那么复杂,能跑就行

test = np.array([[1, 2, 3], [2, 3, 4], [5, 4, 3], [8, 7, 2]])
np.argmax(test, 0)#输出:array([3, 3, 1]
np.argmax(test, 1)#输出:array([2, 2, 0, 0]

注意:input的类型不能是(4,)这样的,会报错

a = [1,2,3,4]

sess.run(tf.argmax(a,1))会报错

a得是[[1,2,3,4]]这样的


3.格式化输出列表

好像输出列表的时候不能使用%d,要么直接输出,要么使用format








### 关于MNIST数据集的相关资源 #### 使用教程 对于希望了解如何使用MNIST数据集进行图像分类的任务,可以参考官方文档说明。TensorFlow和Keras提供了便捷的方法来加载该数据集。仅需几行代码即可完成导入工作: ```python import tensorflow as tf (x_train, y_train), (x_test, y_test) = tf.keras.datasets.mnist.load_data() ``` 这段简洁的Python脚本能够快速获取训练与测试样本集合[^1]。 #### 下载途径 除了通过API直接调用外,还可以访问其他平台上的版本。例如,在线教育资料中提及的一个具体案例展示了从百度网盘下载相关教学材料的可能性[^2];而像Kaggle这样的竞赛网站也提供有经过整理后的MNIST数据集文件可供研究者利用[^4]。 #### 官方文档 为了更深入地理解这些工具的功能特性及其最佳实践方式,则应查阅框架本身的指南文档。Matplotlib等可视化库同样拥有详尽的帮助手册,有助于开发者更好地呈现分析成果[^5]。 #### 示例代码 下面给出一段完整的基于Keras构建简单神经网络模型并应用到MNIST手写数字识别任务上的例子: ```python from keras.models import Sequential from keras.layers import Dense, Flatten from keras.utils import to_categorical # 加载数据集 (x_train, y_train), (x_test, y_test) = tf.keras.datasets.mnist.load_data() # 预处理输入特征 x_train = x_train / 255.0 x_test = x_test / 255.0 # 将标签转换成one-hot编码形式 y_train = to_categorical(y_train, num_classes=10) y_test = to_categorical(y_test, num_classes=10) # 构建模型结构 model = Sequential([ Flatten(input_shape=(28, 28)), Dense(128, activation='relu'), Dense(10, activation='softmax') ]) # 编译配置优化器、损失函数及评估指标 model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy']) # 开始训练过程 history = model.fit(x_train, y_train, epochs=5, batch_size=32, validation_split=0.2) # 测试性能表现 test_loss, test_acc = model.evaluate(x_test, y_test) print(f'Test accuracy: {test_acc}') ``` 此段程序演示了怎样创建一个多层感知机来进行基本的手写字体辨识操作,并包含了必要的预处理步骤以及最终的效果评测部分。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值