首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏叶子陪你玩编程

    数字识别

    上篇的内容最后一个案例代码,其实来自官方的手写数字识别案例教程,我自己基于里面的内容自己删减了一些。 这里主要讲一下里面的数据集,sklearn自带了很多数据集,在安装包的data里面,就有手写数字识别数据集。 虽说是数字识别,不过这个数据集里面并没有实际图片。 这里的数字识别核心的可以分为下面几步: 第一步:创建分类器模型 简单理解,可以看作一个映射函数,传入一个数据,就可以返回一个结果给你。 ,不过识别前都会通过测试数据测试一下,先看看准确率怎么样,确定效果还不错,就可以用来测试没有见过的数字图片了。 2.从图片文件夹中将所有数字图片读取出来 这里只是做了数字图片的读取,所以只能识别数字3.定义一个单张图片匹配的方法。

    2.1K10编辑于 2022-02-08
  • 来自专栏全栈程序员必看

    基于keras的手写数字识别_数字识别

    一、概述 手写数字识别通常作为第一个深度学习在计算机视觉方面应用的示例,Mnist数据集在这当中也被广泛采用,可用于进行训练及模型性能测试; 模型的输入: 32*32的手写字体图片,这些手写字体包含0~ 9数字,也就是相当于10个类别的图片 模型的输出: 分类结果,0~9之间的一个数 下面通过多层感知器模型以及卷积神经网络的方式进行实现 二、基于多层感知器的手写数字识别 多层感知器的模型如下,其具有一层影藏层 plt.subplot(223) plt.imshow(x_train[2], cmap=plt.get_cmap('gray')) plt.subplot(224) plt.imshow(x_train[3] .] - ETA: 0s 10000/10000 [==============================] - 1s 112us/step MLP: 98.07% 三、基于卷积神经网络的手写数字识别 Flatten层: Flatten层用来将输入“压平”,即把多维的输入一维化,常用在从卷积层到全连接层的过渡,举例如下 input size —->> output size 32 x 32 x 3

    2.6K10编辑于 2022-10-05
  • 来自专栏NowlNowl_AI

    机器学习实战第3天:手写数字识别

    一、任务描述 手写数字识别是机器学习中的一个经典问题,通常涉及将手写数字的图像与其对应的数字进行关联。 二、数据集描述 手写数字识别数据集包含了一列数字标签,每个数字标签有784个像素值,代表这个数字图片的像素值 三、主要代码 (1)主要代码库的说明与导入方法 import pandas as pd columns="label") train_y = train["label"] test_x = test.drop(columns="label") test_y = test["label"] 3. 图片显示 我们可以使用matplotlib库将图片显示出来 train_x.iloc[2]选取训练集的第3行数据 np.array()将数组转化为numpy数组,以便使用reshape函数 .reshape 9,打印标签也确实是9,接下来我们就来训练一个数字识别机器学习模型 (3)模型训练 由于这是一个分类任务,我们可以选择使用KNN近邻算法,第一步设置模型,第二步训练模型 model = KNeighborsClassifier

    63810编辑于 2024-01-18
  • 来自专栏全栈程序员必看

    mnist手写数字识别代码(knn手写数字识别)

    MNIST 手写数字识别模型建立与优化 本篇的主要内容有: TensorFlow 处理MNIST数据集的基本操作 建立一个基础的识别模型 介绍 S o f t m a x Softmax Softmax 回归以及交叉熵等 MNIST是一个很有名的手写数字识别数据集(基本可以算是“Hello World”级别的了吧),我们要了解的情况是,对于每张图片,存储的方式是一个 28 * 28 的矩阵,但是我们在导入数据进行使用的时候会自动展平成 plt.matshow(curr_img, cmap=plt.get_cmap('gray')) plt.show() 通过上面的代码可以看出数据集中的一些特点,下面建立一个简单的模型来识别这些数字 ,3) 经过 S o f t m a x Softmax Softmax 回归之后就是 ( e 1 e 1 + e 2 + e 3 , e 2 e 1 + e 2 + e 3 , e 3 e 1 + }+e^{3}}) (e1+e2+e3e1​,e1+e2+e3e2​,e1+e2+e3e3​),这样就成为一个概率分布,方便接下来计算交叉熵了。

    3.4K30编辑于 2022-08-01
  • 来自专栏一英里广度一英寸深度的学习

    机器学习入门数据集--3.手写数字识别

    训练集 (training set) 由来自 250 个不同人手写的数字构成, 其中 50% 是高中学生, 50% 来自人口普查局 (the Census Bureau) 的工作人员。 测试集(test set) 也是同样比例的手写数字数据。 ? 手写数字样式 原文出处MINST 官网非常“质朴”。 ? path= '/Users/wangsen/ai/03/4day_tensorflow/data' train_data = extract_data(path+'/train-images-idx3- extract_labels(path+'/train-labels-idx1-ubyte.gz', 60000) test_data = extract_data(path+'/t10k-images-idx3- ,score) 结果: (60000, 784) (60000,) sklearn logisticRegression score: 0.9194 代码分析 上例子中,把784个像素作为特征,标签是数字

    1.2K20发布于 2019-03-04
  • 来自专栏.Net Core 技术栈

    opencv +数字识别

    现在很多场景需要使用的数字识别,比如银行卡识别,以及车牌识别等,在AI领域有很多图像识别算法,大多是居于opencv 或者谷歌开源的tesseract 识别. 以上几种ocr 识别比较,最后选择了opencv 的方式进行ocr 数字识别,下面讲解通过ocr识别的基本流程和算法. opencv 数字识别流程及算法解析 要通过opencv 进行数字识别离不开训练库的支持 ,需要对目标图片进行大量的训练,才能做到精准的识别出目标数字;下面我会分别讲解图片训练的过程及识别的过程. opencv 识别算法原理 1.比如下面一张图片,需要从中识别出正确的数字,需要对图片进行灰度 原图 灰度化图 二值化图 寻找轮廓 识别后的结果图 以上就是简单的图片进行灰度化、二值化、寻找数字轮廓得到的识别结果(==这是基于我之前训练过的数字模型下得到的识别结果==) 有些图片比较赋值 “.”的图片,这样就可以识别出小数点的数字支持. -2 这个分类主要是其他一些无关紧要的图片,也就是不是数字和点的都归为这一类中.

    2.9K20编辑于 2022-04-07
  • 来自专栏强化学习专栏

    MNIST手写数字识别

    文章分类在Pytorch: Pytorch(2)---《MNIST手写数字识别》 MNIST手写数字识别 一、 实验目的 掌握利用卷积神经网络CNN实现对MNIST手写数字识别。 实验内容 2.1 MNIST数据集介绍 MNIST数据集是机器学习领域中非常经典的一个数据集,由60000个训练样本和10000个测试样本组成,每个样本都是一张28 * 28像素的灰度手写数字图片 train=False, download=Falese, transform=transform) # download=True表示可自动下载,此处=False表示直接从本地导入 Step3: fig = plt.figure() for i in range(12): plt.subplot(3, 4, i+1) plt.tight_layout() plt.imshow momentum) # lr学习率,momentum冲量 模型训练 Step1:前馈(forward propagation) Step2:反馈(backward propagation) Step3

    1.6K10编辑于 2024-12-03
  • 来自专栏yiyun 的专栏

    KNN 手写数字识别

    (classCount.items(), key=operator.itemgetter(1), reverse=True) return sortedClassCount[0][0] 手写数字识别 fileNameStr = trainingFileList[i] # 去掉 .txt fileStr = fileNameStr.split('.')[0] # 第一个数字为分类 fileNameStr = testFileList[i] # 去掉 .txt fileStr = fileNameStr.split('.')[0] # 第一个数字是类别 testDigits/%s' % fileNameStr) classifierResult = classify0(vectorUnderTest, trainingMat, hwLabels, 3)

    2K20编辑于 2022-04-01
  • 来自专栏机器学习入门

    Softmax 识别手写数字

    TensorFlow 入门(二):Softmax 识别手写数字 MNIST是一个非常简单的机器视觉数据集,如下图所示,它由几万张28像素x28像素的手写数字组成,这些图片只包含灰度值信息。 我们的任务就是对这些手写数字的图片进行分类,转成0~9一共十类。 ? 我们可以用一个数字数组来表示这张图片: ? 我们把这个数组展开成一个向量,长度是 28x28 = 784。如何展开这个数组(数字间的顺序)不重要,只要保持各个图片采用相同的方式展开。 这里手写数字识别为多分类问题,因此我们采用Softmax Regression模型来处理。关于Softmax,可以参看这里。你也可以认为它是二分类问题Sigmoid函数的推广。

    2.6K40发布于 2019-05-26
  • 来自专栏杨熹的专栏

    TensorFlow-3: 用 feed-forward neural network 识别数字

    今天继续看 TensorFlow Mechanics 101: https://www.tensorflow.org/get_started/mnist/mechanics 完整版教程可以看中文版tutorial: http://wiki.jikexueyuan.com/project/tensorflow-zh/tutorials/mnist_tf.html 这一节讲了使用 MNIST 数据集训练并评估一个简易前馈神经网络(feed-forward neural network) input,outp

    67880发布于 2018-04-03
  • 来自专栏杨熹的专栏

    TensorFlow-3: 用 feed-forward neural network 识别数字

    本文介绍了如何使用 TensorFlow-3.0 和 Keras 在 Python 中构建一个简单的全连接神经网络,用于 MNIST 手写数字识别任务。首先,作者介绍了如何下载和安装 TensorFlow-3.0 和 Keras,然后描述了如何使用两个隐藏层实现一个具有 128 个神经元和 10 个输出节点的全连接神经网络。接下来,作者演示了如何将训练数据集划分为训练、验证和测试数据集,并使用交叉熵损失函数和梯度下降优化器进行训练。最后,作者使用测试数据集评估了模型的准确率。整个代码的 GitHub 地址为 https://github.com/tensorflow/tensorflow/tree/master/tensorflow/examples/tutorials/mnist。

    1.5K01发布于 2017-08-01
  • 来自专栏企鹅号快讯

    PaddlePaddle之手写数字识别

    ,最简单的安装方式就是: CPU版本安装 pip install paddlepaddle GPU版本安装 pip install paddlepaddle-gpu 用PaddlePaddle实现手写数字识别 os.path.dirname(os.path.realpath(__file__)) test_data.append((load_image(cur_dir + '/image/infer_3. np.argsort(-probs) # probs and lab are the results of one batch data print "Label of image/infer_3. 这次训练的手写数字识别数据量比较小,但是如果想要添加数据,也非常方便,直接添加到相应目录下。 2.event_handler机制,可以自定义训练结果输出内容。 3.速度快。上面的例子已经证明了paddlepaddle的速度,并且在提升速度的同时,模型准确度也与最优结果相差不多,这对于我们训练海量数据的模型是一个极大的优势啊!

    1.6K80发布于 2018-02-11
  • 来自专栏数据处理

    kaggle-识别手写数字

    l = np.array(l[1:], dtype=float) train = l[1:,1:] label = l[1:,0] a = pd.DataFrame(train) # 二值化,不影响数字显示 = 1 l = load_data('test.csv') test = np.array(l[1:], dtype=float) a = pd.DataFrame(test) # 二值化,不影响数字显示 标准差, sc.mean_平均值, sc.var_方差''' y_pred = lr.predict(X_test_std) print y_pred OUT: [ 2. 0. 9. ..., 3. 画一个像素图片数字,第二个图片,上面预测是0 from PIL import Image import numpy as np import matplotlib.pyplot as plt import test1: test2.append([0,0,el]) img = np.array(test2) print img.shape img1 = img.reshape((28,28,3)

    1.3K20发布于 2018-06-01
  • 来自专栏强化学习专栏

    pytorch实现 --- 手写数字识别

    文章分类在Pytorch: Pytorch(1)---《pytorch实现 --- 手写数字识别》 pytorch实现 --- 手写数字识别 1.项目介绍 使用pytorch实现手写数字识别 3.程序代码 """手写数字识别项目 时间:2023.11.6 环境:pytorch 作者:Rainbook """ import torch from torch.utils.data , 64) # 输入层输入28*28,输出64 self.fc2 = torch.nn.Linear(64, 64) # 中间层,输入64,输出64 self.fc3 手写数字有十种结果,随机猜的正确率就是1/10 print("initial accuracy:", evaluate(test_data, net)) """训练神经网络 pytorch """ for (n, (x, _)) in enumerate(test_data): if n > 3: break predict

    84810编辑于 2024-12-03
  • 来自专栏Michael阿明学习之路

    Digit Recognizer 手写数字识别

    accuracy_score # help(KNeighborsClassifier) para_dict = [ {'weights':["uniform", "distance"], 'n_neighbors':[3,4,5 leaf_size':[10,20]} ] knn_clf = KNeighborsClassifier() grid_search = GridSearchCV(knn_clf, para_dict, cv=3, scoring='accuracy',n_jobs=-1) grid_search.fit(X_train, y_train) 输出 GridSearchCV(cv=3, estimator=KNeighborsClassifier (), n_jobs=-1, param_grid=[{'leaf_size': [10, 20], 'n_neighbors': [3, 4, 5],

    1.5K30发布于 2020-07-13
  • 来自专栏图像处理与模式识别研究所

    手写体数字识别

    ) display_step=1 save_step=5 learning_rate=0.001#学习率 epoch_list=[];loss_list=[];accuracy_list=[] #步骤3: prediction_result[i]) count+=1 print("count=", count) Extracting MNIST_data/train-images-idx3- ubyte.gz Extracting MNIST_data/train-labels-idx1-ubyte.gz Extracting MNIST_data/t10k-images-idx3-ubyte.gz 11.451450348 Accuracy= 0.9588 Train Finished takes: 76.92 Starting another session for prediction 算法:手写体数字识别使用的框架是由多个隐藏层组成的神经网络

    1.9K20编辑于 2022-05-29
  • 来自专栏孤独的S

    机器学习-手写数字识别

    据说,在命令行窗口打印出‘hello,world’是入门编程语言的第一个程序,那么手写数字识别就是机器学习的hello,world了,学习的东西不经常复习的容易忘记,因此在这里记录一下。 要进行手写数字识别,首先需要数据,然后在定义一个神经网络来对数据进行训练,然后把训练好的权重和模型保存起来,在另外的程序调用,并拿来测试你想要测试的图片,看看训练的结果是不是比较正确。 关于数据获取,这里选择的keras自带的数据集,可以在keras的官网可以找到你需要的数据集,https://keras.io/datasets/ 数据集包含10个数字的60,000个 然后再添加一个隐藏层,这里就不用定义输入个数,只需要输出的和激活函数,紧接着就是输出层了,因为我们的数字是0-9,有10个数字,这里的大小也是10,而这里的激活函数就要改成softmax,模型就这样构建完成了

    1.6K20发布于 2019-09-28
  • 来自专栏AutoML(自动机器学习)

    KNN实现手写数字识别

    KNN实现手写数字识别 博客上显示这个没有Jupyter的好看,想看Jupyter Notebook的请戳KNN实现手写数字识别.ipynb 1 - 导入模块 import numpy as np load_digits() Extracting C:/Users/marsggbo/Documents/Code/ML/TF Tutorial/data/MNIST_data\train-images-idx3- -ubyte.gz Extracting C:/Users/marsggbo/Documents/Code/ML/TF Tutorial/data/MNIST_data\t10k-images-idx3- , x_test, y_test = mnist.train.images, mnist.train.labels, mnist.test.images, mnist.test.labels 展示手写数字 3 - 构建模型 class Knn(): def __init__(self,k): self.k = k self.distance = {}

    1.7K90发布于 2018-01-23
  • 来自专栏Deep Learning 笔记

    MNIST__数字识别__SOFTMAX

    本次MNIST的手写数字识别未采用input_data.py文件,想尝试一下用原始的数据集来运行这个DEMO。 需要注意的一点是,源码中的图片标签采用的的ONE-HOT编码,而数据集中的标签用的是具体的数字。 例如:图片上的数字和标签的值是5,其对应的ONT-HOT编码为[0,0,0,0,0,1,0,0,0,0](分别对应数值【0,1,2,3,4,5,6,7,8,9】) ,也就是长度为10的一维数组的第6个元素为 源码结构: 1.读取MNIST 2.创建占位符(用读取的数据填充这些空占位符) 3.选用交叉熵作为损失函数 4.使用梯度下降法(步长0.02),来使损失函数最小 5.初始化变量 6.开始计算 7.输出识别率 可又说不上来~ 参考资料: ONE-HOT使用体会 : https://blog.csdn.net/lanhaier0591/article/details/78702558 训练Tensorflow识别手写数字

    1.1K10发布于 2018-08-04
  • 来自专栏算法与编程之美

    识别手绘数字图像

    1 问题 初学机器学习,第一步是做一个简单的手写数字识别,我选用的是MNIST数据集。 直接上代码 3 结语 这次实验我们深入了解和扩展了一些关于手写数字的步骤和方法,在我第一次运行花费了挺多的时间,运行完一次我再也不想运行了,心疼我电脑……初学者,不足之处甚多,恳请批评指正。

    41910编辑于 2023-08-22
领券