清华青年AI自强作业hw3_1:用线性回归模型拟合MNIST手写数字分类

news2024/11/17 6:27:58

清华青年AI自强作业hw3_1:用线性回归模型拟合MNIST手写数字分类

    • 实现过程
      • 思路分析
      • 逻辑回归二分类模型
      • 训练结果分析
    • 相关链接

在这里插入图片描述

一起学AI系列博客:目录索引

hw3_1:用线性回归模型拟合MNIST手写数字分类

  • 初步体验Tensorflow编程环境
  • 体会用回归模型网络拟合效果

实现过程


尝试后发现hw3_1/hw3_3的参考代码为TF1.x框架代码,升级到TF2.x框架多为不便(升级踩坑记录),于是采用TF2.x中的keras框架重新写了一遍。

思路分析

  1. 先学习参考代码的框架思路
  2. 研究MNIST的Keras训练流程
  3. 进行改造和适配完成本次任务

逻辑回归二分类模型

  1. 核心思路
    1. 用逻辑回归的二分类模型分别训练十个模型,分别处理0-9的分类
  2. MNIST数据预处理(load)
    1. 读取MNIST数据,调整处理成网络能接受的batch切分,训练集、测试集划分,标签匹配
  3. 模型训练过程(train)
    1. 模型搭建
      1. 模型为WX+B,第一层为输入层(784个神经元),第二层为输出层(1个神经元),二分类逻辑回归
      2. 单个类别神经网络层数设置、学习率、梯度下降方法、loss设置
      3. 保存每个batch的model参数,并获取测试集上的最新识别率,此时不开启反向传播更新参数
    2. 模型训练
      1. 前向推理与模型参数更新
      2. 按规律预测测试集的精度
  4. 模型推理过程(predict)
    1. 在测试集上验证预测精度
  5. 关键点
    1. 涉及到数据标签的one-hot编码理解

训练结果分析

从训练结果来看,用60000张图片训练图片得到的模型,再用10000张测试图片来评估,该模型预测正确率仅:18.97%,可见此模型设计是不合理的,太过简单,不能很好地表征该复杂任务。下一篇博客将对此模型进行改进,加深网络,便会得到很好的效果。

相应实现源码见代码仓:https://github.com/ioMayday/Tsinghua_Youth_AI/tree/master/homework。

参考资料

  1. https://github.com/AnkushMalaker/TF2-MNIST

  2. MNIST classification with TF2.0 Keras,link

  3. TF2.0的安装与MNIST手写识别的实现,link

  4. 手把手教程:深度学习入门项目MNIST手写数字分类任务,Pytorch实现

相关链接


  1. 文科生都能零基础学AI?清华这门免费课程让我信了,link
  2. 清华青年AI自强作业2:线性回归预测,link
  3. 清华青年AI自强作业hw3_2:前向传播和反向传播实战,link

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/661518.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HDLBits自学笔记2:Verilog language.Vector

Vectors 建立一个电路,有一个3bit输入,输出这个向量,并将其分割为三个单独的1bit信号输出,电路图如下: module top_module ( input wire [2:0] vec,output wire [2:0] outv,output wire o2,output wire o1,output wir…

【30天熟悉Go语言】8 Go流程控制之循环结构for range、goto、break、continue

文章目录 一、前言二、for循环1、语法1)和Java的for循环一样2)和Java的while一样3)和Java的for(;;)一样 2、for语句执行过程 三、for range1、语法1)遍历key、value只遍历value 2)遍历key 四、关键字1、break1&#xf…

【Rust日报】2023-06-18 2023第三届中国Rust开发者大会圆满结束

2023第三届中国Rust开发者大会 发布 Mailtutan v0.3.0 - 用于测试和开发环境的 SMTP 服务器 变更日志: 添加数据修剪支持添加邮件目录存储向 API 添加删除消息添加 TLS 支持添加 SMTP 普通身份验证支持 github: https://github.com/mailtutan/mailtutan/ Kani 0.30.…

测试工程师个人简历模板

测试工程师个人简历模板篇1 姓 名: _x 性 别: 男 婚姻状况: 已婚 民 族: 汉族 户 籍: 湖南-岳阳 年 龄: 27 现所在地: 广东-深圳 身 高: 176cm 希望地区: 广东、 广…

Q-learning解决悬崖问题

Q-learning是一个经典的强化学习算法,是一种基于价值(Value-based)的算法,通过维护和更新一个价值表格(Q表格)进行学习和预测。 Q-learning是一种off-policy的策略,也就是说,它的行动策略和Q表格的更新策略是不一样的。 行动时&am…

vue2和vue3组件v-model区别

前言 单向数据流,父组件传给子组件的数据,子组件只能展示,不能修改,如果需要修改则需要emit事件让父组件修改 有些时候,一些组件并不是通过input来进行触发事件。也就是说value和input事件在大多数情况下能够适用&am…

ROS2性能分析

