首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏Michael阿明学习之路

    3. 分类(MNIST手写数字预测)

    中文翻译参考 数据集为70000张手写数字图片,MNIST 数据集下载 1. 3. 性能评估 4.1 交叉验证 手写版 from sklearn.model_selection import StratifiedKFold from sklearn.base import clone 这叫做“一对所有”(OvA)策略(也被叫做“一对其他”,OneVsRest) 另一个策略是对每2个数字都训练一个二分类器:一个分类器用来处理数字 0 和数字 1,一个用来处理数字 0 和数字 2, 可以看出,数字被错误的预测成3、8、9的较多 把3和5的预测情况拿出来分析 def plot_digits(instances, images_per_row=10, **options): size

    1.6K20发布于 2020-07-13
  • 来自专栏全栈程序员必看

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

    MNIST 手写数字识别模型建立与优化 本篇的主要内容有: TensorFlow 处理MNIST数据集的基本操作 建立一个基础的识别模型 介绍 S o f t m a x Softmax Softmax 回归以及交叉熵等 MNIST是一个很有名的手写数字识别数据集(基本可以算是“Hello World”级别的了吧),我们要了解的情况是,对于每张图片,存储的方式是一个 28 * 28 的矩阵,但是我们在导入数据进行使用的时候会自动展平成 ,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 2 + e 3 ) (\frac{e^{1}}{e^{1}+e^{2}+e^{3}},\frac{e^{2}}{e^{1}+e^{2}+e^{3}},\frac{e^{3}}{e^{1}+e^{2 }+e^{3}}) (e1+e2+e3e1​,e1+e2+e3e2​,e1+e2+e3e3​),这样就成为一个概率分布,方便接下来计算交叉熵了。

    3.4K30编辑于 2022-08-01
  • 来自专栏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
  • 来自专栏一英里广度一英寸深度的学习

    机器学习入门数据集--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
  • 来自专栏强化学习专栏

    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
  • 来自专栏机器学习入门

    Softmax 识别手写数字

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

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

    KNN 手写数字识别

    sorted(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
  • 来自专栏算法与编程之美

    手写数字相关问题

    用“横纵式”极简实现方案快速完成手写数字识别的建模? 2 方法 MINIST 数据集包含60000个训练集与10000个测试集。 数据集分为图片与标签,其中图片是28*28的像素矩阵,标签为 0~9 共10个数字。 步骤: 在数据处理前,首先要加载飞桨平台与“手写数字识别”模型相关的类库,实现方法如下。 print("图像标签形状和对应数据为:", label_data.shape, label_data[0]) break print("\n打印第一个batch的第一个图像,对应标签数字为 plt.imshow(img) plt.axis('on') # 关掉坐标轴为 off plt.title('image') # 图像题目 plt.show() 3 结语 这次实验我们深入了解和扩展了一些关于手写数字的步骤和方法,过程中困难重重,但好在有老师和同学们的帮助也算顺利解答了疑惑。

    34820编辑于 2023-08-22
  • 来自专栏企鹅号快讯

    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
  • 来自专栏孤独的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- y_train, 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
  • 来自专栏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
  • 来自专栏全栈程序员必看

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

    一、概述 手写数字识别通常作为第一个深度学习在计算机视觉方面应用的示例,Mnist数据集在这当中也被广泛采用,可用于进行训练及模型性能测试; 模型的输入: 32*32的手写字体图片,这些手写字体包含0~ 9数字,也就是相当于10个类别的图片 模型的输出: 分类结果,0~9之间的一个数 下面通过多层感知器模型以及卷积神经网络的方式进行实现 二、基于多层感知器的手写数字识别 多层感知器的模型如下,其具有一层影藏层 x_test, y_test) # 从Keras导入Mnist数据集 (x_train, y_train), (x_validation, y_validation) = loadData() # 显示4张手写数字图片 >..] - 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
  • 来自专栏longchen的专栏

    用TensorFlow进行手写数字识别

    对于人类来说,识别手写数字是一件非常容易的事情。我们甚至不用思考,就可以看出下面的数字分别是5,0,4,1。 但是想让机器识别这些数字,则要困难得多。 为了找到识别手写数字的方法,机器学习界的大师Yann LeCun利用NIST(National Institute of Standards and Technology 美国国家标准技术研究所)的手写数字库构建了一个便于机器学习研究的子集 MNIST由70000张手写数字(0~9)图片(灰度图)组成,由很多不同的人写成,其中60000张是训练集,另外10000张是测试集,每张图片的大小是28 x 28像素,数字的大小是20 x 20,位于图片的中心 更详细的信息可以参考Yann LeCun的网站:http://yann.lecun.com/exdb/mnist/ 已经有很多研究人员利用该数据集进行了手写数字识别的研究,也提出了很多方法,比如KNN、 抛开这些研究成果,我们从头开始,想想怎样用机器学习的方法来识别这些手写数字。因为数字只包含0~9,对于任意一张图片,我们需要确定它是0~9中的哪个数字,所以这是一个分类问题。

    6.7K01发布于 2017-04-12
  • 来自专栏全栈程序员必看

    knn算法实现手写数字识别的背景_knn手写数字识别60000训练集

    下面的是KNN案例的应用:手写数字识别。 我这里的案例是文本格式。没有图片转换的步骤。 素材模型:(源码+素材最后会贴上githup的链接) KNN 手写数字识别 实现思路: 将测试数据转换成只有一列的0-1矩阵形式 将所有(L个)训练数据也都用上方法转换成只有一列的0-1矩阵形式 #1934个训练集 ## print(len(test)) #945个测试集 trainingDigits =r'D:\work\日常任务6机器学习\day2手写数字识别 \trainingDigits' testDigits = r'D:\work\日常任务6机器学习\day2手写数字识别\testDigits' ## 返回出现频次最高的类别 第五步: 编写识别函数: def shibie(): ## 定义一个识别手写数字的函数

    1.4K40编辑于 2022-10-05
  • 来自专栏计算机工具

    手写数字识别之损失函数

    手写数字识别之损失函数 我们继续将“横纵式”教学法从横向展开,如 图1 所示,探讨损失函数的优化对模型训练效果的影响。 我们以房价预测和手写数字识别两个任务为例,详细剖析其中的缘由如下: 房价预测是回归任务,而手写数字识别是分类任务,使用均方误差作为分类任务的损失函数存在逻辑和效果上的缺欠。 房价可以是大于0的任何浮点数,而手写数字识别的输出只可能是0~9之间的10个整数,相当于一种标签。 图3 是一个三个标签的分类模型(三分类)使用的Softmax输出层,从中可见原始输出的三个数字3、1、-3,经过Softmax层后转变成加和为1的三个概率值0.88、0.12、0。 交叉熵的代码实现 在手写数字识别任务中,仅改动三行代码,就可以将在现有模型的损失函数替换成交叉熵(Cross_entropy)。

    31710编辑于 2024-12-14
  • 来自专栏人工智能与演化计算成长与进阶

    Tensorflow MNIST CNN 手写数字识别

    test_labels = mnist.test.labels # print(train_labels.shape) # (55000,) # print(train_labels[0:10]) # [7 3 tf.nn.sparse_softmax_cross_entropy_with_logits(logits=model_output, labels=y_target)) # 构造预测函数,通过输出预测是属于哪个数字分类 = train_xdata[rand_index] # 从train_xdata数据中取出[rand_index]索引的图片 rand_x = np.expand_dims(rand_x, 3) temp_train_preds, axis=1)[0:6] # 表示返回0~6个temp_train_preds中第一维数据中最大值所在位置 # print(predictions)[8 6 8 2 3 0] images = np.squeeze(rand_x[0:6]) # 降维度,只保留有用的数据信息 Nrows = 2 Ncols = 3 fig = plt.figure() # 设置一个大的

    88240发布于 2020-08-14
领券