- 博客(206)
- 资源 (2)
- 收藏
- 关注
原创 【深度学习基础】Temporal Fusion Transformer
从下向上看:全连接(Dense) → ELU(指数线性激活函数(比relu好点,有利于模型收敛)) → 全连接(Dense) → 门控线性单元(Gate)(Gated Linear Units (GLUs)) → Layernorm。:一方面,它可以进行静态上下文变量和动态变量的融合,另一方面,通过门控进行了特征选择操作,门控体现在GLU(门控线性单元)中,用了sigmoid控制信息的通过程度,具有良好的适应性,能够自动选择有效信息,自适应地调整网络复杂性。输入:主输入,可选的上下文向量c。
2025-04-09 17:22:15
783
原创 【python基础】for _ in中 _ 的含义
如果不关心一个变量,就可以定义改变量的名字为_ 这是一个惯例,是一个不成文的约定,但不是标准。对i并不关心,所以用_代替仅获取值而已。_在python中称作 丢弃变量。
2024-11-21 12:17:24
209
原创 【深度学习基础】PyCharm anaconda PYTorch python CUDA cuDNN 环境配置
粘贴过去,后在对应的extras\demo_suite 中使用cmd打开终端,输入:.\deviceQuery.exe,出PASS。将这段命令复制下来,打开Anaconda Prompt,激活需要配置的虚拟环境,然后粘贴运行这段代码即可进行安装。要注意,我们现在已经确定了CUDA和Pytorch的版本,但是与此同时,还需要确定安装的python版本。找和CUDA版本匹配的版本,下载解压后,以下三个文件复制到CUDA安装目录。看python版本,需要版本的python,去anaconda中新建一个。
2024-11-15 16:31:33
1028
1
原创 【机器学习基础】Python中if __name__ == ‘__main__‘:的作用和原理
= ‘main’: 下的代码只有在第一种情况下(即文件作为脚本直接执行)才会被执行,而 import 到其他脚本中是不会被执行的。每个python模块(python文件,也就是此处的 test.py 和 import_test.py)都包含内置的变量。直接执行 test.py,结果如下图,可以成功 print 两行字符串。此时,test.py中的__name__变量值为 test,不满足。”: 之前的语句被执行,之后的没有被执行。” 的条件,因此,无法执行其后的代码。等于模块名称(不包含后缀.py)。
2024-11-12 11:27:08
1178
原创 Ansys APDL 语法
Par:用户指定的数组参数名。Type:数组类型。有八种不同的类型:1、ARRAY:数值型数组,与标准FORTRAN中的数组相类似,其下标只能是整数(默认方式),行标号、列标号和页面号必须是以1开头的连续编号,可适用于定义1维、2维和3维数值型数组。2、ARR4:生成一个4维的数值型数组。3、ARR5:生成一个5维的数值型数组。4、CHAR:字符型数组,数组元素的内容是不超过8个字符的字符串。行标号、列标号和页面号必须是以1开头的连续编号。
2024-10-27 18:22:03
852
原创 【机器学习基础】梯度下降
梯度下降就是让损失函数最小,不断更新W和B的过程这个求偏导数是看W在损失函数的斜率超参数:人为指定的参数经验值0.05-0.001之间在代码中会封装成adam这样的优化器
2024-10-22 17:46:21
126
原创 【机器学习基础】激活函数
Sigmoid函数观察导数图像在我们深度学习里面,导数是为了求参数W和B,W和B是在我们模型model确定之后,找出一组最优的W和B,使我们那个模型输入的x,得出我们Y最近我们真实结果的一个Y导数函数图像,往两边走的话,它的导数为零。如果这样的情况出现的话,出现梯度消失。我们希望它的导数是一个平稳值,不要大也不要小值落在,无穷大的时候或者无穷小的时候,它的导数就接近于零,此时W和B就不能更新了,无法找到最优的W和B。你就是你不断找不找,每天也走一走个几米几米远,事实上W和B在几千米远之外
2024-10-22 12:33:45
517
原创 【机器学习基础】卷积保持通道数不变原因
综上所述,保持512通道数不变的设计,主要是为了在提取高级特征时有效地控制计算复杂度和参数规模,同时确保网络具有足够的表达能力。在这个网络架构中,卷积层的通道数随着网络的深度不断增加,达到512后保持不变。C3D后期卷积保持通道数不变。
2024-10-22 11:30:57
407
原创 【机器学习基础】nn.Dropout的用法
由以上代码可知Dropout还可以将部分tensor中的值置为0。一句话总结:Dropout的是为了防止过拟合而设置。1.nn.Dropout用法一。2.nn.Dropout用法二。
2024-10-18 19:58:56
868
原创 【机器学习基础】pytorch中的zero_grad()
根据pytorch中backward()函数的计算,当网络参量进行反馈时,梯度是累积计算而不是被替换,但在处理每一个batch时并不需要与其他batch的梯度混合起来累积计算,因此需要对每个batch调用一遍zero_grad()将参数梯度置0.这一行代码执行参数更新,即根据刚才计算出的梯度调整模型的参数(权重和偏置)。另外,如果不是处理每个batch清除一次梯度,而是两次或多次再清除一次,相当于提高了batch_size,对硬件要求更高,更适用于需要更高batch_size的情况。
2024-10-14 17:48:25
585
原创 【机器学习基础】Pytorch中的forward()和__init__()函数
init()是一个类的构造函数,用于初始化对象的属性。它会在创建对象时自动调用,而且通常在这里完成对象所需的所有初始化操作。forward()是一个神经网络模型中的方法,用于定义数据流的向前传播过程。它接受输入数据,通过网络的各个层进行计算,最终返回输出结果。在神经网络的 PyTorch 实现中,init。
2024-10-12 20:06:19
594
原创 【数学基础】方差与标准差
参考:https://www.bilibili.com/video/BV1eE411L7x6/?spm_id_from=333.337.search-card.all.click&vd_source=f8471cd815546af5608f92c27e8247c2
2024-10-03 12:16:54
364
原创 origin技巧
https://blog.csdn.net/m0_47746156/article/details/121295151https://blog.csdn.net/weixin_42433809/article/details/122730622
2024-02-13 03:24:28
1059
原创 【基础】DSC曲线分析
一般情况下都会指明Endo(Exo)所指方向(向上还是向下),这样才能快捷准确知道曲线的峰对应的是吸热还是放热效应。如高分子聚合物的固化反应(放热)在该图中应该是向下的峰,熔点(吸热)的话就是向上的峰;heat flow是热流,单位是mW。tc:结晶温度(散热峰)tm:熔融温度(吸热峰)tg:玻璃化转变温度。
2024-01-27 21:11:48
14498
原创 【Qt】LINK : error LNK2001: 无法解析的外部符号 WinMainCRTStartup
取消勾选“使用jom代替nmake”考虑是pro文件中中文编码问题?编译器没找到main文件入口?
2023-12-11 21:08:18
600
原创 【基础】TCP不使用两次握手原因
假设不采用“三次握手”,那么只要server发出确认,新的连接就建立了。由于现在client并没有发出建立连接的请求,因此不会理睬server的确认,也不会向server发送ack包。原文链接:https://blog.csdn.net/xumin330774233/article/details/14448715。
2023-06-06 16:53:01
225
原创 【算法基础】NSGA-II:非支配排序遗传算法
geatpy2库:Geatpy是一个高性能实用型进化算法工具箱,提供许多已实现的进化算法中各项重要操作的库函数,利用“定义问题类 + 调用算法模板”的模式来进行进化优化,可用于求解单目标优化、多目标优化、复杂约束优化、组合优化、混合编码进化优化等 Geatpy。对于解i,从与i在同一非支配前沿中选择与解i最相近的两个点i-1和i+1为顶点组成一个长方形(cuboid)在计算完每个解的拥挤距离后,从一定程度上来说,某个解的拥挤距离越小,这个解被其他解拥挤的程度越高。:支配数,支配解p的解数量。
2023-04-08 20:56:26
2270
原创 【C++基础】C++除法陷阱
计算2个double类型相除结果,如61/387,应得0.15*****检查发现“/” 运算会自动将结果四舍五入,直接用“/”计算结果却为0。
2023-03-23 16:39:04
466
原创 【Qt基础】QT子线程循环任务,子线程信号槽无法被触发
从上述代码中可以看出,processEvents函数主要是将正在处理的事情的控制权还给Qt,通俗点来说就是,正在干的事情太耗时间了。了processEvents函数后,会把这个耗时间的东西踢出来,自己一个去慢慢耗。我继续去监控其他的事件。
2023-03-14 22:31:12
656
原创 【控制基础】限位开关一般接常闭
伺服电机的限位开关的选用可以选用常开,也可以用常闭。但是还是建议使用常闭触点,比如说,你用了一个常开触点,那么这个限位有一天坏了,你并不能马上发现,因为它的状态就是一直是常开的,只有等到开关压合了,发现起不到限位的作用,你才会意识到是你的开关坏了。但是如果用常闭触点,因为你的一开始状态就是闭合的,开关如果坏了,马上就会断开,也就是说能立刻检查出来限位开关有问题。一般限位开关都会用常闭触点,因为在电气控制里面,只有常闭触点闭合了,这个控制电路才能导通。
2023-02-08 23:04:32
6722
原创 【C++基础】for循环中尽量不要用浮点数double/float
中的值是0-01111111110-1110011001100110011001100110011001100110011001100110通过在浮点计算器中输入它得到的值,0.95000016然后添加0.05到该值上就可以了1.0。当使用浮点值时,并不是每个值都可以精确表示,0.95+0.05 > 1因为0.95不能用一个double值精确表示。这就是为什么你不应该在循环中使用浮点数(或者更一般地说,将浮点计算的结果与一个精确值进行比较)。看看维基百科对浮点精度的看法。
2023-02-08 00:31:26
1359
原创 【C++基础】delete 与 delete[] 区别
此种情况中的释放效果相同,原因在于:分配简单类型内存时,内存大小已经确定,系统可以记忆并且进行管理,在析构时,系统并不会调用析构函数, 它直接通过指针可以获取实际分配的内存空间,哪怕是一个数组内存空间(在分配过程中 系统会记录分配内存的大小等信息,此信息保存在结构体_CrtMemBlockHeader中, 具体情况可参看VC安装目录下CRT\SRC\DBGDEL.cpp)但是如果是C++ 对象数组就不同了!
2023-02-05 02:55:30
183
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人