- 博客(51)
- 收藏
- 关注
原创 数据结构学习
类似于列表,元素有序,因此查询速度快,但增删复杂,每次增删,会影响后面的索引。节点:元素和下一个元素的指针组成,增删快,查询慢,占内存多。多对多,广度优先和深度优先。一对多,包含元素和指针。
2024-09-13 15:51:50 86
原创 大模型的架构分类
核心思想是利用编码器对输入序列进行编码,提取其特征和语义信息,并将编码结果传递给解码器。然后,解码器根据编码结果生成相应的输出序列。这种架构的优点是能够更好地处理输入序列和输出序列之间的关系,从而提高机器翻译和对话生成等任务的准确性。缺点是模型复杂度较高,训练时间和计算资源消耗较大。
2024-09-04 18:00:59 184
原创 日拱一卒(8)——leetcode学习记录:位1的个数
设置位就是值为1的位,因此需要将十进制转换为二进制,方法是余2得到从低到高位的数值,整除2得到下一次计算的数。编写一个函数,获取一个正整数的二进制形式并返回其二进制表达式中。
2024-08-20 21:57:20 204
原创 日拱一卒(7)——leetcode学习记录:颠倒二进制位
python3下,输入是10进制整数,依次除以2,获取二进制从低位至高位,翻转正好对应从高位至地位,再转换为十进制输出。因此返回 964176192,其二进制表示形式为。颠倒给定的 32 位无符号整数的二进制位。
2024-08-19 21:00:22 276
原创 日拱一卒(6)——leetcode学习记录:相交链表——我走过你走的路,只为与你相见
用两个指针,node.next查找相同链表,但是无法保证同时到达相同节点,因此需要遍历两遍,即A遍历完,去遍历B,B遍历完去遍历A,这样每个指针都会走A+B这两个链表,而相同之处肯定在末尾,因此在最后会同时达到相同节点。,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回。确实挺浪漫的,我走过你走的路,只为与你相见。,函数返回结果后,链表必须。整个链式结构中不存在环。给你两个单链表的头节点。
2024-08-17 23:56:21 217
原创 日拱一卒(5)——leetcode学习记录:股票购买
返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回。遍历价格中的元素,以及该元素前的最小元素,计算利润,更新最大利润。遍历价格中的元素,及该元素后最大的元素,计算利润,更新最大利润。问题:每次计算最大值都需要遍历一次,如果改为复用就能减少时间。设计一个算法来计算你所能获取的最大利润。买入这只股票,并选择在。1. 暴力求解(超时)
2024-08-17 22:06:38 236
原创 日拱一卒(4)——leetcode学习记录:路径总和
左右节点都存在,返回 递归(左子节点,targetSum-root.val)or递归(右子节点,targetSum-root.val)其他,返回 递归(左子节点or右子节点,targetSum-root.val)左右子节点都不存在,返回targetSum == root.val。的路径,这条路径上所有节点值相加等于目标和。和一个表示目标和的整数。节点不存在,返回False。是指没有子节点的节点。
2024-08-17 20:25:49 262
原创 日拱一卒(3)——leetcode学习记录:二叉树最小深度
最小深度是从根节点到最近叶子节点的最短路径上的节点数量。给定一个二叉树,找出其最小深度。叶子节点是指没有子节点的节点。编程小白,所以结果比较差,见笑。1. 递归计算二叉树的深度。一、任务:平衡二叉树。
2024-08-16 21:11:00 261
原创 日拱一卒(2)——leetcode学习记录:平衡二叉树(二)
b. 左右子节点都存在,返回 max(1+递归(左子节点),1+递归(右子节点))3. 左右子节点深度差小于等于1,返回 递归 左子节点判断and右子节点判断。a. 左右子节点存在一个,返回 1+递归(存在的子节点)d.大前提,如果主节点为None,返回 0。c. 左右子节点都不存在,返回1。2. 左右子节点深度差大于1,返回 False。给定一个二叉树,判断它是否是 平衡二叉树。编程小白,所以结果比较差,见笑。1. 递归计算二叉树的深度。一、任务:平衡二叉树。
2024-08-15 23:21:02 297
原创 机器学习——全连接(MLP多层感知机)的理解
全连接即是矩阵乘,因此在transformer中获取QKV理论上是输入与QKV权重矩阵相乘,但实际操作则是使用全连接即nn.Linear(),注意这里的输入和输出都是二维的[batch,d_model],即每个样本是一维的。
2024-08-15 11:45:11 395
原创 transformer学习——注意力、自注意力、交叉注意力、多头注意力
注意力机制、自注意力机制、交叉注意力机制 注意力机制的查询和键是不同源的,常见于Encoder-Decoder模型中,例如在中译英模型中,查询是中文单词的特征,键是英文单词的特征 下图,注意力被引导至书的原因是查询(自主性提示,想读一本书)和键(非自主性提示,书的特征)相互作用,引导值(输入,书的信息)被看到。 自注意力机制(输入是一个batchsize,即多个样本,即QKV同源) 交叉注意力机制(输入是不同特征空间的数据,例如文本和图像,即Q与KV不同源),自注意力机制和交叉注
2024-08-15 11:40:22 302
原创 日拱一卒——leetcode学习记录:平衡二叉树
2. 注意每次返回的都是TreeNode,即二叉树,二叉树定义很简单,但是通过递归可以使left和right都为TreeNode。c. nums长度大于2,返回TreeNode,val为中心值,left递归,right递归。b. nums长度为2,返回TreeNode,val为第二个元素,left递归。a. nums长度为1,返回TreeNode,val为第一个元素。编程小白,所以结果比较差,见笑。排列,请你将其转换为一棵。
2024-08-14 22:56:06 433
原创 卷积神经网络理解
五、因此神经网络是在拟合一个分布,能够明显的将这个类别与其他区分开。三、K1*K2*K3是一个更大的卷积核(全卷积)一、神经网络的卷积和二维离散卷积的区别。四、相关操作:分布越相似,相关结果越大。
2024-08-01 15:14:57 246
原创 CNN神经网络调参技巧
2.若干块,每块:卷积+激活+Dropout。3.若干块,每块:fc+激活+Dropout。1.若干块,每块:卷积+BN+激活+池化。
2024-06-27 15:19:58 430
原创 jupyterlab 创建新环境的问题 | notebook用新kernel运行命令没有反应 | 新核显示正在连接
再次打开新内核,右上角变成了白色圆,显示Kernel Idle,运行notebook命令,结果正常输出。,命令行一直显示*,发现右上角新内核旁为黑色圆圈,显示kernel connecting状态。创建了新的conda虚拟环境,使用以下命令创建为jupyter notebook新内核。在notebook中切换为新内核,
2024-04-24 18:10:35 380
原创 Anaconda大坑 | Python版本显示不正确 | 虚拟环境没有bin文件夹
在不断的搜索中,又发现了一个线索,创建的虚拟环境中没有bin文件夹,这往往是python编译器存放的地方。网上关于这个问题的解答,大多是说要在创建环境是明确python版本,但我的这个问题有版本也解决不了。要做人脸识别任务,想用facenet,发现facenet的配置要求是tensorflow1.7,网上说对应python是3.5,因此我打算重新建立虚拟环境。建立环境后,发现conda可以下载python3.5,pip不行,同时conda下载后,python -V显示的版本却是3.8。
2024-04-23 23:59:24 1560
原创 pytorch图像显示色彩不对
Image.open读取到的图像为PngImageFile类型,将其转换为tensor后,数值范围是0-1,经过cnn后,数值范围就超过了0-1的范围。利用plt.imshow显示图像,需要PIL格式的图像,transforms.ToPILImage()接受的tensor范围必须是0-1,否则就会出现失真。180x180的图,3x3的卷积核,按理说卷出来应该与原图差别不大,但出来的图像很奇怪。事后分析,上米娜的图像出现了失真,有一种切割感,譬如最高是1,出现了1.5,那么该1.5就会被赋值为1。
2024-03-05 17:38:40 401 1
原创 神经网络冻结参数后权重仍然更新
requires_grad是tensor的一个属性,而cnn1是一个卷积层,应注意神经网络中的参数指的是权重。作为一个编程菜逼,我乍一看没毛病呀,凌晨1点的我越调越迷糊,终于最终还是找到了问题,还是基础不牢。运行后发现cnn1的参数仍然在更新。离谱的是我上面的错误使用竟然没报错。
2024-03-03 01:20:58 407
原创 数据结构——链表的一点小收获(内存指向)
b[0] =2(这里其实是修改变量值,如果改为b = [2]则会改变内存指向)2.链表之间的赋值与列表、字典相似,是内存指向的赋值。3.综上,把=看作内存指向,同时注意指向的顺序。当给b重新赋值时,内存指向发生变换。此时b指向a原来的内存,a更新指向。内存指向没有发生变化。
2024-02-02 16:49:47 194
原创 矩阵的部分笔记
特征值个数,特征向量个数与矩阵的秩之间有什么关系?- IUV的回答 - 知乎。2.实对称阵可以变为QAQ,即正交相似对角化。1.任何矩阵可以化为约当标准型。3.正定矩阵是对称矩阵。
2024-01-17 11:27:35 438
原创 博客摘录「 一个程序员“玩”出来的网站:每月成本仅 350 元,如今赚了 16.4 万元」2024年1月16日
Rod 提到,对他来说构建项目是唯一有效的学习方式。准确的、一阵见血的、启发的。
2024-01-16 10:04:06 451
原创 一句话——机器学习概念理解1
2.朴素贝叶斯分类——使用朴素贝叶斯公式计算样本为某个标签的概率,即使用先验信息求解后验信息。5.决策树——某一特征下标签的信息熵最小,说明这个特征为最佳判别依据。3.逻辑回归——线性回归(极大似然之类)+Sigmoid函数。1.支持向量机(线性)——寻找与样本几何间隔最大的超平面。4.K近邻——根据样本分布,少数服从多数。6.随机森林——多个决策树共同投票决策。
2024-01-09 11:39:42 613
原创 nll_loss_forward_reduce_cuda_kernel_2d: Assertion `t >= 0 && t < n__classes` failed.
参考如上,第二种方法解决的,我在数据量化时,将label设为了1-8,自此报各种奇怪错误。总结:label需要从0开始,原因不知。
2024-01-04 23:11:34 958 2
原创 EfficientNet训练天坑——eval
会使得 Batch Normalization 使用全局统计信息而不是 batch 的统计信息,而 Dropout 层会变得无效。这是因为在测试时我们不再需要通过 batch 的统计信息来进行归一化或者随机失活。在训练过程中,Batch Normalization 和 Dropout 层通常会采用不同的行为。主要是为了确保在测试阶段模型的行为与训练时一致,并减少内存占用。在测试阶段,为了得到模型的最终输出而不影响其行为,通常会调用。各种修改,各种debug,各种死马当活马医;在训练阶段,你通常会使用。
2023-12-18 23:47:58 396 1
原创 矩阵就是基吧
矩阵中各个列向量代表基向量在要转换的目标空间中的坐标描述,向量代表各个基向量的权重,即在原来基向量下的描述。相乘就是将原来的描述转换为新的描述,转换的桥梁是基向量在新的空间中的描述。因此特征向量代表经过转换后方向不变的向量。(矩阵是一组基,向量是权重)。矩阵x向量:一组基x该组基下的描述=正默认基下面的描述。因此特征向量做基x特征值作为描述,等于矩阵做基x特征向量的描述。
2023-12-12 21:29:28 91 1
原创 Zemax仿真掩膜板
通过标准面堆叠的方式实现。注意在非序列模式下,当标准面与微透镜阵列第一面位置完全相同时,反射或吸收效果会失效,因此可以通过稍微远离一点来保持原来的调制效果。zemax如何仿真部分透过部分不透的掩膜板?
2023-12-01 22:55:07 157 1
原创 Zemax辛酸路——微透镜阵列仿真
真的很丑,不知道是3D建模效果有误差还是本来就这样,甚至微透镜的表面都不是光滑的。我一度怀疑Zemax是不是精度就这么差,并下载了Virtuallab,但终究还是坚持了下来,摸索摸索再摸索。下载Zemax后在网上搜索微透镜阵列的仿真,搜出来挺多,但指导性不强,不过至少有了一点思路。目标是仿真微透镜阵列,多年前接触过Zemax,但现在差不多都还给老师了。对于一些挑战,必须要面对才有解决的可能,道阻且长,兴则将至,自勉。
2023-12-01 18:13:06 2163 4
原创 储备池计算的理解
储备池计算,又称作回声状态网络,用于处理时间序列数据。循环神经网络中的隐藏层固定权重后就是储备池,包含了历史输入的信息、非线性处理和线性处理能力,储备池将输入映射到高维中,无须训练储备池,只需训练储备池后的输出表达即可得到想要的结果,一般使用简单的最小二乘法进行训练。相比RNN优点是训练简单。
2023-11-22 17:44:58 477
原创 从RNN看神经网络原理
典型神经网络包括输入层、隐藏层和输出层,输入层到隐藏层的过程是机器学习输入特征的过程,也就是机器将输入转换成自己可以理解的形式,隐藏层到输出层的过程是机器理解的信息转换成人可以理解的信息的过程。例如人:what time is it?——>机器语言:“在问时间”——>人:这是在问时间。循环神经网络是将机器对上下文的理解融合到了一起,再转换为人能理解的信息。
2023-11-22 17:15:06 54
原创 压缩感知理解(不一定对)
通常来说,我们要求的是x,因此解的是y=φx这个方程,但是这个问题的解不唯一,而且诸多解无法分辨哪个是我们需要的。当把x用稀疏矩阵进行稀疏表示为s后,再去解y=φψs,这里s仍有多解,但最稀疏的s是唯一的且是我们需要的s,即我们可以分辨需要的和不需要的s。因此用1范数正则化约束即可得到最稀疏的s,再通过稀疏矩阵变换即可得到x,也就是我们要的答案。
2023-11-18 23:45:50 57 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人