python(pytorch)编程基础
以深度学习为主的python编程基础总结
CV矿工
这个作者很懒,什么都没留下…
展开
-
pkl 序列化和反序列化时环境必须一致
在上面的示例中,我们首先创建了一个Python字典对象data,然后使用pickle模块的dump()函数将其保存到名为data.pkl的pkl文件中。pkl文件是Python中pickle模块的产物,pickle模块可以将Python对象结构化并保存到文件中,以便之后可以重新加载和恢复。在Python中,我们可以使用pickle模块的dump()函数将Python对象序列化并保存到pkl文件中,使用load()函数从pkl文件中反序列化并加载Python对象。原创 2024-05-22 11:32:28 · 346 阅读 · 0 评论 -
pandas SettingWithCopyWarning解决办法
解决办法和说明:https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy按照说明,将想要使用的slice 后的 dataframe进行深拷贝,一般就解决了问题。但最好确定你的目的是什么,比如如果是 slice 后就是要改变具体某个值(在原内存上),那最好用.loc来做。或者目的就是生成新的 dataframe 然后做操作,那最好先 deepcopy 下。原创 2024-05-20 15:01:15 · 426 阅读 · 0 评论 -
python中的 divmod 函数
divmod()方法采用两个参数值,并返回由它们的商和余数组成的一对数字(元组)。原创 2024-04-08 23:10:27 · 513 阅读 · 0 评论 -
python 中的 collections 使用详解
可以设置一个默认值作为字典中新key的默认值。该默认值可以是任何对象, 包括函数、列表、元组、集合等。默认值不需要像dict那样事先定义,因为它在需要的时候会自动创建使用defaultdict,可以简化代码并提高代码的可读性,而且可以防止KeyError异常的出现。同时,defaultdict的性能与普通字典相当,因为底层实现并不影响字典的性能。原创 2024-04-07 22:11:19 · 1053 阅读 · 0 评论 -
contextlib.redirect_stdout 使用
contextlib.redirect_stdout(io.StringIO()) 是 Python 中的一个上下文管理器,用于临时重定向标准输出流(stdout)到指定的文件对象或文件类对象。通常情况下,标准输出流指向终端(console),但有时你可能希望将输出重定向到内存中的字符串缓冲区,以便在代码中捕获和处理输出内容。在这个示例中,我们首先创建了一个字符串缓冲区 output_buffer。原创 2024-03-29 15:28:56 · 463 阅读 · 0 评论 -
python函数参数中独立星号*的作用
python函数中间有一个()分隔,星号后面为*命名关键字参数,星号本身不是参数**。命名关键字参数,在函数调用时必须带参数名字进行调用。原创 2024-03-28 17:25:37 · 170 阅读 · 0 评论 -
常见几种加密算法的Python实现
全称:MD5消息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。md5加密算法是不可逆的,所以解密一般都是通过暴力穷举方法,通过网站的接口实现解密。原创 2023-12-15 17:05:44 · 2424 阅读 · 0 评论 -
python3 获取 进程id 线程id
【代码】python3 获取 进程id 线程id。原创 2023-09-28 17:41:16 · 602 阅读 · 0 评论 -
Python 关于整除以及负数取余遇到的问题
这里面就可以发现-13用 “//” 除以10的时候,结果是-2,从结果中我们可以看出,“//”是向下取整,“-1.3”会被取成-2,如果想要得到-1,就需要用“/”,然后将结果强制转换为int型。不过在“a//n”这一步,当a是负数的时候,我们上面说了,会向下取整,也就是说向负无穷方向取整。最近在编码的过程中,在整除以及取余的时候遇到了一些比较迷的问题,这里码一下这些问题,以备日后查看。在Python中,取余的计算公式与别的语言并没有什么区别:r=a-n*[a//n]这里r是余数,a是被除数,n是除数。原创 2023-09-28 17:35:22 · 220 阅读 · 0 评论 -
EOFError: Ran out of input
使用pickle.load(f)加载pickle文件时,报错:EOFError: Ran out of input.1、加载前判断文件是否为空。解决办法:加载非空文件。可能原因:文件为空。原创 2023-09-28 17:21:07 · 3140 阅读 · 1 评论 -
Python如何优雅地可视化目标检测框
通过cv2.rectangle 函数设置 thickness, 我们可以得到填充后的图像,进而利用opencv中的 cv2.add_weight 函数可以实现透明效果.上述代码中, 首先计算标签文本的大小, 然后据标签文本大小进行矩形填充, 最后使用函数cv2.putText 来画出对应的标签文本.接下来我们来给矩形框添加标签,我们观察上述画图函数,注意最后一个参数thickness,如果此值等于-1,那么将对矩形框执行填充效果.原创 2023-09-28 17:18:46 · 1627 阅读 · 0 评论 -
Python3中类型注解(typing)详解
学习和编写过C++和Java的工程师应该都熟悉在声明变量或方法时,需要指定变量或方法的返回值的类型,即显式声明变量。而在Python中,声明变量时无需指定其类型、定义方法时需声明其返回值类型。Tips: Python的动态类型、一切即为对象概念的体现。虽然这些操作给Python的编写带来的极大的便利,使得人们可以更加注重与相关逻辑的实现;但同时也会降低代码的可维护性与牺牲一部分代码的可读性。人们常常会为方法增加大量的方法注释和变量注释;原创 2023-09-28 16:50:52 · 755 阅读 · 0 评论 -
Python中Generators教程
要想创建一个iterator,必须实现一个有__iter__()和__next__()方法的类,类要能够跟踪内部状态并且在没有元素返回的时候引发StopIteration异常.这个过程很繁琐而且违反直觉.Generator能够解决这个问题.python generator是一个简单的创建iterator的途径.前面讲的那些繁琐的步骤都可以被generator自动完成.简单来说,generator是一个能够返回迭代器对象的函数.原创 2023-09-28 16:40:51 · 100 阅读 · 0 评论 -
Python 日期和时间戳的转换
datetime.date: 表示日期,常用的属性有year、month和daydatetime.time: 表示时间,常用的属性有hour、minute、second和microseconddatetime.datetime: 表示日期时间datetime.timedelta: 表示两个date、time和datetime实例之间的时间间隔,最小单位可达微秒datetime.tzinfo: 时区相关对象的抽象基类,由time和datetime类使用。原创 2023-09-28 16:30:37 · 310 阅读 · 0 评论 -
Python 类中的 __init__、__new__、__call__ 方法
任何事物都有一个从创建,被使用,再到消亡的过程,在程序语言面向对象编程模型中,对象也有相似的命运:创建、初始化、使用、垃圾回收,不同的阶段由不同的方法(角色)负责执行。定义一个类时,大家用得最多的就是方法,而和使用得比较少,这篇文章试图帮助大家把这3个方法的正确使用方式和应用场景分别解释一下。原创 2023-09-28 16:00:52 · 267 阅读 · 0 评论 -
cell-var-from-loop问题和解决方案
【代码】cell-var-from-loop问题和解决方案。原创 2023-07-10 20:54:31 · 309 阅读 · 0 评论 -
python 找出序列里符合要求的元素
上面这个 list 只是个例子,其实不止 list,本文适用的对象是所有 iterables ,比如 list、 tuple、set 等 sequence 类型,也可以是字符串、甚至是自定义的对象。简单来说,iterables 是可以使用 for 的对象。原创 2023-07-10 20:52:24 · 751 阅读 · 0 评论 -
python dict 字典合并
【代码】python dict 字典合并。原创 2023-04-13 17:55:39 · 218 阅读 · 0 评论 -
RuntimeError: cuDNN error: CUDNN_STATUS_NOT_SUPPORTED
查了很久,还是没找到我对应的问题的解决方案。最后还是大佬给来一个可行的代码,我才找到的。原创 2023-04-13 17:53:33 · 357 阅读 · 0 评论 -
open3d里pointcloud和numpy数组之间的转化
open3d中在使用open3d.io.read_point_cloud()读取点云数据后,返回的是pointcloud类型的数据,有时候希望能用numpy处理点云,这时候需要进行二者之间的转换(严格地说只是数据经过复制再传输而已)。2.numpy数组中的数据转化成pointcloud。1.pointcloud转换成numpy。原创 2023-03-31 18:03:07 · 705 阅读 · 0 评论 -
在mysql数据库中查询某个字段不重复的记录
使用带有GROUP BY字句的查询语句时,在SELECT列表指定的列要么是GROUP BY 指定的列,要么包含聚合组函数。SELECT DISTINCT [字段名] FROM [表名] WHERE [检索条件字句]Distinct关键字主要用来在SELECT查询记录中根据某指定字段的值去除重复记录。或者 select distinct username from msg;实际上,我们完全可以用另一种办法来解决问题;只是需要用到子查询而已!查询表中某个字段不重复的记录。使用Distinct关键字。原创 2023-03-16 19:49:24 · 3257 阅读 · 0 评论 -
python之np.sum()用法详解
一般来说,不设置axis这个参数,那么就是把数组或者矩阵所有元素求和,不管数组是一维,还是多维,最终会把每一个元素相加求和。这里主要介绍了axis取值对求和结果的影响,axis其实可以看做是一个x,y,z轴的一个索引,索引可以从0开始,到size-1。表达式 a[x][y][0]+a[x][y][1]+a[x][y][2]+a[x][y][3]表达式 a[x][0][z]+a[x][1][z]+a[x][2][z]表达式 a[0][y][z]+a[1][y][z]求和结果 [2*4]求和结果 [2*3]原创 2023-03-03 18:16:07 · 3925 阅读 · 0 评论 -
Numpy 的广播机制高效计算矩阵之间两两距离
利用numpy可以很方便的计算两个二维数组之间的距离。二维数组之间的距离定义为:X的维度为(a,c),Y的维度为(b,c),Z为X到Y的距离数组,维度为(a,b)。且Z[0,0]是X[0]到Y[0]的距离。Z(m,n)为X[m]到Y[n]的距离。2 的每一行到 n*2 的两两之间欧氏距离。2 的矩阵 与 n * 2 的矩阵中,m。原创 2023-03-03 18:10:56 · 417 阅读 · 0 评论 -
Python 列表元素字符串转浮点
【代码】Python 列表元素字符串转浮点。原创 2023-02-08 16:46:28 · 246 阅读 · 0 评论 -
3D IoU python代码
【代码】3D IoU python代码。原创 2023-02-08 16:20:21 · 334 阅读 · 1 评论 -
Python合并list为字符串的方法(str的join方法)
将序列(列表或元组)中的元素以指定的字符连接成一个新的字符串。其中,str:指定的字符sequence:待连接的元素序列返回值为通过指定字符连接序列中的元素后生成的新字符串举例。原创 2023-01-28 20:04:33 · 2497 阅读 · 0 评论 -
pip install . 和 pip install -e . 的区别
pip install . :安装后的模块freeze在pip/conda依赖下,换句话说,再修改本地的原项目文件,不会导致对应模块发生变化。pip install -e .:-e 理解为 editable,修改本地文件,调用的模块以最新文件为准。把python项目可安装化以后,执行pip install .或者pip install -e .安装。所以当你改了本地的代码,但是不生效,而使用环境里的包,那说明你装的时候,忘记加-e 啦,一定注意。原创 2022-12-19 20:17:52 · 4888 阅读 · 0 评论 -
flake8 错误修复指南
要么为更特定的异常(内建的或定制的)断言,使用 assertRaisesRegex,要么使用 assertRaises 的上下文管理器形式(使用 self.assertRaises (Exception)作为 ex:) ,对 ex 中可用的数据进行断言。如果属性应该是可变的,那么在 _ slots _ _ 中定义属性,以便保存每个实例的内存,并防止在实例上意外地创建其他属性。使用可调用(x)以获得一致的结果。它们可能适用于您,也可能不适用于您,如果您认为它们有用,请在您的配置中显式启用它们。原创 2022-12-19 19:54:00 · 636 阅读 · 0 评论 -
Pytorch-detach()用法
神经网络的训练有时候可能希望保持一部分的网络参数不变,只对其中一部分的参数进行调整。或者训练部分分支网络,并不让其梯度对主网络的梯度造成影响.这时候我们就需要使用detach()函数来切断一些分支的反向传播.原创 2022-12-16 11:59:49 · 1028 阅读 · 0 评论 -
python sqlalchemy 查询条件设置
在实际编程中需要根据各种不同的条件查询数据库记录,SQLAlchemy查询条件被称为过滤器。这里列出了最常用的过滤器的使用方法。原创 2022-12-12 11:47:28 · 1766 阅读 · 0 评论 -
tensor复制与保存
tensor clone detach 的区别和使用原创 2022-11-08 17:35:00 · 2106 阅读 · 0 评论 -
【DeepLearning】【PyTorch 】PyTorch 损失函数封装中 size_average、reduce 和 reduction 三个参数的意义
已过时(Deprecated)(见 reduction). 一般地,losses 损失函数值为 batch 中对所有 loss 元素的平均值. 这里注意,对有些类型的损失函数,在单个训练样本中存在多个元素. 如果 size_average 域设为 False,losses 损失函数值为 minibatch 中对所有 loss 元素的求和. 当 reduce 设为 False 时,忽略 size_average 域. 缺省为:True.size_average (布尔类型, 可选参数)原创 2022-11-08 17:02:38 · 1096 阅读 · 0 评论 -
pytorch中torch.isnan()和torch.isfinite()
这个num必须是tensor。原创 2022-11-08 10:14:29 · 380 阅读 · 0 评论 -
解决 python 报错 TypeError: cannot unpack non-iterable int object
总结:这个报错,基本就是函数返回项的数目和接受项不一致导致的,最后的return没问题的话,就是前边哪里还有其他return而已。find下 return。应该是不能用 a, b = 1 的方式赋值,那么就换个赋值方法。原创 2022-11-08 10:12:33 · 3979 阅读 · 0 评论 -
Python raise用法 以及python 常见异常类型
其中,用 [] 括起来的为可选参数,其作用是指定抛出的异常名称,以及异常信息的相关描述。如果可选参数全部省略,则 raise 会把当前错误原样抛出;如果仅省略 (reason),则在抛出异常时,将不附带任何的异常描述信息。显然,每次执行 raise 语句,都只能引发一次执行的异常。当然,我们手动让程序引发异常,很多时候并不是为了让其崩溃。事实上,raise 语句引发的异常通常用 try except(else finally)异常处理结构来捕获并进行处理。原创 2022-11-01 15:25:46 · 2220 阅读 · 0 评论 -
python str.format输出花括号本身
使用str.format输出花括号本身。原创 2022-10-31 20:16:45 · 604 阅读 · 0 评论 -
python str字符串转uuid实例
【代码】python str字符串转uuid实例。原创 2022-10-31 20:15:33 · 708 阅读 · 2 评论 -
python 获取文件大小,创建时间和访问时间
【代码】python 获取文件大小,创建时间和访问时间。原创 2022-10-28 14:43:41 · 1150 阅读 · 0 评论 -
Python OPenCV 图片简单拼接 hconcat vconcat函数使用
【代码】Python OPenCV 图片简单拼接 hconcat vconcat函数使用。原创 2022-10-28 11:23:44 · 1652 阅读 · 0 评论 -
Python基础:numpy中any()和all()的用法
numpy.array.any()和numpy.array.all(),一个是。np.array.any()是或操作,任意一个元素为True,输出为True。np.array.all()是与操作,所有元素为True,输出为True。原创 2022-10-28 10:21:24 · 2043 阅读 · 0 评论