
Python
文章平均质量分 72
NCU_wander
这个作者很懒,什么都没留下…
展开
-
Cython与pyx pyd格式-python调用c++
1、python与C++为何要结合当从事技术的人员提到 Python 的时候,经常会说到下面两个优点:写起来方便容易调用 C/C++ 的库然而实际上,第一点是以巨慢的执行速度为代价的,而第二点也需要库本身按照 Python 的规范使用 Python API、导出相应的符号。因此出现了CythonCython 可以让我们方便地:用 Python 的语法混合编写 Python 和 C/C++ 代码,提升 Python 速度调用 C/C++ 代码C语言是编译性语言,而Python则是解释性语言原创 2022-04-01 21:30:48 · 2512 阅读 · 5 评论 -
python 函数传递
最近在处理 模型计算量 模型参数量 问题时发现python内部可以将函数作为参数传递,坦白来说这是一种比较新颖的计算方法。ptflops 作为一种常用的模型参数量计算手段,在深度学习模型中使用范围广泛;之前在使用过程中发现模型多输入的情况下函数会报错。后面我这边是直接改动了源代码将input_res给更改为支持list输入的函数类型。实际上文章支持多输入,只是需要借用input_constructo,input_constructor可以作为变量或者函数整个的作为参数传递进入来对input_res解析,原创 2021-12-27 21:33:49 · 2125 阅读 · 0 评论 -
partial与argmax函数
1、argmax() 函数直接通过以下的编程实例来理解argmax函数的实际应用,包括dim的使用以及最终返回的最大列或者最大行所在索引。import torcha=torch.tensor( [ [1, 5, 4], [9, 3, 8] ])b=torch.argmax(a,dim=0)print(b)c=torch.argmax(a,dim=1)print(c)原创 2020-10-14 11:27:21 · 153 阅读 · 0 评论 -
property、classmethod和staticmethod、abstractmethod
在学习Deoldify的相关知识过程中,发现作者使用了非常多的类方法工具,因此在本文对常见的三种类修饰方法予以总结。首先总结一下常见的python定义函数:一般常见的是通过def定义的 普通的一般的,需要至少传递一个参数,一般用self,这样的方法必须通过一个类的实例去访问,类似于c++中通过对象去访问;一是在def前面加上@classmethod,这种类方法的一个特点就是可以通过类名去调用,但是也必须传递一个参数,一般用cls表示class,表示可以通过类直接调用;cls表示这个类本身。二是在de原创 2020-10-14 10:45:49 · 679 阅读 · 0 评论 -
python gevent 协程撰写
在图像超清项目中,服务端的耗时优化是通过gevent的协程,进而服务端进行远端的并发调用完成的。因此对服务端的协程进行了较为深入的理解,在此进行总结和整理,方便后面对此方面知识的使用。python语言因为进程锁的原因导致多线程被锁死,尽管Python完全支持多线程编程, 但是解释器的C语言实现部分在完全并行执行时并不是线程安全的。 实际上,解释器被一个全局解释器锁保护着,它确保任何时候都只有一个Python线程执行。 GIL最大的问题就是Python的多线程程序并不能利用多核CPU的优势 (比如一个使用了原创 2020-12-14 11:48:21 · 303 阅读 · 0 评论 -
Python copy
copypython 中的copy是一件非常有趣的事情,会带来许多问题与疑惑。直接赋值:其实就是对象的引用(别名)。浅拷贝(copy):拷贝父对象,不会拷贝对象的内部的子对象。深拷贝(deepcopy): copy 模块的 deepcopy 方法,完全拷贝了父对象及其子对象。关于浅拷贝和深拷贝的区别,Python 的 document 是这样解释的:The difference between shallow and deep copying is only relevant for compo原创 2020-12-09 15:18:34 · 182 阅读 · 0 评论 -
python生成器yield next
在实践keras网络模型的时候,发现keras fit_generator与flow_from_directory函数均有关于生成器的频繁使用;因此在本文中对其进行总结。他山之石博文yield生成器总结的生成器知识点,精简全面。可迭代对象(Iterable)是实现了__iter__()方法的对象,通过调用iter()方法可以获得一个迭代器(Iterator)迭代器(Iterator...原创 2020-10-09 21:00:29 · 641 阅读 · 0 评论 -
Python 类的继承
本质上类的相关用法是面向对象语言非常精彩的地方,自己需要阅读别人的代码,因为现在总是写自己的代码,不借鉴别人的代码是很难获得提高的。本文未成体系,主要面对的是工程上实际需要解决的问题。1、子类调用父类函数情况一:子类不重写__init__()方法,实例化子类后,会自动调用父类的__init__()的方法。情况二:子类重写__init__()方法且不需要调用父类的方法,则子类直接定义自己的_...原创 2019-12-09 17:45:41 · 158 阅读 · 0 评论 -
Python import语法
本质上import有关联的概念是python的文件架构,python的文件层级架构是包-模块-类-函数,不像C语言,python语言是没有块的概念的,这也意味着诸如if、while、for等语句是无法定义局部变量的,这些语句内部定义的变量与外部定义完全相同。import语句针对的是模块之间的include,同时支持跨包的import。1、import / from…import / import...原创 2019-11-18 17:21:17 · 1172 阅读 · 0 评论 -
Python代码规范
之前有总结过C++编程规范,但是现在遗留不多;目前根据Python代码经验,对Python编程进行总结1、文件夹目录一定要写到 ‘/’ 为止;务必养成习惯,定义的文件夹全部写成这个格式...原创 2019-11-12 21:58:18 · 187 阅读 · 0 评论 -
python string切片
顺序切片逆序切片原创 2019-11-12 21:54:46 · 547 阅读 · 0 评论 -
Python中的全局变量
global关键词简介在 Python 中,global 关键字允许你修改当前范围之外的变量,它用于创建全局变量并在本地上下文中更改变量。global关键词的规则在 Python 中,有关 global 关键字基本规则如下:当我们在一个函数中创建一个变量时,默认情况下它是本地变量。当我们在一个函数之外定义一个变量时,默认情况下它是全局变量。你不必使用 global 关键字。我们使用 g...原创 2019-09-25 11:47:25 · 643 阅读 · 0 评论 -
python脚本中的类实例化与文件跨文件夹import
类实例化python的构造和析构函数为固定的名字,不像c++中那样构造函数和析构函数是类名字。注意所有的类内部的函数都默认有自身self的输入参数。构造函数--------------------- init( self )析构函数--------------------- del( self )不同于C++里面的类,在python中构造函数和析构函数可以省略。看如下的类定义:cl...转载 2019-08-27 21:00:37 · 1840 阅读 · 0 评论 -
Python中的random模块
Python中的random模块用于生成随机数。下面介绍一下random模块中最常用的几个函数。random.randomrandom.random()用于生成一个0到1的随机符点数: 0 <= n < 1.0random.uniformrandom.uniform的函数原型为:random.uniform(a, b),用于生成一个指定范围内的随机符点数,两个参数其中一个是上限...转载 2019-08-09 10:49:25 · 129 阅读 · 0 评论 -
类的属性与实例属性
在查阅pytorch的official tutorial的过程中,发现@property的修饰器语法,涉及到Python语言中的属性,在多方搜索之后对于@property的用法仍然很迷,感觉如同鸡肋。常见的属性起因于python的动态语言特性,主要针对类而言:类属性class Test: name = "Hello"name就是类属性,我们可以直接通过类的__dict__里拿到这...原创 2019-12-24 15:07:10 · 378 阅读 · 0 评论 -
python @装饰器的使用 staticmethod classmethod property
1、用作staticmethod & classmethod的装饰器Python中3种方式定义类方法:常规方式;@classmethod修饰方式;@staticmethod修饰方式.class A(object): def foo(self, x): print("executing foo(%s,%s)" % (self, x)) print(...原创 2019-07-02 17:59:16 · 296 阅读 · 1 评论 -
Python中字典的应用
在Python中字典的应用十分常见,作为一种基于hash的数据结构,其与c++中的map结构极为相似,本文是对字典结构的基本用法总结。创建字典1、变量初始化:dict1 = {}dict2 = {'name': 'earth', 'port': 80}2、从Python 2.2 版本起支持批量初始化:fdict = dict((['x', 1], ['y', 2]))3、内建方法...原创 2019-06-05 12:00:03 · 1519 阅读 · 0 评论