- 博客(73)
- 收藏
- 关注
原创 Transformer注意力机制
Transformer是一种用于自然语言处理(NLP)和其他序列到序列(Seq2Seq)任务的深度学习模型框架,它在2017年由Vaswani等人首次提出。以下是Transformer的一些重要组件和特点。自注意力机制:这是Transformer的核心概念之一,它使模型能够同时考虑输入序列中的所有位置,而不是像循环神经网络(RNN)或卷积神经网络(CNN)一样逐步处理。自注意力机制允许模型根据输入序列中的不同部分来赋予不同的注意权重,从而更好地捕捉语义关系。多头注意力。
2024-07-16 16:46:02 1171
原创 卷积神经网络(CNN)经典模型分析(一)
卷积神经网络(convolutional neural network, CNN),是一种专门用来处理具有类似网格结构的数据的神经网络。卷积网络是指那些至少在网络的一层中使用卷积运算来替代一般的矩阵乘法运算的神经网络。
2023-02-19 14:57:18 1721 1
原创 LeNet5—论文及源码阅读
LeNet-5是一种经典的卷积神经网络结构,于1998年投入实际使用中。该网络最早应用于手写体字符识别应用中。普遍认为,卷积神经网络的出现开始于LeCun等提出的LeNet网络,可以说LeCun等是CNN的缔造者,而LeNet则是LeCun等创造的CNN经典之作。
2023-01-08 23:47:51 4832
原创 matlab画图(一、柱状图)
柱状图利用柱子的高度,反映数据的差异。肉眼对高度差异很敏感,辨识效果非常好。柱状图的局限在于只适用中小规模的数据集。
2022-10-18 17:49:04 37208 1
原创 基于C51的中断控制
中断是为使单片机具有对外部或内部随机发生的事件实时处理而设置的。单片机中断(Interrupt)是硬件驱动事件,它使得CPU暂停执行当前的主程序,转而去执行一个中断服务子程序。如果单片机没有中断系统,单片机的大量时间可能会浪费在是否有服务请求发生的定时查询操作上。采用中断技术完全消除了单片机在查询方式 中的等待现象,大大地提高了单片机的工作效率和实时性。............
2022-08-09 01:15:53 2140 1
原创 单片机常识篇
目前,在电子界,如果想进入微控制器领域的学习,相信绝大多数的人会 认为要从 51 单片机开始。在众多微控制器中,51 单片机确实是非常适 合初学者入门学习的,因此很有必要先认识和了解 51 单片机为后续对于单片机的系统性学习做好铺垫...
2022-08-07 00:05:41 5285
原创 基于C51实现按键控制
本实验基于STC89C52RC单片机,根据电路原理图编程通过独立按键控制led灯、通过矩阵按键控制开发板数码管模块。由于51系列单片机结构大同小异,读者可根据此博客举一反三,实现所需完成的功能。...
2022-07-30 22:35:58 5401 3
原创 基于C51实现数码管的显示
🐋 前言:本实验基于STC89C52RC单片机,根据电路原理图编程控制数码管的静态和动态显示。由于51系列单片机结构大同小异,读者可根据此博客举一反三,实现所需完成的功能。
2022-07-28 11:55:20 10558 1
原创 基于C51控制蜂鸣器
本实验基于STC89C52RC单片机,根据电路原理图编程控制蜂鸣器。由于51系列单片机结构大同小异,读者可根据此博客举一反三,实现所需完成的功能。
2022-07-26 10:17:07 9175 1
原创 基于C51实现led流水灯
🐋前言本实验基于STC89C52RC芯片集成的51单片机,根据电路原理图点亮led灯,同时实现led灯的走马灯效果。由于51系列单片机结构大同小异,读者可根据此博客举一反三,实现所需完成的功能
2022-07-24 22:31:26 8628 1
原创 基于springboot实现数据可视化
基于springboot框架,将excel表格中的数据提取出来,前端使用echarts框架,通过柱形图和饼状图对数据进行直观展示
2022-07-06 20:37:06 4372 2
原创 springboot验证码的生成与验证
🐋前言:在springboot的登陆页面中为了防止机器大规模注册,机器暴力破解数据密码等危害,需要验证随机生成的验证码。现提出两种简易方案生成验证码功能,一种采用springboot整合kaptcha第三方验证码生成工具的生成方案;另一种采用springboot整合第三方类库hutool生成验证码,验证成功跳转至success页面,失败则跳转false页面。......
2022-06-28 21:52:59 10434
原创 spring注解方式向IOC容器中注册组件
前言:为了简化开发的步骤和降低设计的耦合性,在spring框架中引入了IOC容器这一概念。IOC理论提出的观点大体是这样的:借助于"第三方"实现具有依赖关系的对象之间的解耦。因此,在spring中,对象的创建与赋值均借助于IOC容器由框架来实现。初始化时,我们将组件放置与IOC容器中儿不具体指定使用该组件的对象,当某一具体对象需要使用组件时,直接从容器中获取即可。......
2022-06-20 22:00:31 336
原创 Springboot入门小项目(CURD)
基于springboot与mybatis框架,实现简单的浏览器与mysql数据库进行数据交互的功能。包括文件的上传与springboot整合hutool第三方类库实现的验证码生成功能
2022-06-07 17:05:20 1607 1
原创 判断数字字符——Character.isDigit(char ch)实现源码详解
目录 函数的使用 使用场景 实现结果 源码分析 Character.isDigit(char ch)源码解析 Character.getType(int codePoint)源码解析 CharacterDataLatin1.getType(int codePoint)源码解析 总结函数的使用☀♫♪ 使用场景举例:返回字符串s中的所有数字之和。易知s中的数字分别为{3,2,3,5,3,5,2,0},其和为23s = " f3@$23%5Q3Zh5
2022-04-29 16:31:37 5358
原创 python实现游戏背景滚动(图片轮播)
目录 一.图片轮播 二.static修饰全局变量 三.static修饰函数一.python实现图片轮播1.1 轮播效果 图片轮播 1.2 静态局部变量(static)有时希望函数中的局部变量的值在函数调用后不会消失而继续保留原值,即其占用的存储单元不释放,在下一次再调用该函数的时候,该变量已有值就是上一次函数调用结束时的值,这时就应该指定该局部变量为“静态局部变量”,用
2022-04-17 17:01:33 6003 2
原创 C语言中static关键字的用法
一.static修饰局部变量1.1 自动变量(auto)函数中的局部变量,如果不声明为static(静态)存储类别,都是动态地分配存储空间,数据存储在动态存储区中。函数中的形参和函数中定义的局部变量,都属于此类。在调用自动变量所在函数时,系统会自动给这些变量分配存储空间,在函数调用结束时就自动释放这些存储空间。实际上,关键字“auto”可以省略,不写auto则隐含指定为“自动存储类别”1.2 静态局部变量(static)有时希望函数中的局部变量的值在函数调用后不会消失而继续保留原值,即其占用的存储单
2022-04-05 20:07:22 1252
原创 C语言中extern关键字用法
一. 修饰变量,作为外部变量声明一句话总结:扩充了全局变量的作用域,外部变量是在函数外部定义的全局变量,它的作用域是从变量的定义处开始,到本程序文件的末尾。如果外部变量不再文件的开头定义,其有效作用域只限于定义处到文件结束。在定义点之前的函数不能引用该外部变量。若在定义点之前的函数需要引用该外部变量,则需要在引用前用关键字extern对该变量作“外部变量声明”。代码验证如下:1.1 不使用extern修饰变量代码如下:#include <stdio.h>int main(){ int
2022-04-05 19:45:14 1759
原创 LeetCode合并二叉树
翻转二叉树LeetCode题目来源1.1 题目描述给你两棵二叉树: root1 和 root2 。想象一下,当你将其中一棵覆盖到另一棵之上时,两棵树上的一些节点将会重叠(而另一些不会)。你需要将这两棵树合并成一棵新二叉树。合并的规则是:如果两个节点重叠,那么将这两个节点的值相加作为合并后节点的新值;否则,不为 null 的节点将直接作为新二叉树的节点。返回合并后的二叉树。注意: 合并过程必须从两个树的根节点开始。1.2 示例2.1 解题2.1.1 解题方法:使用前序遍历基于树一递归建
2022-03-17 16:15:49 182 1
原创 LeetCode根据前序与中序、中序与后序,前序与后序遍历序列构建二叉树
从前序与中序遍历序列构建二叉树LeetCode题目来源1.1 题目描述给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节点。1.2 示例[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dS4hCIRQ-1647352399658)(![https://img-blog.csdnimg.cn/134b2747d754499ebf7e92b646a2be2
2022-03-15 22:44:25 1192
原创 LeetCode翻转二叉树
翻转二叉树LeetCode题目来源1.1 题目描述给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。1.2 示例2.1 解题2.1.1 解题方法:使用递归进行计算使用前序遍历遍历二叉树,递归将左节点和右节点互换。Java版解题/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNo
2022-03-12 13:43:34 692
原创 LeetCode二叉树路径总和
路径之和LeetCode题目来源1.1 题目描述给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。如果存在,返回 true ;否则,返回 false 。叶子节点 是指没有子节点的节点。1.2 示例2.1 解题解题方法:递归进行计算二叉树从上向下进行递归计算,每遍历一个节点,就用target-root.val。当叶子节点值等于最后一次target-ro
2022-03-09 20:44:48 384
原创 LeetCode二叉树的最小深度
二叉树的最小深度1.1 题目描述给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明:叶子节点是指没有子节点的节点1.2 示例2.1 解题2.1.1 解题方法:递归进行计算只需要分别计算非叶子节点左右子树的最小叶子节点深度。这样就将一个大问题转化为了小问题,可以递归地解决该问题。Java版解题/** * Definition for a binary tree node. * public class TreeNode { *
2022-03-08 15:14:52 414
原创 C语言运行原理
计算机不能直接识别和执行高级语言写的命令,必须用编译程序(也称编译器)把C源程序翻译成二进制形式的目标程序,然后再将该目标程序与系统的函数库以及其他目标程序连接起来,形成可执行的目标程序C语言的编译和执行需要执行以下步骤和方法上机输入和编辑源程序:通过键盘向计算机输入程序,如发现有错误,要及时改正。文件以.c作为后缀,生成源程序文件,如f.c。对源程序进行编译 :先用C编译系统提供的"预处理器"(又称"预处理程序"或"预编译器")对程序中的预处理指令进行编译预处理。例如,对#include<
2022-03-07 13:31:10 3976
原创 一文弄懂C语言指针底层原理
浅谈C语言指针 学习指针,我们必须明白什么是指针。教材上给出的定义为:“一个变量地址称为该变量的指针”。1.内存地址首先我们来谈谈计算机内存地址。我们都知道运行一个C语言程序需要将程序从磁盘加载到内存中进行运算。而所谓的运算可以抽象理解为计算机处理器通过地址读取指令、数据的过程。在内存中,每个字节(8位)对应有一个地址,连续存储空间对应连续地址,处理器通过地址可得到存储空间存储的数值。为了方便理解,例举出我们计算机存取变量值的原理:当我们定义一个局部变量例如short a=7时,系统会在栈中随机分配
2022-03-07 13:28:41 2607 1
原创 githHub使用基础指南
Github的使用/git远程提交代码到GithubGithub是全球最大的社交编程及代码托管网站Git是一个开源的分布式版本控制系统1.基本概念Repository(仓库):仓库用于存放项目代码,一个项目对应一个仓库Star(收藏):收藏其他开源项目Fork(复制别人项目到自己的仓库中,在自己仓库中修改项目代码不会对源仓库有影响)Pull Request(发出合并请求):fork别人代码后,可以像源仓库发出请求合并申请,将自己的代码合并到源仓库中)Issue(事件):发现代码由bug,可以
2022-03-07 13:00:37 2669
原创 从github下载单个文件
问题描述:github是一个很好的共享代码管理仓库,我们可以从github上直接以压缩包的形式直接download整个项目,也可以通过git,用git clone + URL 命令下载整个目录。但是,有时候项目很大,而我们需要的只是项目中的单个文件夹(例如我想要下载项目中的decorder文件)。我们可以借助TortoiseSVN来完成TortoiseSVN 的下载与安装TortoiseSVN 是 Subversion 版本控制系统的一个免费开源客户端,可以超越时间的管理文件和目录。文件保存在中央
2022-03-07 12:55:52 1260
原创 TreeMap集合类中的Comparator与Comparable接口详解
1.comparable接口当我们运行关于treeMap示例代码1:代码示例package com.test.ComparatorTest;import java.util.*;public class Test { public static void main(String[] args) { Map students = new TreeMap(); students.put(02,"邱烁铭"); students.put(01,
2022-03-07 12:51:39 2534
原创 从王者荣耀看设计模式(简单工厂模式)
从王者荣耀看设计模式(简单工厂模式)一.简介游戏开始前,玩家可从英雄池自由挑选将要出战的英雄二.简单工厂模式简单工厂模式(Simple Factory Pattern)属于类的创新型模式,又叫静态工厂方法模式(Static FactoryMethod Pattern),是通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。模式动机在实际的软件开发过程中,有时需要创建一些来自相同父类的类的实例,为此可以专门定义一个类来负责创建这些类的实例,这些被创建的实例具有相同的父类。
2022-03-07 11:47:42 289
原创 LeetCode平衡二叉树
平衡二叉树1.1 题目描述给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。1.2 示例2.1 解题2.1.1 解题方法一:暴力解题采用双层循环,第一层循环从数组第一个元素开始往后依次遍历,第二层循环从指定位置往后遍历寻找到与指定位置对应数之和为目标数值的数。并通过result数组返回,复杂度为O(n²)。Java版解题/** * Definition for a binary tree
2022-03-06 13:49:46 115
原创 mysql忘记密码怎样重置
当我们在使用mysql数据库时,如果忘记密码会显示下图情况ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: YES)1.关闭mysql服务器1.查找mysql安装路径中bin目录路径在计算机“服务”中找到mysql,双击找到对应路径2.以管理员权限打开命令行,跳转到安装路径下bin目录路径处3.在命令行中输入命令跳过mysql的密码验证mysqld --console --
2022-03-03 17:10:26 32448 4
原创 LeetCode将有序数组转换为二叉搜索树
将有序数组转换为二叉搜索树题目来源1.1 题目描述给定一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵 高度平衡 二叉搜索树。高度平衡 二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过 1 」的二叉树。1.2 示例2.1 解题2.1.1 解题方法:使用二分法与递归进行计算我们可以选择中间数字作为二叉搜索树的根节点,这样分给左右子树的数字个数相同或只相差 11,可以使得树保持平衡。如果数组长度是奇数,则根节点的选择是唯一的,如果数组长度是偶数,则
2022-02-16 23:33:28 331
原创 LeetCode二叉树的最大深度
二叉树的最大深度1.1 题目描述给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。1.2 示例2.1 解题2.1.1 解题方法:递归进行计算使用递归,当递归至叶子节点(root == null),记录递归次数。然后相互比较,找到从根节点到叶节点最多次数递归数即二叉树的最大深度。Java版解题/** * Definition for a binary tree node. * public class T
2022-02-14 15:06:57 260
原创 LeetCode对称二叉树
对称二叉树1.1 题目描述给你一个二叉树的根节点 root , 检查它是否轴对称。1.2 示例2.1 解题2.1.1 解题方法:使用递归进行比较将节点的左子树与右子树放入递归循环中,将左子树的左节点与右子树的右节点、左子树的右节点与左子树的左节点进行比较。●时间复杂度:这里遍历了这棵树,渐进时间复杂度为 O(n)。●空间复杂度:这里的空间复杂度和递归使用的栈空间有关,这里递归层数不超过 nn,故渐进空间复杂度为 O(n)。/** * Definition for a binary
2022-02-14 10:46:42 443
原创 LeetCode二叉树相同树比较
LeetCode相同的树比较1.1 题目描述给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。1.2 示例2.1 解题2.1.1 解题方法一:递归进行比较一.比较二叉树中节点的个数,个数不同则为不同树二.使用递归方法逐个比较节点中的元素,元素不同则树不同Java版解题/** * Definition for a binary tree node. * public class TreeN
2022-02-12 22:27:55 778
原创 LeetCode二叉树中序遍历
LeetCode二叉树中序遍历1.1 题目描述给定一个二叉树的根节点 root ,返回它的 中序 遍历。1.2 示例示例:输入:root = [1,null,2,3]输出:[1,3,2]2.1 解题2.1.1 解题方法:递归二叉树的中序遍历方法:按照“左(子树)→中→右”顺序遍,可以使用递归方式进行遍历Java版解题/** * Definition for a binary tree node. * public class TreeNode { * int val
2022-02-11 21:36:19 1067
原创 LeetCode两数之和
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。1.2 示例输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1]输入:nums = [3,2,4], ta
2022-02-04 11:38:24 129
原创 用Java调用C语言代码实例(JNI)
为初步理解Java中native本地方法的使用,提出使用native方法实现计算任意正整数二进制的需求(native方法是Java中的本地方法,一般采用C/C++通过JNI(Java native interface)实现)。JNI编写流程:1.编写带有native声明的方法的java类2.使用javac命令编译所编写的java类3.然后使用javah + java类名生成扩展名为h的头文件4.使用C/C++实现本地方法5.将C/C++编写的文件生成动态连接库6.运行java工程并调用JNI
2021-06-28 19:52:31 1590 1
原创 字符编码与乱码
一.字符编码二.乱码2.1 解析错误解析二进制的方式不对2.2 错误的解析和编码转码若果怎么改变查看方式都不对,那可能就不仅仅是解析二进制方式不对,而是文本在错误解析的基础上进行了编码转换。...
2021-06-28 19:51:15 143
原创 Java集合框架分析(Map)——红黑树的自平衡机制详解
目录 一.摘要 二.红黑树 三.红黑树的自平衡操作 红黑树插入元素后的自平衡操作 红黑树删除元素后的自平衡操作 四.方法分析 五.参考资料一.摘要TreeMap是基于红黑树结构实现的一种Map,要分析TreeMap的实现首先就要对红黑树有所了解。红黑树是一种自平衡二叉查找树[1]。理论上,一颗平衡的二叉查找树的任意节点平均查找效率为树的高度h,即O(log n).但是如果二叉
2021-04-12 20:21:04 953
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人