Python
文章平均质量分 51
Python学习
Mr.zwX
2019年进入电子科技大学接触计算机(机器学习/深度学习(CV、NLP、GNN)、时空数据挖掘、一点点前后端开发),2022年在电子科技大学实验室科研,2023年在复旦大学NLP组实习,2023年9月至今,在北京大学人工智能研究院科研(模型加速/压缩、隐私计算)...保持努力,anyway,这个平台是我记录一些乱七八糟计算机笔记的地方,供(记性不好的)自己复习,同时也分享给大家。如需联系:请发邮件至wenxuan225@qq.com
展开
-
关于CUDA error: device-side assert triggered问题小技巧
耐心debug,但是在多线程代码中无法使用pdb来调试,听说可以关掉多线程或者不用gpu跑,就可以调试并显示出出错的代码位置了。遇到这种cuda的越界bug,可以优先查看是不是scatter代码处出现越界!去仔细检查mask的维度能否存得下topk的值。原创 2024-08-12 17:06:09 · 226 阅读 · 0 评论 -
【Python踩坑】关于tensor reshape后做运算(求和/平均)的问题
总结一句,如果想将tensor分成n组,然后对每组进行运算(比如求和、求平均),那么,要记得把组数放在前面的维度上(也就是上面例子中的3),把每组的元素数放在后面的维度上(也就是上面例子中的2)。试想一个简单的问题:一个维度是[1, 6]的tensor,我想其中的6个元素分成3组,每组2个元素,然后对每组中的元素求平均值,得到一个维度是3的输出。应该怎么用Python实现?最直观的想法就是:将[1, 6]先reshape成[2, 3]或[3, 2],然后在2对应的维度上进行运算,最终得到维度是3的结果。原创 2024-05-01 01:09:22 · 299 阅读 · 3 评论 -
PyTorch中定义可学习参数及放入cuda时的坑
必须要注意的是,新定义的self.alpha必须要放入optimizer中才可以训练,因此,上面这段预推理的代码必须要放在声明optimizer之前!采用这种写法的话,必须要在正式训练模型之前进行一次预推理,该预推理可以是伪输入数据的推理,目的是预推理时构建好每一层所需要的self.alpha可学习参数。写法1先定义nn.Parameter,后放入cuda,会导致参数重新变回到tensor,从而不可学习;写法2先放入cuda,后定义nn.Parameter,可以成功定义参数,可以学习。原创 2024-01-18 19:04:47 · 788 阅读 · 0 评论 -
【Python】一个最基础,但是超难看出来的类声明为tuple的BUG
小结一句,Python末尾是没有分号或者逗号的,要防止误敲无关字符!为啥这个class是个tuple类型呀!原因非常简单,我在声明类的时候,原创 2023-10-25 11:54:14 · 103 阅读 · 0 评论 -
【Bash】记录一个长命令换行的BUG
最后,小结一句:在用bash写长命令时,可以分行,但是分行要带换行符 \,并且不要随意用注释,会导致后面的参数无法传入。实在不会的话,在bash里放不换行的长命令就行。由于这个命令太长了,有这样一些问题:1. 改起来不方便,2. 没法存档,3. 不方便在之前命令的基础上修改后并行跑模型。所以,这个长命令可以写成这样一个。接下来,就是我踩坑的地方了!原创 2023-10-24 16:21:11 · 781 阅读 · 0 评论 -
【关于乘法这些事儿】概念和代码的区分
这种运算方式得到的结果是一个标量。由此可见,内积和矩阵乘法中每个输出值的计算方式一致。原创 2023-08-25 22:10:22 · 515 阅读 · 0 评论 -
【Python基础查漏补缺】列表的append()和extend()函数
两者是否相同取决于插入元素的类型——如果要向列表中插入单个元素(比如一个数或字符),应该用append(),extend()会报错;如果要向列表中插入一个列表,两者得到的不同,append()是直接插入列表进去,extend()则是插入一个序列进去。...原创 2022-08-28 16:21:45 · 373 阅读 · 0 评论 -
【Python基础查漏补缺】常用数组或矩阵的维度操作(切片、压缩展开、转置、排列、展平)
【代码】【Python基础查漏补缺】常用数组或矩阵的维度操作(切片、压缩展开、转置、排列)原创 2022-08-26 22:19:53 · 2393 阅读 · 2 评论 -
Python编程定义函数参数的小tips
问题描述写深度学习模型的时候,需要往函数中传参数,但是经常会遇到non-default parameter follows default parameter这样的红线报错,一直没有搞清楚具体的原因。问题原因将没有默认值(default)的参数在定义时放在了有默认值的参数的后面。解决方案解决方案就很简单了,主要有两种:将没有默认值的参数放在有默认值的参数的前面给没有默认值的参数加一个空的默认值(如None),如果是布尔值,那就给个默认值False,灵活解决即可...原创 2022-03-08 11:27:33 · 1532 阅读 · 0 评论 -
UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xf9 in position 56: illegal multibyte sequence
抽空慢慢把载入数据csv/txt文件时出现的UnicodeDecodeError报错问题的解决方案整理出来,虽然是玄学问题,但是多试试方法总还是可以解决的(特别是处理出来几十万量级的数据集出现这个问题,心态比较容易稳不住)方法一:将文件用txt文本格式打开,另存为时选择utf-8编码格式,然后转回csv格式方法二:直接用office或wps将报错的csv文件打开,然后另存一份替换原文件...原创 2021-10-17 12:39:00 · 922 阅读 · 0 评论 -
【数据挖掘】Python绘制一组样本的CDF概率分布函数(经验分布函数)
CDF是什么?简单对概率分布函数进行一个描述,在概率论中要研究一个随机变量ξ取值小于某一数值x的概率,这概率是x的函数,称这种函数为随机变量ξ的分布函数。F(x)=P(X<x),F(+∞)=1,F(−∞)=0F(x)=P(X<x),F(+\infin)=1,F(-\infin)=0F(x)=P(X<x),F(+∞)=1,F(−∞)=0CDF对机器学习有什么用?可以非常直观地对预测误差进行分析,可以判断出当误差为某个值时的具体概率是多少,以该图像指标为基础为后续的优化和改进做铺垫。现原创 2021-07-21 20:29:03 · 4569 阅读 · 2 评论 -
Matplotlib绘制水平/垂直线以及带变量图例 学习记录
构造函数图绘制水平线和垂直线绘制带变量的图例各个参数的自定以设置import matplotlib.pyplot as pltimport numpy as npx = np.linspace(-5, 5, 300)y1 = 2 * np.sin(x)y2 = 2 * np.cos(x)plt.plot(x, y1, label='y1=sinx')plt.plot(x, y2, label='y2=cosx')list = [-2.2355, -1.1547, 0.2578,.原创 2021-07-21 10:18:05 · 2028 阅读 · 0 评论 -
【Linux】在虚拟机Ubuntu18.04上安装配置Anaconda3及基本命令
之前我写过如何在Window10系统中配置Anaconda3,目的是为了方便更好地管理Python环境。今天记录在Linux上配置Anaconda3的原因也很简单,一些深度学习的模型在Linux上才能得到最好的支持,所以趁着周末,配置了一波虚拟机+Ubuntu18.04+AnacondaWindows系统配置Anaconda:这可能是一篇最贴心的Anaconda指北了(踩坑点)1 下载安装VMware Workstation Pro由于VMware我很早之前就安装了,所以也忘记了这个软件是不是需要.原创 2021-07-17 16:53:23 · 7388 阅读 · 5 评论