python
文章平均质量分 70
RichardCV
厦门某厂图像(AI)算法工程师,请多指教~
展开
-
【python】 numpy 中常用随机数函数的使用和记忆(不易混淆)
在使用numpy生成随机数过程中,通常有多个函数,容易混乱使用,也不知道哪些要加括号,哪些不需要加括号。本文主要总结使用过程中常用随机数生成的一些函数。包括这些函数的使用。原创 2024-04-14 17:55:20 · 1093 阅读 · 0 评论 -
【python、opencv】opencv仿射变换原理及代码实现
仿射变换是opencv的基本知识点,主要目的是将原始图片经过仿射变换矩阵,平移、缩放、旋转成目标图像。原始图像3个点为src,变换后的3个点名为dst,从数字也能看出来,这个变换就是x,y缩小一半。borderMode (可选): 边界模式,用于处理超出边界的像素。其中x,y是原始图像坐标,u,v是变换后的图像坐标。borderValue (可选): 当使用常量填充时的边界值,默认为 0。dst (可选): 输出图像,可以是预先创建的空白图像。3点法,也叫方程法,通过不共线的3个点确定仿射变换矩阵。原创 2023-12-07 20:53:53 · 824 阅读 · 0 评论 -
【python】pip install 国内源
python很多库都需要用国内镜像才能比较快,常用的有临时换源或长久换源。在用户主目录加上一个pip文件夹,里面增加一个pip.ini文件,例如。国内源常用的有以下几种。home下创建.pip。原创 2023-12-05 20:07:25 · 787 阅读 · 0 评论 -
【pytorch】从yolo的make_grid理解torch.meshgrid、torch.stack
w=3,h=6对应的值就是[6,3]也就是第6行,第3列。torch.meshgrid 是 PyTorch 中的一个函数,这个函数通常用于创建坐标点的网格,以便进行一些网格上的操作,比如插值或者计算函数值。torch.stack((xv, yv), 2)就是将上述行列坐标信息堆叠在第2个维度,这样子每个位置就有各自的行列坐标值。可以看到yv实际上是一个纵坐标的网格,每个值都代表着自己所在的行,分别对应0-3行。可以看到w=1,h=2对应的值就是[2,1]也就是第2行,第1列。创建网格代码如下,那么什么是。原创 2023-11-28 20:33:27 · 923 阅读 · 2 评论 -
【Python】np.unique() 介绍与使用
在 numpy.unique 函数中,axis 参数用于指定在哪个轴上执行操作,但在默认情况下,该参数通常是 None,表示在整个数组上执行操作。在很多情况下,我们不需要设置 axis 参数,因为默认值已经能够满足大多数需求。如果你的输入数组是多维的,而且你想在特定轴上找到唯一元素,那么你可以指定 axis 参数。# 在轴 0 上找到唯一元素# 在轴 1 上找到唯一元素输出。原创 2023-11-23 20:34:57 · 1470 阅读 · 0 评论 -
【pytorch】中gather函数的理解
如果指定dim=0,则index里面的数不能超过1,指定dim=1,则index不能超过2,指定dim=3,则index不能超过4。针对a[0]或者a[1] , 在高度维度H上,分别是3行,a[0][0:2] a[1][0:2]。例如在第b[0,1,2]的位置,则选择a[0][index[0,1,2]][2]的值进行代替即可。因此,如果选择dim=1,则index 张量里面的数必须在0-2之间,不然会越界,此时,第一个维度C是不会改变的,还是存在两个通道C,分别是a[0]和a[1],原创 2023-11-21 20:28:04 · 726 阅读 · 0 评论 -
【python】 @property属性详解
python@property详解转载 2023-09-19 16:11:55 · 3533 阅读 · 3 评论 -
深度学习归一化原理及代码实现(BatchNorm2d,LayerNorm,InstanceNorm,GroupNorm)
本文记录总结pytorch中四种归一化方式的原理以及实现方式。方便后续理解和使用。原创 2023-09-18 19:27:25 · 1295 阅读 · 2 评论 -
【GAN】GANLoss之‘vanilla‘, ‘lsgan‘, ‘wgan‘, ‘hinge‘的具体计算方式及实现
由于在实际使用中遇到了多种形式的GANLoss,就整理了以下常用的四种GANLoss在应用中的区别,包括'vanilla', 'lsgan', 'wgan', 'hinge'。原创 2023-06-26 10:53:43 · 2026 阅读 · 0 评论 -
【python】读写txt,npy,csv文件
创建列表data,使用open()函数以写入模式打开一个名为data.csv的文件,并使用csv.writer()函数创建一个写入器对象。例如,'rb’表示以二进制模式打开文件进行读取,'wb’表示以二进制模式打开文件进行写入。使用open()函数打开名为data.csv的CSV文件,并将其用csv.reader()函数进行读取,逐行打印CSV文件的内容。追加模式(‘a’):以追加模式打开文件,如果文件存在,则将新数据追加到文件末尾,如果文件不存在,则创建新文件。这个也是一样,就load函数导入就行了。原创 2023-06-01 09:49:42 · 454 阅读 · 0 评论 -
【python】索引img[:,:,::-1]是什么意思
s[start:stop:step] —— 返回从索引值为 start 开始一直到索引值为 stop 的那个字符之前的,以 step为步长提取的所有字符。s[start:stop] —— 返回从索引值为 start 开始一直到索引值为 stop的那个字符之前的所有字符。s[:stop] —— 返回从字符串开头一直到索引值为 stop 的那个字符之前的所有字符。s[start:] —— 返回从索引值为 start 开始一直到字符串末尾的所有字符。s[index] —— 返回索引值为 index 的那个字符。原创 2023-05-25 15:42:27 · 375 阅读 · 0 评论 -
【python】 图片读取方法
PIL在深度学习数据增强中用到了不少,也是一个经常使用到的包。opencv在图像处理方面,感觉应该是用的最广泛的包了。python图像读取的方式主要是opencv,PIL。原创 2023-05-23 11:23:43 · 1341 阅读 · 0 评论 -
【python】图片numpy和pytorch tensor的互相转换
经常使用到的场景是从本地opencv读取一张图片,需要将图片由numpy格式转为tensor格式,并经过一些通道变换(h,w,c)->(b,c,w,h)。transpose 可以理解为修改维度的先后顺序,例如将第三维度拉到第一维度,拉完之后在相应维度上的信息没有发生改变。其中代码的transpose、permute、unsqueeze、squeeze、np.newaxis都是维度的变化。torch tensor 的transpose 只能切换两个维度,permute才能切换多个维度。原创 2023-05-24 20:16:27 · 700 阅读 · 0 评论 -
【python】hasattr,getattr,setattr原理及在深度学习中的使用
hasattr,getattr,setattr 均涉及类(class)示例对象的属性和方法。需要注意的是,这是最简单的例子,nn.conv 可以换成任意nn.module 模块。hasattr() 函数用来判断某个类实例对象是否包含指定名称的属性或方法。如果是多卡训练,权重需要多个module.names 如果单卡训练则不用。无论是属性名还是方法名,都在 hasattr() 函数的匹配范围内。设置对象属性值或方法值,该属性不一定是存在的,即,可以新建。训练时多个卷积,推理时重参数为一个3x3卷积。原创 2023-05-23 15:03:03 · 212 阅读 · 0 评论 -
【python】可变、不可变数据类型
可变就是说在相同内存地址的内容可以发生改变,反之,不可变类型就是相同地址的内容不能被修改。个人学习中想要记录的一些东西,不可变数据类型中的数字和字符,对日常使用无影响,元组只要记住不可变就行,因为不可被串改,因此可作为记录使用。若想使用能改变的就用列表或转成numpy数组。可变数据类型记住浅拷贝的时候,原始值和目标值改变一个,另外一个也会发生改变。原创 2023-05-11 20:40:08 · 954 阅读 · 3 评论