- 博客(44)
- 收藏
- 关注
原创 日拱一卒(3)——leetcode学习记录:二叉树最小深度
最小深度是从根节点到最近叶子节点的最短路径上的节点数量。给定一个二叉树,找出其最小深度。叶子节点是指没有子节点的节点。编程小白,所以结果比较差,见笑。1. 递归计算二叉树的深度。一、任务:平衡二叉树。
2024-08-16 21:11:00
91
原创 日拱一卒(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
190
原创 机器学习——全连接(MLP多层感知机)的理解
全连接即是矩阵乘,因此在transformer中获取QKV理论上是输入与QKV权重矩阵相乘,但实际操作则是使用全连接即nn.Linear(),注意这里的输入和输出都是二维的[batch,d_model],即每个样本是一维的。
2024-08-15 11:45:11
194
原创 transformer学习——注意力、自注意力、交叉注意力、多头注意力
注意力机制、自注意力机制、交叉注意力机制 注意力机制的查询和键是不同源的,常见于Encoder-Decoder模型中,例如在中译英模型中,查询是中文单词的特征,键是英文单词的特征 下图,注意力被引导至书的原因是查询(自主性提示,想读一本书)和键(非自主性提示,书的特征)相互作用,引导值(输入,书的信息)被看到。 自注意力机制(输入是一个batchsize,即多个样本,即QKV同源) 交叉注意力机制(输入是不同特征空间的数据,例如文本和图像,即Q与KV不同源),自注意力机制和交叉注
2024-08-15 11:40:22
127
原创 日拱一卒——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
383
原创 卷积神经网络理解
五、因此神经网络是在拟合一个分布,能够明显的将这个类别与其他区分开。三、K1*K2*K3是一个更大的卷积核(全卷积)一、神经网络的卷积和二维离散卷积的区别。四、相关操作:分布越相似,相关结果越大。
2024-08-01 15:14:57
228
原创 CNN神经网络调参技巧
2.若干块,每块:卷积+激活+Dropout。3.若干块,每块:fc+激活+Dropout。1.若干块,每块:卷积+BN+激活+池化。
2024-06-27 15:19:58
308
原创 jupyterlab 创建新环境的问题 | notebook用新kernel运行命令没有反应 | 新核显示正在连接
再次打开新内核,右上角变成了白色圆,显示Kernel Idle,运行notebook命令,结果正常输出。,命令行一直显示*,发现右上角新内核旁为黑色圆圈,显示kernel connecting状态。创建了新的conda虚拟环境,使用以下命令创建为jupyter notebook新内核。在notebook中切换为新内核,
2024-04-24 18:10:35
323
原创 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
1065
原创 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
351
1
原创 神经网络冻结参数后权重仍然更新
requires_grad是tensor的一个属性,而cnn1是一个卷积层,应注意神经网络中的参数指的是权重。作为一个编程菜逼,我乍一看没毛病呀,凌晨1点的我越调越迷糊,终于最终还是找到了问题,还是基础不牢。运行后发现cnn1的参数仍然在更新。离谱的是我上面的错误使用竟然没报错。
2024-03-03 01:20:58
377
原创 数据结构——链表的一点小收获(内存指向)
b[0] =2(这里其实是修改变量值,如果改为b = [2]则会改变内存指向)2.链表之间的赋值与列表、字典相似,是内存指向的赋值。3.综上,把=看作内存指向,同时注意指向的顺序。当给b重新赋值时,内存指向发生变换。此时b指向a原来的内存,a更新指向。内存指向没有发生变化。
2024-02-02 16:49:47
181
原创 矩阵的部分笔记
特征值个数,特征向量个数与矩阵的秩之间有什么关系?- IUV的回答 - 知乎。2.实对称阵可以变为QAQ,即正交相似对角化。1.任何矩阵可以化为约当标准型。3.正定矩阵是对称矩阵。
2024-01-17 11:27:35
431
原创 博客摘录「 一个程序员“玩”出来的网站:每月成本仅 350 元,如今赚了 16.4 万元」2024年1月16日
Rod 提到,对他来说构建项目是唯一有效的学习方式。准确的、一阵见血的、启发的。
2024-01-16 10:04:06
425
原创 一句话——机器学习概念理解1
2.朴素贝叶斯分类——使用朴素贝叶斯公式计算样本为某个标签的概率,即使用先验信息求解后验信息。5.决策树——某一特征下标签的信息熵最小,说明这个特征为最佳判别依据。3.逻辑回归——线性回归(极大似然之类)+Sigmoid函数。1.支持向量机(线性)——寻找与样本几何间隔最大的超平面。4.K近邻——根据样本分布,少数服从多数。6.随机森林——多个决策树共同投票决策。
2024-01-09 11:39:42
597
原创 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
836
2
原创 EfficientNet训练天坑——eval
会使得 Batch Normalization 使用全局统计信息而不是 batch 的统计信息,而 Dropout 层会变得无效。这是因为在测试时我们不再需要通过 batch 的统计信息来进行归一化或者随机失活。在训练过程中,Batch Normalization 和 Dropout 层通常会采用不同的行为。主要是为了确保在测试阶段模型的行为与训练时一致,并减少内存占用。在测试阶段,为了得到模型的最终输出而不影响其行为,通常会调用。各种修改,各种debug,各种死马当活马医;在训练阶段,你通常会使用。
2023-12-18 23:47:58
375
1
原创 矩阵就是基吧
矩阵中各个列向量代表基向量在要转换的目标空间中的坐标描述,向量代表各个基向量的权重,即在原来基向量下的描述。相乘就是将原来的描述转换为新的描述,转换的桥梁是基向量在新的空间中的描述。因此特征向量代表经过转换后方向不变的向量。(矩阵是一组基,向量是权重)。矩阵x向量:一组基x该组基下的描述=正默认基下面的描述。因此特征向量做基x特征值作为描述,等于矩阵做基x特征向量的描述。
2023-12-12 21:29:28
78
1
原创 Zemax仿真掩膜板
通过标准面堆叠的方式实现。注意在非序列模式下,当标准面与微透镜阵列第一面位置完全相同时,反射或吸收效果会失效,因此可以通过稍微远离一点来保持原来的调制效果。zemax如何仿真部分透过部分不透的掩膜板?
2023-12-01 22:55:07
117
1
原创 Zemax辛酸路——微透镜阵列仿真
真的很丑,不知道是3D建模效果有误差还是本来就这样,甚至微透镜的表面都不是光滑的。我一度怀疑Zemax是不是精度就这么差,并下载了Virtuallab,但终究还是坚持了下来,摸索摸索再摸索。下载Zemax后在网上搜索微透镜阵列的仿真,搜出来挺多,但指导性不强,不过至少有了一点思路。目标是仿真微透镜阵列,多年前接触过Zemax,但现在差不多都还给老师了。对于一些挑战,必须要面对才有解决的可能,道阻且长,兴则将至,自勉。
2023-12-01 18:13:06
1660
2
原创 储备池计算的理解
储备池计算,又称作回声状态网络,用于处理时间序列数据。循环神经网络中的隐藏层固定权重后就是储备池,包含了历史输入的信息、非线性处理和线性处理能力,储备池将输入映射到高维中,无须训练储备池,只需训练储备池后的输出表达即可得到想要的结果,一般使用简单的最小二乘法进行训练。相比RNN优点是训练简单。
2023-11-22 17:44:58
326
原创 从RNN看神经网络原理
典型神经网络包括输入层、隐藏层和输出层,输入层到隐藏层的过程是机器学习输入特征的过程,也就是机器将输入转换成自己可以理解的形式,隐藏层到输出层的过程是机器理解的信息转换成人可以理解的信息的过程。例如人:what time is it?——>机器语言:“在问时间”——>人:这是在问时间。循环神经网络是将机器对上下文的理解融合到了一起,再转换为人能理解的信息。
2023-11-22 17:15:06
43
原创 压缩感知理解(不一定对)
通常来说,我们要求的是x,因此解的是y=φx这个方程,但是这个问题的解不唯一,而且诸多解无法分辨哪个是我们需要的。当把x用稀疏矩阵进行稀疏表示为s后,再去解y=φψs,这里s仍有多解,但最稀疏的s是唯一的且是我们需要的s,即我们可以分辨需要的和不需要的s。因此用1范数正则化约束即可得到最稀疏的s,再通过稀疏矩阵变换即可得到x,也就是我们要的答案。
2023-11-18 23:45:50
44
2
原创 光纤非线性
3.三阶非线性:产生新频率的一类(三次谐波、四波混频)、不产生新频率的(非线性折射:SPM、XPM),前者需要相位匹配,通常难以实现。6.除上述非线性外,还有非弹性非线性效应:SRS(optical phonon)和SBS(acoustic phonon)2.二次谐波等二阶非线性只存在于非反演对称介质中,二氧化硅是对称分子,因此光纤一般不存在二阶非线性。1.介质非线性起源于极化的非线性:P对于外加电场E是非线性的。5.XPM为后者,SPM为前者,可见XPM贡献是SPM的两倍。
2023-11-05 21:35:08
103
1
原创 色散的简单理解
3.群速度色散使用β2 = dβ1/dw表示,β1 = 1/vg,即描述波包传播速度导数随频率的变化率,β2>0代表频率增加,β1增加,即波长减小,vg减小;反之,波长增加,vg减小。1.色散可以根据研究对象不同分为相速度色散和群速度色散,前者关注单频连续信号,后者关注光纤常用的脉冲信号,两者的正常色散都是红快蓝慢;2.群速度色散用于描述不同中心频率波包的传播快慢,波包的传播速度为vg = dw/dk,这一公式可以通过两近似波长信号传播来理解;
2023-11-05 10:48:58
201
1
原创 Anaconda navigator 主页面新建环境后无jupyter notebook
3.安装kernel conda install notebook ipykernel。2.进入新环境 conda acitvate xxx。4.重新进入anaconda navigator即可。1.打开anaconda prompt。
2023-10-13 20:11:35
1166
原创 安装python后,pip报错问题
cmd无法使用pip,报错“pip Fatal error in launcher: Unable to create process using ... “2.不能使用中文路径命名安装路径(正是因为刚开始使用了中文路径,修改后导致无法使用pip)1.菜单栏>设置>应用,卸载python以及python启动器。2.删除原安装文件夹,新建英文文件夹重装python。1.安装后的文件夹重命名会导致pip无法使用。
2023-09-10 18:09:20
167
1
原创 jupyterlab问题记录——pip install 包却无法导入
本环境中python -m pip和pip不是同一版本,可以查看list发现也不一样,前者对应本环境中的版本,后者对应系统版本。在虚拟环境中pip install ptvsd,却无法import。使用python -m pip install ptvsd。
2023-03-22 12:30:53
206
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人