python
文章平均质量分 92
绛洞花主敏明
研究生在读,喜欢刺激有挑战。
展开
-
使用NMS算法去除目标中存在包含关系的矩形框
一、NMS算法NMS算法(非极大值抑制算法)的主要作用是通过搜索局部极大值的思想来实现,主要的实现步骤可以分为以下几个步骤:1、设定目标框的置信度阈值,常用的阈值为0.5左右。2、根据置信度排序排列候选框列表。3、选取置信度最高的框A添加到输出列表,并将其从候选框的列表中删除。4、计算A与候选框列表中的所有框的IOU值,删除大于阈值的候选框。5、重复上述过程,直到候选框的列表为空,返回输出列表。其中计算IOU值的公式为:NMS算法的代码为:#coding:utf-8import num原创 2020-12-12 16:29:52 · 2226 阅读 · 2 评论 -
python: too many indices for array
出现这个问题的主要是维度不匹配,也就是说,矩阵中的维度出现了冗余的情况,例如数据中的数据维度不统一,导致矩阵的维度变为(n,)的情况产生。例如:一、数据中维度不同造成在上述例子中,a和b数组的维度大小不同,很难从报错中找出原因,我们可以i通过打印出数组的维度来进行错误的排查,打印数组的shape属性。如果直接使用a数组进行操作,数据不会报错,但若是直接对b数组进行操作的话,会直接提示:IndexError:too many indices for array解决办法:1、如果是数据中缺少了一个原创 2020-12-12 00:26:12 · 38972 阅读 · 5 评论 -
python的相对导入和绝对导入
Python 相对导入与绝对导入,这两个概念是相对于包内导入而言的。包内导入即是包内的模块导入包内部的模块。Python import 的搜索路径在当前目录下搜索该模块在环境变量 PYTHONPATH 中指定的路径列表中依次搜索在 Python 安装路径的 lib 库中搜索Python import 的步骤python 所有加载的模块信息都存放在 sys.modules 结构中,当 import 一个模块时,会按如下步骤来进行如果是 import A,检查 sys.modules 中是否转载 2020-08-07 15:35:03 · 605 阅读 · 0 评论 -
python -m命令与python直接运行区别
一、与直接执行的区别命令行执行.py文件时有两种加载方式:python xxx.py与python -m xxx。这是两种加载py文件的方式:前者叫做直接运行,此时脚本的__name__为'main';后者把模块当作脚本来启动,相当于import,此时脚本的__name__为'xxx'。这种启动方式时最好不要带后缀.py。不同的加载py文件的方式,主要是影响sys.path这个属性。sys.path是一个list,是当前Python解析器运行的环境,Python解析器会在这些目录下去寻找依赖库转载 2020-08-07 10:29:48 · 1927 阅读 · 0 评论 -
(深度学习)为什么GPU比CPU慢?
GPU由于擅长矩阵运算,在深度学习尤其是计算机视觉方面得到了广泛的应用。前几天在我废了好大劲在我的的电脑上安装了Tensorflow 2.0 - GPU,然后就迫不及待地去体验一下GPU的速度。我去Tensorflow官网上直接复制了一段代码,就是最简单的神经网络识别MNIST手写数字数据集。然后分别用GPU和CPU跑了以下,结果让我大吃一惊。之前听别人说用GPU通常会比CPU快好几倍,而我经过尝试发现GPU竟然比CPU还要慢了好多!经过请教别人和上网查资料得出结论:是因为模型规模过小,没有体现出GP转载 2020-07-15 09:43:37 · 3954 阅读 · 1 评论 -
Python函数返回不定数量的值方法
1、使用代码验证:def func_a(): return 1, 2, 3, 4if __name__ == '__main__': temp = func_a() print(type(temp))运行结果,确认返回的是一个tuple<class 'tuple'>2、稍微修改代码:def func_a(*args): return 1, 2, 3, 4if __name__ == '__main__': a, b, c, d = func_a() print(转载 2020-06-26 19:28:52 · 2055 阅读 · 0 评论 -
python方法中输入不定个数的参数
直接上代码def test1_var_args(*arg2): print("test1_var_args") print(arg2)def test2_var_arg(**arg): print("test2_var_args") print(arg)def test3_var_args(arg1,*arg2): print("test3_var_args") print(arg1) print(arg2)def test4_var_a转载 2020-06-26 19:12:21 · 3514 阅读 · 0 评论 -
Python编程之函数修饰符
实例1.第一步:最简单的函数,准备附加额外功能# -*- coding:gbk -*-'''示例1: 最简单的函数,表示调用了两次''' def myfunc(): print("myfunc() called.") myfunc()myfunc()输出:myfunc() called.myfunc() called.实例2.第二步:使用装饰函数在函数执行前和执行后分别附加额外功能# -*- coding:gbk -*-'''示例2: 替换函数(装饰)装饰函数的参转载 2020-06-13 10:22:46 · 195 阅读 · 0 评论 -
使用vscode打造python开发环境
1、准备一个项目并用vscode打开第一步:创建一个总项目目录D:\CodeProjects第二步:创建一个python总项目目录D:\CodeProjects\PythonProjects第三步:创建一个测试项目目录D:\CodeProjects\PythonProjects\opms第四步:在指定项目中创建python虚拟环境win+R输入cmd后点确定,依次执行下面三条命令:(-p后面的参数,可以换成其它python解释器的路径)D:cd D:\CodeProjects\Py转载 2020-06-04 18:58:50 · 7310 阅读 · 1 评论 -
Python中bytes与str的互转
a = "asdf"a = a.encode('utf-8')a:b'asdf'# bytes object b = b"example" # str object s = "example" # str to bytes bytes(s, encoding = "utf8") # bytes to str str(b, encod...转载 2020-04-21 12:10:48 · 304 阅读 · 0 评论 -
python Tkinter事件绑定,参数传递
python Tkinter事件绑定,参数传递一般情况下的处理方式为:#coding=utf-8 import Tkinter def handler(): '''事件处理函数''' print "handler" if __name__=='__main__': root = Tkinter.Tk() # 通过中介函数handlerAdapot...转载 2020-03-12 18:06:53 · 1664 阅读 · 0 评论 -
pip 安装包时出现time out的解决办法
原文链接使用pip安装软件时,网速特别慢,最快也才10k/s,时间长了之后会出现time out的错误,如图所示:这说明连接超时。解决的办法有三种,分别如下:1、设置超时时间pip --default-timeout=1000 install django2、临时切换成国内的镜像pip install -i https://pypi.douban.com/simple djang...转载 2020-02-13 18:04:58 · 2231 阅读 · 0 评论 -
python中取值的两种方式
使用过程,如下所示:a={'name':'tony','sex':'male'}获得name的值的方式有两种print a['name'],type(a['name'])print a.get('name'),type(a.get('name'))这两种的结果完全一致,并没有任何的差异。怎么选择这两种不同的字典的取值方式呢?如果字典已知,我们可以任意选择其中一个,当不确定字典中是否...转载 2020-01-19 14:19:21 · 3090 阅读 · 0 评论 -
python相关矩阵与协方差矩阵
相关系数矩阵pandas.DataFrame(数据).corr()import pandas as pddf = pd.DataFrame({ 'a': [11, 22, 33, 44, 55, 66, 77, 88, 99], 'b': [10, 24, 30, 48, 50, 72, 70, 96, 90], 'c': [91, 79, 72, 58, 53, 4...转载 2020-01-10 16:20:22 · 2243 阅读 · 0 评论 -
python中的静态方法
问题:pycharm中建立新的方法,出现如下的警告:在python中建立类一般使用如下的方法:class Dog(object): def run(self): print("running")run方法是类中的普通方法声明和创建静态方法,在方法上加上staticmethod注明一下class Dog(object): @staticmethod ...原创 2020-01-09 13:36:26 · 316 阅读 · 0 评论 -
python3中/和//的不同
一、python3中/和//不同之处python3中/表示浮点除法,即两者都是整数或者一方是浮点型或者两者都是浮点型,那么结果均为浮点数。其例子如下所示:一、m是int,n是int>>m = 1>>n = 2>>s = n/m>>print(s)>>2.0二、m是float,n是int>>m = 1.0&...原创 2019-03-27 17:49:28 · 1762 阅读 · 0 评论 -
Pyinstaller打包深度学习框架torch(torchvision)问题解决
使用pyinstaller打包程序的时候经常会出现各种各样的问题,根据本人花费了两天的时间解决问题的实际经验来看,要认真分析问题,理解Pyinstaller的打包机制才能从根本上解决问题。打包pytorch遇见的问题出现failed to execute script问题解析如果你想打包的程序包含torchvision, 且版本>=0.3.0则常规的打包方法到最后是行不通的,程序是...原创 2019-09-27 10:29:11 · 3918 阅读 · 0 评论 -
Python打包cx_Freeze工具使用
cx_Freezecx_Freeze构建脚本cx_Freeze建立在构建脚本(官方假设其名为setup.py),其基本格式为:import sysfrom cx_Freeze import setup, Executable# Dependencies are automatically detected, but it might need fine tuning.build_ex...转载 2019-09-27 14:20:35 · 919 阅读 · 0 评论 -
虚拟环境 venv的使用--(venv 一)
一、引言最近在学习《Flask Web Development 2nd Edition》的时候,作者开篇就介绍如何使用 venv 来管理 Python 环境 。自我觉得作者讲的非常好,想要将其总结下来,方便自己日后查询,也方便各位学习 Python 的同学一起学习。众所周知,项目的环境管理一直是比较头疼的问题,如果有两个项目,一个用的是 a 库的 v1 版本,一个用的是 a 库的 v2 版本...原创 2019-09-27 20:19:22 · 11760 阅读 · 1 评论 -
python 在列表,元组,字典变量前加*号和*args与**kwargs的区别。
在python基础学习中可能遗漏这一点,现在补上;在一个列表、元组或字典变量前加*,结果如下可以发现,在列表前加*号,会将列表拆分成一个一个的独立元素,不光是列表、元组、字典,由numpy生成的向量也可以拆分;那这些又有什么用呢?了解过函数中*args和**kwargs的人应该知道,这两个形参都接收若干个参数,通常我们将其称为参数组;*args:接收若干个位置参数,转换成元组tupl...原创 2019-10-10 17:25:50 · 505 阅读 · 0 评论 -
python模块的相对导入
包中层次如下:project/ __init__.py mypackage/ __init__.py A/ __init__.py spam.py #* print("In spam") *# grok.py #* print("In grok") *# ...原创 2019-10-11 15:37:44 · 383 阅读 · 1 评论 -
使用 py2exe 打包 Python 程序
本文链接:https://blog.csdn.net/bruce_6/article/details/82906444上回在《使用 PyInstaller 打包 Python 程序》中,我们介绍了使用 PyInstaller 对 Python 程序进行打包,今天带大家认识一个新的工具:py2exe。接下来将从这几个方面进行介绍:基本使用方法、高级参数、注意点等。简介 & 安装py2...转载 2019-09-26 14:42:48 · 264 阅读 · 0 评论 -
GRUB切换系统默认启用内核
在介绍GRUB切换系统默认启用内核的方法之前,我们首先了解一些背景知识。想必大家都知道,boot loader是计算机启动时运行的第一个程序。 它负责装载和传输控制信息到操作系统内核,而内核负责初始化其余的操作系统。GNU GRUB是一个非常强大的boot loader,可以加载很多种免费操作系统以及使用chain-loading的操作系统。 GRUB旨在解决启动个人电脑的复杂性。GRUB的...转载 2019-09-09 14:47:07 · 2538 阅读 · 0 评论 -
命令行调试Python程序
转载地址:https://blog.csdn.net/theonegis/article/details/52211799Python提供类似于C++ gdb的调试工具pdb,我们可以在Linux下使用pdb在命令行下进行Python程序的调试。官方参考网站:Python2: https://docs.python.org/2/library/pdb.htmlPython3: https:...转载 2019-07-18 18:07:04 · 1637 阅读 · 0 评论 -
python自建模块
在python中由于工程巨大需要对文件的各部分功能进行封装成自己的模块和包。以下主要是针对自建模块进行发布的介绍。使用pycharm新建包FIle-> new->python Package新建包,(注:新建的包为存在一个名为__init__.py文件的文件夹)新建的包中可以新建不同功能模块的py文件。根据我的工程为例:readjsonfile.py为我新建包中的一个文件...原创 2019-04-15 10:27:07 · 1605 阅读 · 0 评论 -
python 中is和”==“的区别
Python中有很多运算符,今天我们就来讲讲is和==两种运算符在应用上的本质区别是什么。is比较的是两个实例对象是不是完全相同,它们是不是同一个对象,占用的内存地址是否相同。莱布尼茨说过:“世界上没有两片完全相同的叶子”,这个is正是这样的比较,比较是不是同一片叶子(即比较的id是否相同,这id类似于人的身份证标识)。== 比较的是两个对象的内容是否相等,即内存地址可以不一样,内容一...转载 2019-04-09 17:14:42 · 124 阅读 · 0 评论 -
python中的self
python中的self代表类的实例,处理代码中可以使用self+“."+类中的方法的方式调用函数。self代表类的实例,并非类本身例如:class Test: def prt(self): print(self) print(self.__class__) t = Test()t.prt()执行结果如下<__main__.Test ...原创 2019-04-09 16:53:43 · 135 阅读 · 0 评论 -
python命名规范
python 的命名规范一、文件名全部使用小写,可以使用下划线,如文件名:detect_xml_file二、包名包名应该是简短的,小写的名字。如果下划线可以改善可读性可以加入。如mypackage三、模块与包的规范相同,如mymodule四、类总是使用首字母大写的单词串。如MyClass内部类可以使用额外的前导下划线。五、函数&方法函数名应该为小写,可...原创 2019-04-12 09:27:29 · 93 阅读 · 0 评论 -
python的第四数据结构-set
什么是集合呢?说到集合,我首先想到了高中的数学。高中,人生学习中最繁忙的一段时光。直到现在,我能回忆起最多的就是学习、学习、还是读书……言归正传,高一时的数学,我们就接触到了集合。书中应该是这样定义的:集合:由一个或多个确定的元素所构成的整体。若x是集合A的元素,则记作x∈A。集合中的元素有三个特征:1. 确定性:集合中的元素必须是确定的;2. 互异性:集合中的元素互不相同,例如:集合A...原创 2019-03-21 21:39:10 · 260 阅读 · 0 评论 -
pycharm中测试的三种模式(unittest框架、pytest框架、普通模式)
一、python运行脚本的三种模式通过查阅资料才发现,原来python的运行脚本的方式有多种:例如普通模式运行,不会自动去加载测试用例执行unittest 测试框架运行模式,可以自动去发现testcase并执行 pytest测试框架运行模式,就是我们上面2个步骤都是使用pytest测试框架运行的重要原则:第一次按照何种模式执行测试用例,后续都会按照这种方式去执行二、pychar...原创 2019-02-19 18:17:05 · 13349 阅读 · 2 评论 -
pycharm第三方库不能自动补全
了解pycharm自动补全功能要首先对补全的类型进行了解。一、以下类别如下图所示:自动补全提示代码之前的类型提示包括如下五种类型。p:parameter 参数m:method 方法c:class 类v:variable 变量f:function 函数二、对第三库不能自动补全的解决问题描述如图,输入变量im. 后没有关于第三方库相应的函数或其他提示,当然,此文档的前提是有相关的...原创 2019-01-31 12:20:19 · 9419 阅读 · 0 评论 -
python注释规范-动态注释和静态注释
对python进行注释可以提高代码的规范,也能提高效率。这其中包括对函数、类等之间的快速的注释,另一方面包括对注释内容的规范书写。python主要包括两部分:一、是单行和多行的注释;二、是代码的注释规则;一、单行与多行注释一、python单行注释符号(#)其中&amp;amp;quot;#&amp;amp;quot;右边的内容不会输出,用于对单行注释。使用的快捷键是:ctrl + ’/‘二、批量、多行注释符号在python中也会...原创 2019-01-31 17:54:39 · 4340 阅读 · 0 评论 -
Python程序中PIL Image "image file is truncated"问题分析与解决
解决方案第一种、删除截断图片第二种、添加两行代码,如下from PIL import ImageFileImageFile.LOAD_TRUNCATED_IMAGES = True错误原因首先看一下错误信息,大致意思是图像文件是损坏的,无法读取,后面37个bytes无法处理OSError: image file is truncated (37 bytes not process...转载 2019-07-24 15:05:20 · 1550 阅读 · 0 评论 -
python3中的不定长参数
第一种不定长参数*argsdef num(a,b,*args):# *args 称为不定长参数,只能放在形参的最后位置,返回的是一个元组第二中不定长参数**kwargs转载 2019-08-09 11:52:51 · 213 阅读 · 0 评论 -
root用户下使用当前账户anaconda创建的环境(软连接方式)
当前账户建立新环境在当前账户下使用anaconda创建一个新的环境:创建环境方式conda create -n *self_env_name* python=3.X监察是否创建成功conda env list其中base的环境是anacoda的基本环境。解决加sudo自动改变为系统默认python版本问题问题:在linux系统上运行.sh文件需要访问系统文件cuda。当前账户权...原创 2019-09-07 18:20:25 · 3303 阅读 · 0 评论 -
python中模块或类自定义属性
python中定义模块或者类的属性除了本身自带的私有属性之外,也可以自定义添加属性。采用如下命令查看当前类或模块的私有属性。dir(模块/类)一、模块自定义属性直接在文件中对需要添加的模块或者属性添加赋值即可,在打印的属性中会显示出来属性,并不需要在test1文件中对属性进行定义,如果需要在模块中定义该属性的初始值,则可以在对test1模块中添加属性的和值。二、类的属性定义同上定...原创 2019-08-17 16:50:44 · 1188 阅读 · 0 评论 -
python中的__all__的模块作用
python模块中 all 的作用:__all__ = ['test1'] def test1(): print("-----test1-----") def test2(): print("-----test2-----")原创 2019-08-17 10:45:02 · 138 阅读 · 0 评论 -
python 包内引用from .xxx import xxx出现No module named '__main__.config'; '__main__' is not a package
import的包要么从系统环境变量路径导入,要么自己设定相对路径from . import *表示从当前目录道路,而from .xxx import xxx则表示从当前目录下的xxx导入xxx,例如:在模块A.B.C中的代码:from . import D # 导入A.B.Dfrom .. import E # 导入A.Efrom ..F import G # 导入A...原创 2019-08-17 09:33:37 · 2552 阅读 · 0 评论 -
python中装饰器详解
python装饰器(fuctional decorators)就是用于拓展原来函数功能的一种函数,目的是在不改变原函数名(或类名)的情况下,给函数增加新的功能。这个函数的特殊之处在于它的返回值也是一个函数,这个函数是内嵌“原“”函数的函数。一般而言,我们要想拓展原来函数代码,最直接的办法就是侵入代码里面修改,例如:import timedef f(): print("hello")...转载 2019-08-12 17:46:03 · 90 阅读 · 0 评论 -
python 的代码加密,代码保护-cython实现
简介今天介绍的方式的是在 linux 下用cython 把Python的核心代码打包成so文件,然后实现 Python代码实现加密和保护.so文件实现方式的实现步骤pip 安装cythonpip installl cython用cython将核心代码py模块文件转化成.c 文件cython hello.py 或者 cython *.pygcc 编译成so文件gcc ...转载 2019-08-20 15:07:01 · 1118 阅读 · 0 评论