- 博客(147)
- 收藏
- 关注
原创 1008 数组元素循环右移问题
题目中数组长度为n,要想把数组循环右移m位,只需要先将整个数组a倒置,再将数组前m位倒置,最后将数组后n-m位倒置即可完成循环右移m位,reverse函数可以实现将一个数组或者vector中元素倒置,这个函数在algorithm头文件中!
2024-11-05 14:03:54
159
原创 进制转换-洛谷B2143
做了上一题的转十六进制后,这个题的难点升级为了2到16以内的任意进制数字,我们可以用一个char类型的数组或者string字符串来表示一个对应进制所对应的表示,从十一进制开始就出现了字母,因此后面的用字母表示。因此这里也放两种解题代码。
2024-11-05 13:50:28
255
原创 RNN(循环神经网络)存在什么问题,如何改进?
改进方法往往是通过改进模型,即使用LSTM(长短时记忆模型)及其GRU等模型加入门口机制,来弥补梯度消失带来的损失。基于BPTT算法学习的循环神经网络大多数情况下会出现无法成功捕捉到长时依赖问题,主要由于梯度消失问题导致。2.梯度截断,检查误差梯度的值是否超过了阈值,如果超过了那么就截断梯度,将梯度设为阈值。除此之外,RNN较少情况下也出现梯度爆炸情况。1.权重衰减,例如L2权重衰减。
2024-03-12 21:03:03
947
原创 CNN中常见的池化操作有哪些,作用是什么?
CNN中常见的池化操作有哪些,作用是什么?CNN中常见的池化操作只要是两种,平均值池化和最大值池化最大值池化常用于分类任务,是指在输入数据的局部区域内取最大值作为输出。最大池化的作用是降低特征图的尺寸,减少参数数量,并且提取输入数据中最显著的特征。平均池化操作是指在输入数据的局部区域内取平均值作为输出。与最大池化类似,平均池化也可以降低特征图的尺寸,减少参数数量,并对输入数据进行平滑处理。除了能显著的降低参数量外,还能够保持对平移、伸缩和旋转操作的不变性。例如(1,5,3)经过最大池化后是5,左移
2024-03-11 21:32:55
1241
原创 什么是GoogLeNet,亮点是什么,为什么是这个结构?
最明显的亮点就是引入了Inception,初衷是多卷积核增加特征的多样性,提高泛化能力 ,比如,最下边是一个输入层,然后这个输入分别传递给1*1,3 * 3 ,5 * 5和一个最大池化层,然后将所有的输出特征图在深度上进行一个串联,所以说这就要保证特征图的大小必须得是一致的,1 * 1的卷积核不改变大小,其他卷积核池化要添加0补充。这就引入了Inception V2结构,在3 * 3 5 * 5的卷积核之前加入1 * 1卷积核降维 , 最大池化层后也加入1 * 1降维,从而减少了深度和参数。
2024-03-10 21:47:58
402
原创 请说一下卷积神经网络里的特征图和感受野怎么计算?VGG网络的特点?如何解释?
请说一下卷积神经网络里的特征图和感受野怎么计算?VGG网络的特点?如何解释?
2024-03-10 20:47:47
603
原创 239. 滑动窗口最大值(leetcoude-hot100)-另附一道同类扩展题
本题的主要思想是通过单调队列去存储数组的下标,对于这道题目来讲,是通过一个数组b来维护一个的队列,用hh和tt来记录数组b所模拟的队列的头部和尾部,而,这样我们便可以通过b[hh]来判断该队列的最大值是否还在滑动窗口里。
2024-03-09 13:51:42
959
原创 ResNet的特点?BN层的目的?模型验证的时候可以用BN吗?
另外一种为改变矩阵的长和宽,也改变深度。对于不改变矩阵长宽和深度的,只需要直接把输入和输出相加就可以,如果改变了,则输入也要经过卷积后为同样形状方可加减。残差思想:主要目的是为了解决深度神经网络训练过程中的梯度消失和梯度爆炸问题,同时帮助网络更好地学习到特征表示,突出微小的变化,提高网络的性能和泛化能力。将原本的输入和经过卷积后的输出相加,要注意主分支与shortcut的输出特征矩阵shape必须相同。BN层的目的是使我们的一批feature map满足均值为0,方差为1的分布规律,从而可以加速收敛。
2024-03-08 19:41:05
590
原创 机器学习经典问题笔记
梯度消失(爆炸):反向传播过程中误差每一次乘以一个<(>)1的数,那么随着深度的加深,误差会越来越小(大),从而导致无法更新神经网络前面的权重或参数,就是梯度消失(爆炸)。由于卷积层和池化层为了提取特征,则全连接层放在最后则负责将这些特征进行组合和分类以便进行预测。全连接层参数量巨大,放在最后有利于有效控制网络的参数规模。因为才疏学浅,文章可能写得不够好或者有不对的地方,请各位多多留言指正。
2024-03-07 19:01:54
1068
1
原创 DFS回溯-经典全排列问题(力扣)
对于全排列问题,常用的做法是设置一个vis数组来确定位置i上的数字是否被访问,因为是全排列问题,所以不同的顺序也是不一样的排列,因此每次都是从起点开始询问**(注意起点到底是0还是1)**
2024-03-07 16:32:32
696
原创 1129. 颜色交替的最短路径
red_edges 中的每一个 [i, j] 对表示从节点 i 到节点 j 的红色有向边。类似地,blue_edges 中的每一个 [i, j] 对表示从节点 i 到节点 j 的蓝色有向边。返回长度为 n 的数组 answer,其中 answer[X] 是从节点 0 到节点 X 的红色边和蓝色边交替出现的最短路径的长度。如果不存在这样的路径,那么 answer[x] = -1。在一个有向图中,节点分别标记为 0, 1, …图中每条边为红色或者蓝色,且存在自环或平行边。
2023-02-03 20:55:38
201
原创 2325. 解密消息
例如,key = “happy boy”(实际的加密密钥会包含字母表中每个字母 至少一次),据此,可以得到部分对照表(‘h’ -> ‘a’、‘a’ -> ‘b’、‘p’ -> ‘c’、‘y’ -> ‘d’、‘b’ -> ‘e’、‘o’ -> ‘f’)。说下代码的优化吧,使用unordered_map要不map快一些,因为无序的,另外因为是解密消息,所以也不需要另外声明一个字符串来存储答案,直接在原字符串改动就可以。使用 key 中 26 个英文小写字母第一次出现的顺序作为替换表中的字母 顺序。
2023-02-01 20:07:10
197
原创 一些失误总结
总结世间起因于洪水灌溉算法竟然我没写对,在检查了好几遍之后发现竟然是二维数组的初始化为1出现了问题,memset不可以用!!于是写下总结代码 #include<iostream> #include<algorithm>#include<cstring>#include<queue>using namespace std;int n,m;typedef pair<int,int> PII;int a[1000][1000] =
2022-04-24 16:55:21
111
原创 小猫排队-牛客月赛47
小猫排队题目描述世界上最苦恼的事情莫过于排队了,特别是排在你前面的猫比你可爱的时候。----《论猫的自我修养》小猫啾啾现在就很苦恼,它排在队伍的末尾处等着买酱油,前面还有足足 只猫咪。但幸运的是小猫啾啾会一种魔法:它可以和前面距离它最近且比它可爱(可爱值大于啾啾)的小猫交换位置(被交换的小猫会被传送到啾啾之前的位置)。已知啾啾每一分钟开始时可以施展一次魔法,而每一分钟过后排在队伍最前面的猫咪就会离开队伍(这意味这啾啾会先交换位置然后队伍才开始移动)。因为等会还得去买饺子所以啾啾会尽可能地与自身前
2022-04-15 21:45:26
598
原创 数据库-数据更新
数据更新插入insert into <表名>[(<属性列1>,<属性列2>,<属性列3>...)]values (<常量1>,<常量2>...)--常量要与属性列相对应,省略条件下按照默认顺讯必须给每个属性列全部赋值例如: 插入一条选课记录(‘201215128’,‘1’)insertinto sc(sno,cno)values('201215128','1');如果是要插入子查询的结果,则最后一行变为子查询例如
2022-04-10 12:12:52
809
原创 数据库-数据查询
数据查询基础语法select[all|distinct]<目标列表达式>from <表名或者视图名>where<条件表达式>group by <列名1>[having<条件表达式>]order by <列名2>[ASC|DESC]含有having的条件表达式必须跟在group后面 不可以跟在where后面例如:查询平均成绩大于等于90的学生学号和平均成绩正确答案select sno avg(grade)fr
2022-04-10 11:56:22
236
原创 数据库-数据定义
sql 的数据类型char(n) 长度为n的字符串int 长整数smallint 短整数numeric(p,d) p位整数和d位小数 定点数decimal(p,d) 同上double precision 双精度浮点数TIME HH:MM:SSDATE YYYY-MM-DDSQL的功能主要分为四个部分:分别是数据查询,数据定义,数据操纵和数据控制。数据查询:SELECT数据定义:CREATE DROP ALTER数据操纵:INSERT UPDATE DELETE数
2022-04-10 10:24:08
1690
原创 十进制转十六进制(蓝桥杯)
解题思路说下几个坑吧:1、不可以直接用scanf格式化读入,可以拿部分分,但是如果读入30,格式化输出的是1e 而不是1E,结果区分大小写。2、如果读入的是0,可以直接输出0,就不会进入while循环转换成16进制了,如果不特判,就会有可能输出空字符。Ac代码#include<cstdio>#include<iostream>using namespace std;int main(){ long long n; cin >> n; strin
2022-03-27 20:45:18
313
原创 十六进制转十进制(蓝桥杯)
思路十六进制的数最多不会超过8位,则最大的数不会超过16的8次方,也就是2的32次方,恰巧处在int的边界范围,所以直接开long long 用C语言中的读入 读出函数就可以直接转换,当然还有当时自己受十六进制转换八进制的影响,写出了代码2AC代码#include<stdio.h>int main(){ long long x; scanf("%x",&x); printf("%lld",x); return 0; } Ac代码2#in
2022-03-27 19:04:23
1042
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人