首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏杨熹的专栏

    TensorFlow -2: 用 CNN 识别数字

    本文结构: CNN 建立模型 code 昨天只是用了简单的 softmax 做数字识别,准确率为 92%,这个太低了,今天用 CNN 来提高一下准确率。 ='SAME') # 定义 pooling 图层 def max_pool_2x2(x): # stride [1, x_movement, y_movement, 1] # 用pooling对付跨步大丢失信息问题 return tf.nn.max_pool(x, ksize=[1,2,2,1], strides=[1,2,2,1], padding='SAME' = bias_variable([64]) # 构建第二个convolutional层 h_conv2 = tf.nn.relu(conv2d(h_pool1, W_conv2) + b_conv2) # output size 14x14x64 # 经过pooling后,长宽缩小为7x7 h_pool2 = max_pool_2x2(h_conv2)

    2.8K01发布于 2017-07-31
  • 来自专栏杨熹的专栏

    TensorFlow-2: 用 CNN 识别数字

    ---- 本文结构: CNN 建立模型 code ---- 昨天只是用了简单的 softmax 做数字识别,准确率为 92%,这个太低了,今天用 CNN 来提高一下准确率。 ='SAME') # 定义 pooling 图层 def max_pool_2x2(x): # stride [1, x_movement, y_movement, 1] # 用pooling对付跨步大丢失信息问题 return tf.nn.max_pool(x, ksize=[1,2,2,1], strides=[1,2,2,1], padding='SAME') = bias_variable([64]) # 构建第二个convolutional层 h_conv2 = tf.nn.relu(conv2d(h_pool1, W_conv2) + b_conv2) # output size 14x14x64 # 经过pooling后,长宽缩小为7x7 h_pool2 = max_pool_2x2(h_conv2)

    67250发布于 2018-04-03
  • 来自专栏叶子陪你玩编程

    数字识别

    上篇的内容最后一个案例代码,其实来自官方的手写数字识别案例教程,我自己基于里面的内容自己删减了一些。 这里主要讲一下里面的数据集,sklearn自带了很多数据集,在安装包的data里面,就有手写数字识别数据集。 虽说是数字识别,不过这个数据集里面并没有实际图片。 ,不过识别前都会通过测试数据测试一下,先看看准确率怎么样,确定效果还不错,就可以用来测试没有见过的数字图片了。 # 预测一张新图片 img = cv2.imread('1.jpg') img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) img = cv2.resize(img 2.从图片文件夹中将所有数字图片读取出来 这里只是做了数字图片的读取,所以只能识别数字。 3.定义一个单张图片匹配的方法。

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

    基于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% 三、基于卷积神经网络的手写数字识别 (32, (5, 5), input_shape=(1, 28, 28), activation='relu')) model.add(MaxPooling2D(pool_size=(2, 2))) model.add

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

    百度指数之图像数字识别2

    上次发了篇运用selenium自动截取百度指数并识别的文章,点这里《抓取百度指数引发的图像数字识别》,其实感觉也是有些投机取巧的意思在里面,而且正如大家所知,用selenium比较吃内存,而且因为要渲染网页 ,那么我们看下这个文件: 这里同样需要res、res2,头疼!!! 各位观众老爷,我对不住你们,我翻看了网页上很多js脚本,没能破解出这个res、res2,这里先当我欠你们的,以后一定还,好不好。 这里随便找张图片看看: 裁剪 拼接 最后一部分就是图像识别了,和之前一样,我们还是使用pytesseract识别。 我们先把图像放大2倍,再识别,并对识别结果容易发生错误的部分进行了修正,一起来看看最后的结果图吧。

    1.9K60发布于 2018-01-12
  • 来自专栏全栈程序员必看

    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… ) (1, 2, 3…) (1,2,3...)这样形式,无法使用交叉熵的方式进行衡量,所以先进行一次处理,举个例子就是,对于一个向量 ( 1 , 2 , , 3 ) (1, 2, ,3) ( e^{2}+e^{3}}) (e1+e2+e3e1​,e1+e2+e3e2​,e1+e2+e3e3​),这样就成为一个概率分布,方便接下来计算交叉熵了。

    3.4K30编辑于 2022-08-01
  • 来自专栏.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像素的灰度手写数字图片 type Markdown and LaTeX: α2α2 直接下载得到的数据集是无法通过普通的解压或者应用程序打开的,因为这些文件不是任何标准的图像格式而是以字节的形式进行存储的,所以必须编写相关程序将其打开 ), torch.nn.ReLU(), torch.nn.MaxPool2d(kernel_size=2), ) # 第二层卷积核维度是 2.

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

    KNN 手写数字识别

    图片:32*32像素 黑白图像 编码 一个 3232 二进制图像矩阵 转为 1 1024 的向量 # 32*32 图像矩阵 -> 1*1024 向量 def img2vector(filename): [0] # (以下三行)距离计算 diffMat = tile(inX, (dataSetSize, 1)) - dataSet sqDiffMat = diffMat ** 2 (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] # 第一个数字是类别

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

    Softmax 识别手写数字

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

    2.6K40发布于 2019-05-26
  • 来自专栏TensorFlow2 开发指南

    TensorFlow2 开发指南 | 01 手写数字识别快速入门

    所以,这个专栏我将专门分享TensorFlow2的学习过程,力争打造一个的轻松的TensorFlow2入门学习教程,想学习的小伙伴可以关注我的动态! (2)TensorFlow2 新亮相 由于 TensorFlow1 接口设计频繁变动,功能设计重复冗余,符号式编程开发和调试非常困难等问题,TensorFlow 1.x 版本一度被业界诟病。 TensorFlow 2 是一个与 TensorFlow 1.x 使用体验完全不同的框架,TensorFlow 2 不兼容 TensorFlow 1.x 的代码,同时在编程风格、函数接口设计等上也大相径庭 (3)TensorFlow 2 与 Keras 的区别 TensorFlow 2 与 Keras 之间既有联系又有区别。 详细的安装教程可参见我之前的记录:Anaconda3+tensorflow2.0.0+PyCharm安装与环境搭建 三、面对初学者的快速入门 为了大家更快的入门,下面我将展示一个简单的入门案例——用TensorFlow2实现手写数字识别

    1.4K41发布于 2020-10-22
  • 来自专栏企鹅号快讯

    PaddlePaddle之手写数字识别

    ,最简单的安装方式就是: CPU版本安装 pip install paddlepaddle GPU版本安装 pip install paddlepaddle-gpu 用PaddlePaddle实现手写数字识别 pool_stride=2, act=paddle.activation.Relu()) # 第二层卷积层 conv_pool_2 = paddle.networks.simple_img_conv_pool pool_stride=2, act=paddle.activation.Relu()) # 第二层卷积层 conv_pool_2 = paddle.networks.simple_img_conv_pool pool_stride=2, act=paddle.activation.Relu()) # 加一层dropout层 drop_2 = paddle.layer.dropout 这次训练的手写数字识别数据量比较小,但是如果想要添加数据,也非常方便,直接添加到相应目录下。 2.event_handler机制,可以自定义训练结果输出内容。

    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) # 二值化,不影响数字显示 0. 9. ..., 3. 9. 2.] 画一个像素图片数字,第二个图片,上面预测是0 from PIL import Image import numpy as np import matplotlib.pyplot as plt import csv test1 = test[1] test2 = [] for el in test1: test2.append([0,0,el]) img = np.array(test2) print

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

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

    文章分类在Pytorch: Pytorch(1)---《pytorch实现 --- 手写数字识别》 pytorch实现 --- 手写数字识别 1.项目介绍 使用pytorch实现手写数字识别 2.实现方法 2.1方式1 安装库: pip install numpy torch torchvision matplotlib 运行: python test.py 首次运行会下载 MNIST数据集,请保持网络畅通 2.2方式2 如果使用pycharm,已经安装好了pytorch环境,那么直接在pytorch环境中运行下面这份代码就好。 3.程序代码 """手写数字识别项目 时间:2023.11.6 环境:pytorch 作者:Rainbook """ import torch from torch.utils.data __init__() self.fc1 = torch.nn.Linear(28*28, 64) # 输入层输入28*28,输出64 self.fc2 = torch.nn.Linear

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

    Digit Recognizer 手写数字识别

    1. Baseline 读取数据 import pandas as pd train = pd.read_csv('train.csv') X_test = pd.read_csv('test.csv

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

    手写体数字识别

    from time import time import matplotlib.pyplot as plt import tensorflow.compat.v1 as tf tf.disable_v2_ None,784]) # 隐藏层h1 h1=fcn_layer(output_dim=256,input_dim=784,inputs=x ,activation=tf.nn.relu) # 隐藏层h2 h2=fcn_layer(output_dim=256,input_dim=256,inputs=h1,activation=tf.nn.relu) pred=fcn_layer(output_dim loss)," Accuracy=","{:.4f}".format(acc)) duration=time()-startTime print("Train Finished takes:","{:.2f 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 matplotlib.pyplot as plt from PIL import Image from ld_mnist import load_digits %matplotlib inline 2 , x_test, y_test = mnist.train.images, mnist.train.labels, mnist.test.images, mnist.test.labels 展示手写数字 = {} for i in range(x_test.shape[0]): dis1 = x_train - x_test[i] dis2 = np.sqrt(np.sum(dis1*dis1, axis=1)) distance[str(i)] = np.argsort(dis2)[:self.k]

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

    MNIST__数字识别__SOFTMAX

    本次MNIST的手写数字识别未采用input_data.py文件,想尝试一下用原始的数据集来运行这个DEMO。 例如:图片上的数字和标签的值是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.输出识别率 contants.read() magic,num = struct.unpack_from('>II', data_buffers, 0) # 读取label文件前2个整形数字 可又说不上来~ 参考资料: ONE-HOT使用体会 : https://blog.csdn.net/lanhaier0591/article/details/78702558 训练Tensorflow识别手写数字

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

    识别手绘数字图像

    1 问题 初学机器学习,第一步是做一个简单的手写数字识别,我选用的是MNIST数据集。 2 方法 为了验证我的解析结果是否正确,我把解析出的图片进行了保存,然后处理的是保存后的图片,其实不保存就可以,解析出来直接用,反而会节省很多步骤。 直接上代码 3 结语 这次实验我们深入了解和扩展了一些关于手写数字的步骤和方法,在我第一次运行花费了挺多的时间,运行完一次我再也不想运行了,心疼我电脑……初学者,不足之处甚多,恳请批评指正。

    41910编辑于 2023-08-22
领券