文章:Performance Analysis of ROS2 作者:Deepak Charan Logavaseekaran, Rakshith Macha Billava 编辑:点云PCL 欢迎各位加入知识星球,获取PDF论文,欢迎转发朋友圈。文章仅做学术分享,如有侵权联系删文。未…

3-dubbo框架,应用程序,模块领域模型Model对象的初始化

在上一章中我们详细看了服务配置ServiceConfig类型的初始化,不过我们跳过了AbstractMethodConfig的构造器中创建模块模型对象的过程 那为什么会在Dubbo3的新版本中加入这个域模型呢,主要有如下原因 之前dubbo都是只有一个作用域的,通过静态类 属性共享 增加域模型是…

MacBook充电限制工具AlDente Pro

AlDente Pro是一款适用于Mac操作系统的小工具,可以帮助您限制电池充电量以延长电池寿命。通常情况下,电池在充满的状态下会继续接受电源充电,这可能会导致电池寿命缩短。使用AlDente Pro,您可以设置电池只充到特定的充电水平&…

使用omp并行技术实现快排加速

快排基本原理: 快速排序可以说是最为常见的排序算法,冒泡排序时间复杂度达到了O(N2),而桶排序容易造成浪费空间。快排(Quicksort)就成为了不错的选择。 1、原理:快排需要找一个数作…

【Nexus】上传jar至Nexus的两种方式

目录 一、前言二、pom文件添加推送代码配置1、配置pom.xml文件2、配置maven的settings.xml文件3、执行上传①、点击Maven-Lifecycle-deploy-Run Maven Build②、出现以下提示则上传成功③、这时,在Nexus的nexus-snapshot-hosted(快照类型的托管资源库&am…

【Python】函数进阶 ③ ( 函数作为参数传递 )

文章目录 一、函数参数传递类型二、代码示例 - 函数参数传递类型 一、函数参数传递类型 之前介绍的函数 , 都是 接收具体的 变量 或 字面量 数据 作为参数 , 如 : 数字 / 布尔值 / 字典 / 列表 / 元组 等 ; 函数 也可以作为参数 , 传入另一个函数中 ; 在 Python 中&#xff0…

主成分分析——SPSS实例分析

主成分分析是用原始变量的线性组合来表示主成分,且主成分彼此之间互不相关,且能反映出原始数据的绝大部分信息。 一般来说,当研究的问题涉及到多变量且变量之间存在很强的相关性时,我们可考虑使用主成分分析的方法来对数据进行简化…

智能的突破或许在智能之外

人工智能已经取得了不少令人瞩目的成果,但是仍然存在着许多问题和挑战,这些问题和挑战也许只能通过跨学科的合作和人类的智慧来解决,因此智能的突破在智能之外。在人工智能的决策过程中,往往会缺乏人类的道德判断和社会责任感&…

2018年全国硕士研究生入学统一考试管理类专业学位联考英语(二)试题

2018 年全国硕士研究生入学统一考试 管理类专业硕士学位联考 英语(二)试卷 考生须知 1.考生必须严格遵守各项考场规则。 2.答题前,考生将答题卡上的“姓名”、“考生编号”等信息填写清楚,并与准考证上的致…

【SpringCloud】Eureka 案例上手稍微带点原理

文章目录 1. 前置工作1.1 搭建 user-server1.1.1 pom1.1.2 po,mapper,controller1.1.3 yml1.1.4 启动类1.1.5 启动并访问 1.2 搭建 order-server1.2.1 pom1.2.2 po mapper controller1.2.3 yml1.2.4 启动类1.2.5 启动并访问 1.3 两个服务通信 2. Eureka2…

Qt Xml的读、写、修改、删除

一、说明 Xml文件的创建、读取、修改、删除以下图格式为例。 二、导入xml QT core gui xml三、创建Xml void MainWindow::Xml_Write(QString path) {//! 打开或创建文件QFile file(path);if(!file.open(QIODevice::WriteOnly | QIODevice::Truncate)) return; //! …

【MySQL篇】Select语句原理详解

文章目录 MYSQL体系结构模块详解架构分层连接层服务层存储引擎 SQL的执行流程连接查询缓存语法解析和预处理词法解析语法分析预处理器 查询优化器执行计划存储引擎存储引擎基本介绍如何选择存储引擎? 执行引擎举例说明 对于一个开发工程师来说,了解一下 …

C语言读写ini配置文件

环境 windows 10 64bitClion 2023.1 ini简介 ini 文件格式是一种用于保存配置信息的简单文本格式。它通常由多个节(section)组成,每个节包含多个键值对(key-value pair)。 下面是 ini 文件的基本语法规则 一个ini文件由多个节组成,每个节用方括号([])括起…

《Java黑皮书基础篇第10版》 第17章【笔记】

第十七章 二进制I/O 17.1 引言 文件可以不严谨的分类为文本文件和二进制文件。文本文件指的是可以用文件编辑器进行查看和修改的,二进制文件则不可以使用文本编辑器查看和修改。 例如,Test.java文件储存在文本文件中,因此可以用文本编辑器…