图像分类-实现-手写数字识别

本文介绍了一种使用KNN(K-最近邻算法)进行手写数字识别的方法。通过训练数据集,KNN算法可以有效地区分不同手写数字,从而实现图像分类。在深度学习和TensorFlow领域,KNN作为一种传统算法,为理解图像识别的基本原理提供了有价值的视角。
摘要由CSDN通过智能技术生成

knn实现


"""
识别手写数字 数据集 mnist 直接从keras库中读取
"""
 
 
# 导入 keras 库
import tensorflow.keras as tk
import numpy as np
import matplotlib.pyplot as plt
# 加载数据
(train_dataset, train_labels), (test_dataset, test_labels) = tk.datasets.mnist.load_data()
train_labels = np.array(train_labels, dtype=np.int32)
# # 打印数据集形状
# print(train_dataset.shape, test_dataset.shape)
# # 图像预览
# for i in range(40):
#     plt.subplot(4, 10, i+1)
#     plt.imshow(train_dataset[i], cmap='gray')
#     plt.title(train_labels[i], fontsize=10)
#     plt.axis('off')
# plt.show()
 
# 将原始图像作为描述符
def raw_pixels(img):
    return img.flatten()
# 数据打散
shuffle = np.random.permutation(len(train_dataset))
train_dataset, train_labels = train_dataset[shuffle], train_labels[shuffle]
# 计算每个图像的描述符,这里特征描述符是原始像素
raw_descriptors = []
for img in train_dataset:
    raw_descriptors.append(np.float32(raw_pixels(img)))
 
r
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

坠金

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值