企业建设网站好吗,网站首页被k 内页还有,罗岗网站建设哪家好,h5编辑器有哪些软件一、前言
该文章仅作为个人学习使用
二、正文
项目源代码#xff1a;深度学习项目 - 使用 Python 进行手写数字识别 - DataFlair (data-flair.training)
数据集#xff1a;https://drive.google.com/open?id1hJiOlxctFH3uL2yTqXU_1f6c0zLr8V_K
Python 深… 一、前言
该文章仅作为个人学习使用
二、正文
项目源代码深度学习项目 - 使用 Python 进行手写数字识别 - DataFlair (data-flair.training)
数据集https://drive.google.com/open?id1hJiOlxctFH3uL2yTqXU_1f6c0zLr8V_K
Python 深度学习项目 为了让机器更智能开发人员正在深入研究机器学习和深度学习技术。一个人通过一次又一次地练习和重复任务来学习执行任务以便记住如何执行任务。然后他大脑中的神经元自动触发它们可以快速执行他们学到的任务。深度学习也与此非常相似。它使用不同类型的神经网络架构来解决不同类型的问题。例如物体识别、图像和声音分类、物体检测、图像分割等。 什么是手写数字识别 手写数字识别是计算机识别人类手写数字的能力。对于机器来说这是一项艰巨的任务因为手写数字并不完美可以制作成许多不同的口味。手写数字识别是这个问题的解决方案它使用数字的图像并识别图像中存在的数字。 关于 Python 深度学习项目 在本文中我们将使用 MNIST 数据集实现一个手写数字识别应用程序。我们将使用一种特殊类型的深度神经网络即卷积神经网络。最后我们将构建一个 GUI您可以在其中绘制数字并立即识别它。 先决条件 有趣的 Python 项目需要您具备 Python 编程的基础知识、使用 Keras 库进行深度学习以及用于构建 GUI 的 Tkinter 库。 使用以下命令安装此项目所需的库 pip 安装 numpy、tensorflow、keras、pillow、 MNIST数据集 这可能是机器学习和深度学习爱好者中最受欢迎的数据集之一。MNIST 数据集包含 60,000 张从 0 到 9 的手写数字训练图像和 10,000 张用于测试的图像。因此MNIST 数据集有 10 个不同的类。手写数字图像表示为 28×28 矩阵其中每个单元格都包含灰度像素值。 下载项目的完整源代码 构建基于手写数字识别的Python深度学习项目 以下是实施手写数字识别项目的步骤 1. 导入库并加载数据集 首先我们要导入训练模型所需的所有模块。Keras库已经包含了一些数据集MNIST就是其中之一。因此我们可以轻松地导入数据集并开始使用它。mnist.load_data 方法向我们返回训练数据、标签以及测试数据和标签。 导入 Keras 来自Keras。数据集导入 MNIST 来自Keras。模型导入顺序 来自Keras。图层导入 Dense、Dropout、Flatten 来自Keras。图层导入 Conv2D、MaxPooling2D 从 keras 导入后端作为 K # 数据在训练集和测试集之间拆分 (x_train y_train x_test y_test mnist.load_data() 打印x_train.形状y_train。形状) 2. 预处理数据 图像数据不能直接输入到模型中因此我们需要执行一些操作并处理数据以便为我们的神经网络做好准备。训练数据的维度为 60000,28,28。CNN 模型将需要一个维度因此我们将矩阵重塑为 shape 60000,28,28,1。 x_train x_train。重塑x_train。形状[0] 28 28 1) x_test x_test。重塑x_test。形状[0] 28 28 1) input_shape 28 28 1) # 将类向量转换为二进制类矩阵 y_train keras。utils。to_categoricaly_train num_classes) y_test keras。utils。to_categoricaly_test num_classes) x_train x_train。astypefloat32) x_test x_test。astypefloat32) x_train / 255 x_test / 255 printx_train形状 x_train.形状) 打印x_train.shape[0] 训练样本) 打印x_test。shape[0] 测试样本) 3. 创建模型 现在我们将在 Python 数据科学项目中创建 CNN 模型。CNN 模型通常由卷积层和池化层组成。它适用于表示为网格结构的数据这就是 CNN 在图像分类问题中效果不佳的原因。dropout 层用于停用一些神经元在训练时它会减少模型的拟合。然后我们将使用 Adadelta 优化器编译模型。 batch_size 128 num_classes 10 纪元 10 model 顺序() 型。addConv2D32 kernel_size3 3activationreluinput_shapeinput_shape)) 型。addConv2D64 3 3 activationrelu)) 型。addMaxPooling2Dpool_size2 2))) 型。加辍学0.25)) 型。添加展平()) 型。addDense256 activationrelu)) 型。添加辍学0.5)) model.add(Dense(num_classes, activationsoftmax)) model.compile(losskeras.losses.categorical_crossentropy,optimizerkeras.optimizers.Adadelta(),metrics[accuracy]) 4. 训练模型 Keras 的 model.fit 函数将开始模型的训练。它采用训练数据、验证数据、epoch 和批量大小。 训练模型需要一些时间。训练后我们将权重和模型定义保存在“mnist.h5”文件中。 hist 模型。fitx_train y_trainbatch_sizebatch_sizeepochsepochsverbose1validation_datax_test y_test)) print“模型已成功训练”) 型。保存mnist.h5) print“将模型另存为 mnist.h5”) 5. 评估模型 我们的数据集中有 10,000 张图像这些图像将用于评估我们的模型的工作情况。测试数据没有参与数据的训练因此它是我们模型的新数据。MNIST数据集平衡性很好因此我们可以获得大约99%的准确率。 分数 模型。evaluatex_test y_test verbose0) print测试损失 score[0]) print测试精度 score[1]) 6. 创建 GUI 以预测数字 现在对于 GUI我们创建了一个新文件在其中我们构建了一个交互式窗口用于在画布上绘制数字并且通过一个按钮我们可以识别数字。Tkinter 库位于 Python 标准库中。我们创建了一个函数 predict_digit它将图像作为输入然后使用经过训练的模型来预测数字。 然后我们创建 App 类该类负责为我们的应用程序构建 GUI。我们创建一个画布可以通过捕获鼠标事件来绘制并使用一个按钮触发 predict_digit 函数并显示结果。 以下是我们gui_digit_recognizer.py文件的完整代码 来自Keras。模型导入load_model 从 tkinter 导入* 将 tkinter 导入为 tk 导入 Win32GUI 从 PIL 导入 ImageGrab 图像 将 numpy 导入为 np 模型 load_modelmnist.h5) 定义 predict_digitimg #resize 图像到 28x28 像素 img img。调整大小28,28)) #convert RGB 到灰度 img img。convertL) img np。阵列img) #reshaping 支持我们的模型输入和归一化 img img。重塑1,28,28,1 ) img img/255.0 #predicting 课程 res 模型。预测[img][0] 返回 NP。argmaxres maxres) 类 Apptk.Tk def __init__个体经营 传统知识。Tk。__init__自行) 自我。x 自我。y 0 # 创建元素 自我。帆布 TK。Canvasself width300 height300 bg “白色” cursor“cross”) 自我。标签 TK。Labelself text“思考..” font“Helvetica” 48)) 自我。classify_btn 传统知识。Buttonself text “识别” command self.classify_handwriting) 自我。button_clear TK。Buttonself text “清除” command self.clear_all) # 网格结构 自我。帆布。gridrow0 column0 pady2 stickyW ) 自我。标签。gridrow0 column1pady2 padx2) 自我。classify_btn.gridrow1 column1 pady2 padx2) 自我。button_clear.gridrow1 column0 pady2) #self.canvas.bind“运动” self.start_pos 自我。帆布。bind“B1-Motion” 自身。draw_lines) def clear_all个体经营 自我。帆布。delete“全部”) def classify_handwriting个体经营 HWND 自身。帆布。winfo_id # 获取画布的手柄 矩形 Win32GUI。GetWindowRectHWND # 获取画布的坐标 im 图像抓取。抓取矩形) 数字acc predict_digitim) 自我。标签。configuretext strdigit strintacc*100))%) def draw_linesself event 自我。x 事件。倍 自我。y 事件。y r8 自我。帆布。create_oval自。X-R 自身。Y-R 自我。x r 自我。y r fill黑色) app 应用() 主环路() 截图 三、总结 在本文中成功地在手写数字识别应用程序上构建了一个 Python 深度学习项目。已经构建并训练了卷积神经网络该网络对于图像分类目的非常有效。稍后我们构建 GUI在画布上绘制一个数字然后对数字进行分类并显示结果。
文章转载自: http://www.morning.bchhr.cn.gov.cn.bchhr.cn http://www.morning.rqnhf.cn.gov.cn.rqnhf.cn http://www.morning.seoqun.com.gov.cn.seoqun.com http://www.morning.kxqmh.cn.gov.cn.kxqmh.cn http://www.morning.rongxiaoman.com.gov.cn.rongxiaoman.com http://www.morning.bpmfr.cn.gov.cn.bpmfr.cn http://www.morning.hrtwt.cn.gov.cn.hrtwt.cn http://www.morning.txqsm.cn.gov.cn.txqsm.cn http://www.morning.fmjzl.cn.gov.cn.fmjzl.cn http://www.morning.owenzhi.com.gov.cn.owenzhi.com http://www.morning.xkyfq.cn.gov.cn.xkyfq.cn http://www.morning.qnrpj.cn.gov.cn.qnrpj.cn http://www.morning.knsmh.cn.gov.cn.knsmh.cn http://www.morning.xtyyg.cn.gov.cn.xtyyg.cn http://www.morning.krkwp.cn.gov.cn.krkwp.cn http://www.morning.tturfsoc.com.gov.cn.tturfsoc.com http://www.morning.xtqld.cn.gov.cn.xtqld.cn http://www.morning.wbysj.cn.gov.cn.wbysj.cn http://www.morning.lpzyq.cn.gov.cn.lpzyq.cn http://www.morning.hsgxj.cn.gov.cn.hsgxj.cn http://www.morning.bswxt.cn.gov.cn.bswxt.cn http://www.morning.kzdwt.cn.gov.cn.kzdwt.cn http://www.morning.kyctc.cn.gov.cn.kyctc.cn http://www.morning.jjzxn.cn.gov.cn.jjzxn.cn http://www.morning.fbpyd.cn.gov.cn.fbpyd.cn http://www.morning.cnprt.cn.gov.cn.cnprt.cn http://www.morning.darwallet.cn.gov.cn.darwallet.cn http://www.morning.tqdlk.cn.gov.cn.tqdlk.cn http://www.morning.rykmz.cn.gov.cn.rykmz.cn http://www.morning.ywndg.cn.gov.cn.ywndg.cn http://www.morning.niukaji.com.gov.cn.niukaji.com http://www.morning.yppln.cn.gov.cn.yppln.cn http://www.morning.rfrx.cn.gov.cn.rfrx.cn http://www.morning.qnbsx.cn.gov.cn.qnbsx.cn http://www.morning.ngkgy.cn.gov.cn.ngkgy.cn http://www.morning.rdkgw.cn.gov.cn.rdkgw.cn http://www.morning.wqrk.cn.gov.cn.wqrk.cn http://www.morning.dmldp.cn.gov.cn.dmldp.cn http://www.morning.dpmkn.cn.gov.cn.dpmkn.cn http://www.morning.rkxk.cn.gov.cn.rkxk.cn http://www.morning.xmrmk.cn.gov.cn.xmrmk.cn http://www.morning.pffqh.cn.gov.cn.pffqh.cn http://www.morning.sqgqh.cn.gov.cn.sqgqh.cn http://www.morning.mszls.cn.gov.cn.mszls.cn http://www.morning.zdhxm.com.gov.cn.zdhxm.com http://www.morning.ljhnn.cn.gov.cn.ljhnn.cn http://www.morning.rmmz.cn.gov.cn.rmmz.cn http://www.morning.kybpj.cn.gov.cn.kybpj.cn http://www.morning.hyxwh.cn.gov.cn.hyxwh.cn http://www.morning.rhqn.cn.gov.cn.rhqn.cn http://www.morning.pzjrm.cn.gov.cn.pzjrm.cn http://www.morning.heleyo.com.gov.cn.heleyo.com http://www.morning.mgfnt.cn.gov.cn.mgfnt.cn http://www.morning.lrylj.cn.gov.cn.lrylj.cn http://www.morning.kjxgc.cn.gov.cn.kjxgc.cn http://www.morning.mqbdb.cn.gov.cn.mqbdb.cn http://www.morning.wmqrn.cn.gov.cn.wmqrn.cn http://www.morning.ztcxx.com.gov.cn.ztcxx.com http://www.morning.qmpbs.cn.gov.cn.qmpbs.cn http://www.morning.dgsr.cn.gov.cn.dgsr.cn http://www.morning.tgpgx.cn.gov.cn.tgpgx.cn http://www.morning.vjwkb.cn.gov.cn.vjwkb.cn http://www.morning.hxwrs.cn.gov.cn.hxwrs.cn http://www.morning.rxzcl.cn.gov.cn.rxzcl.cn http://www.morning.rzsxb.cn.gov.cn.rzsxb.cn http://www.morning.jpkhn.cn.gov.cn.jpkhn.cn http://www.morning.gblrn.cn.gov.cn.gblrn.cn http://www.morning.qsy37.cn.gov.cn.qsy37.cn http://www.morning.nynyj.cn.gov.cn.nynyj.cn http://www.morning.jygsq.cn.gov.cn.jygsq.cn http://www.morning.rhwty.cn.gov.cn.rhwty.cn http://www.morning.jppb.cn.gov.cn.jppb.cn http://www.morning.bqyb.cn.gov.cn.bqyb.cn http://www.morning.gjzwj.cn.gov.cn.gjzwj.cn http://www.morning.rblqk.cn.gov.cn.rblqk.cn http://www.morning.rqgbd.cn.gov.cn.rqgbd.cn http://www.morning.jfjpn.cn.gov.cn.jfjpn.cn http://www.morning.djpzg.cn.gov.cn.djpzg.cn http://www.morning.hqrkq.cn.gov.cn.hqrkq.cn http://www.morning.kqlrl.cn.gov.cn.kqlrl.cn