![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Python
文章平均质量分 90
Adenialzz
Keep Learning.
展开
-
Python中的Iterable、Iterator、Generator详解
Python中的Iterable、Iterator、Generator详解原创 2023-07-02 15:42:11 · 489 阅读 · 0 评论 -
给 Python 算法插上性能的翅膀——pybind11 落地实践
给 Python 算法插上性能的翅膀——pybind11 落地实践转载 2022-07-03 19:04:52 · 1828 阅读 · 0 评论 -
在Python中调用C/C++:cython及pybind11
在Python中调用C/C++:cython及pybind11转载 2022-06-20 17:27:46 · 1958 阅读 · 3 评论 -
Python并发——concurrent.futures梳理
Python并发——concurrent.futures梳理参考官方文档: concurrent.futures — 启动并行任务Executor对象class concurrent.funtures.Executor该抽象类是 ThreadPoolExecutor 和 ProcessPoolExecutor 的父类,提供异步执行调用方法。要通过它的子类调用,而不是直接调用。submit方法submit(fn, /, *args, **kwargs)提交一个可执行对象,fn 将按照如下翻译 2022-05-01 11:03:16 · 1640 阅读 · 0 评论 -
python pdb调试基本命令整理
python pdb调试基本命令整理使用简介启动调试侵入式在 py 文件内部设置:import pdb; pdb.set_trace()程序会在运行到这一行时停下来,进入 pdb 交互。非侵入式在运行 py 脚本时:python -m pdb main.py程序会在一启动时就进入 pdb 交互。基本命令简写(命令全称)功能h(elp)输出所有命令帮助h(elp) command输出指定命令的帮助q(uit)退出查看相关命令原创 2022-04-11 22:25:08 · 2795 阅读 · 0 评论 -
关于python import的sys.path路径问题
关于python import的sys.path路径问题sys.path先说一下 sys.path 这个变量,该变量需要导入 sys 官方库方可使用,它是一个列表,是当前 python 文件 import 库时会逐个搜索列表中的路径。初始化sys.path 从这些位置初始化:包含输入脚本的目录(或当前目录,当没有指定文件时)PYTHONPATH(目录名列表,与 shell 变量 PATH 语法相同)与安装相关的默认值(比如当前conda环境的路径)添加为了解决上述问题,需要添加模块搜索原创 2022-04-11 21:59:43 · 5457 阅读 · 0 评论 -
Python拾遗1:collections、itertools和内存io
Python拾遗1:collections、itertools和内存io转自:https://www.liaoxuefeng.com/wiki/1016959663602400本系列旨在补充python中一些很好用但是并非常规课程主线中的知识。collectionscollections是Python内建的一个集合模块,提供了许多有用的集合类。namedtuple我们知道tuple可以表示不变集合,例如,一个点的二维坐标就可以表示成:p = (1, 2)但是,看到 (1, 2),很难看出这转载 2022-04-06 21:07:37 · 169 阅读 · 0 评论 -
发布自己的Python包(Pypi)
发布自己的Pypi包我们经常使用 Pypi 来安装包,但是有时候我们也想要发布自己的 Pypi 包,有可能我们写了一个特别牛的包,也有可能我们只是想使用自己常用的一些轮子,可能这是我们日常编码中很常用的一些轮子,我们在不同工程目录、不同设备上都会频繁使用的一些接口,可能我们自己对这些自己常用的接口很熟悉,但是却因为环境的迁移而需要重复地实现,这时我们就可以发布一个自己的 Pypi 包,在环境迁移时使用熟悉的轮子只需要 pip install *** 即可。就算这些轮子我们可能实现的没有那么完美,”不足为原创 2022-03-05 23:02:24 · 2039 阅读 · 0 评论 -
Python 并发编程
Python 并发编程本文为 https://www.bilibili.com/video/BV1bK411A7tV?p=1 课程笔记。概览并发与并行并发(concurrency):指在同一时刻只能有一条指令执行,但多个进程指令被快速的轮换执行,使得在宏观上具有多个进程同时执行的效果,但在微观上并不是同时执行的,只是把时间分成若干段,使多个进程快速交替的执行。并行(parallel):指在同一时刻,有多条指令在多个处理器上同时执行。所以无论从微观还是从宏观来看,二者都是一起执行的。程序提速的原创 2022-01-05 00:27:41 · 9556 阅读 · 3 评论 -
使用 PyTorch 数据读取,JAX 框架来训练一个简单的神经网络
使用 PyTorch 数据读取,JAX 框架来训练一个简单的神经网络本文例程部分主要参考官方文档。JAX简介JAX 的前身是 Autograd ,也就是说 JAX 是 Autograd 升级版本,JAX 可以对 Python 和 NumPy 程序进行自动微分。可以通过 Python的大量特征子集进行区分,包括循环、分支、递归和闭包语句进行自动求导,也可以求三阶导数(三阶导数是由原函数导数的导数的导数。 所谓三阶导数,即原函数导数的导数的导数,将原函数进行三次求导)。通过 grad ,JAX 支持反向模原创 2021-12-29 23:20:03 · 3071 阅读 · 0 评论 -
深拷贝与浅拷贝、值语义与引用语义对象语义 ——以C++和Python为例
深拷贝与浅拷贝、值语义与引用语义/对象语义 ——以C++和Python为例值语义与引用语义(对象语义)本小节参考自:https://www.cnblogs.com/Solstice/archive/2011/08/16/2141515.html概念在任何编程语言中,区分深浅拷贝的关键都是要区分值语义和引用语义(对象语义)。值语义(value sematics)指的是对象的拷贝与原对象是独立的、无关的,就像拷贝 int 一样。C++ 的内置类型(bool/int/double/char)都是值语义,原创 2021-12-29 17:38:31 · 1177 阅读 · 0 评论 -
Python中的深拷贝与浅拷贝
Python中的深拷贝与浅拷贝**直接赋值:**其实就是对象的引用(别名)。**浅拷贝(copy):**拷贝父对象,不会拷贝对象的内部的子对象。深拷贝(deepcopy): copy 模块的 deepcopy 方法,完全拷贝了父对象及其子对象。复杂数据类型(本小节图像均来自菜鸟教程)赋值b = a赋值引用,a 和 b都指向同一个对象,a 与 b 的变化完全同步。赋值引用 我们可以用 id 来查看某个对象的内存地址,来验证 a 与 b 位于相同的内存地址并且完全同步。大家仔细看下面原创 2021-12-23 22:53:37 · 973 阅读 · 0 评论 -
Python GIL
转自:https://blog.csdn.net/weixin_41594007/article/details/79485847Python GIL 在进行GIL讲解之前,我们可以先回顾一下并行和并发的区别:并行:多个CPU同时执行多个任务,就好像有两个程序,这两个程序是真的在两个不同的CPU内同时被执行。并发:CPU交替处理多个任务,还是有两个程序,但是只有一个CPU,会交替处理这两个程序,而不是同时转载 2021-12-23 19:56:36 · 94 阅读 · 0 评论 -
深入理解Python中的全局解释锁GIL
深入理解Python中的全局解释锁GIL转自:https://zhuanlan.zhihu.com/p/75780308注:本文为蜗牛学院资深讲师卿淳俊老师原创,首发自公众号https://mp.weixin.qq.com/s/TBiqbSCsjIbNIk8ATky-tg,如需转载请私聊我处获得授权并注明出处。Python是门古老的语言,要想了解这门语言的多线程和多进程以及协程,以及明白什么时候应该用多线程,什么时候应该使用多进程或协程,我们不得不谈到的一个东西是Python中的GIL(全局解释器转载 2021-12-23 19:51:21 · 335 阅读 · 0 评论 -
Python 装饰器详解(下)
Python 装饰器详解(下)转自:https://blog.csdn.net/qq_27825451/article/details/84627016,博主仅对其中 demo 实现中不适合python3 版本的语法进行修改,并微调了排版,本转载博客全部例程博主均已亲测可行。Python 3.8.5ubuntu 18.04声明:此文章为,python装饰器详解——下篇,上一篇文章中,即详解装饰器——中篇 ,已经详细讲解了两大类装饰器,即函数装饰器、类装饰器的应用实例,并且分析了它们在运行的过程中转载 2021-12-10 23:13:02 · 103 阅读 · 0 评论 -
Python 装饰器详解(中)
Python 装饰器详解(中)转自:https://blog.csdn.net/qq_27825451/article/details/84581272,博主仅对其中 demo 实现中不适合python3 版本的语法进行修改,并微调了排版,本转载博客全部例程博主均已亲测可行。Python 3.8.5ubuntu 18.04声明:此文章为,python装饰器详解——中篇,上一篇文章中,即详解装饰器——上篇 ,已经详细讲解了装饰器诞生的背景,装饰器的定义、作用、应用场景,本文将以实际例子为依托,深入转载 2021-12-10 22:22:54 · 121 阅读 · 0 评论 -
Python 装饰器详解(上)
Python 装饰器详解(上)转自:https://blog.csdn.net/qq_27825451/article/details/84396970,博主仅对其中 demo 实现中不适合python3 版本的语法进行修改,并微调了排版。本转载博客全部例程博主均已亲测可行Python 3.8.5ubuntu 18.04一、先从一种情况看起1. 装饰器decorator的由来装饰器的定义很是抽象,我们来看一个小例子。先定义一个简单的函数:def myfunc(): print('转载 2021-12-10 21:30:16 · 151 阅读 · 0 评论 -
Python中的生成器与迭代器
Python中的生成器与迭代器转自:https://www.liaoxuefeng.com/wiki/1016959663602400/1017323698112640,推荐去该链接读原文,有习题和热烈的评论区交流。生成器通过列表生成式,我们可以直接创建一个列表。但是,受到内存限制,列表容量肯定是有限的。而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面绝大多数元素占用的空间都白白浪费了。所以,如果列表元素可以按照某种算法推算出来,那我们是否可以转载 2021-12-10 12:19:53 · 107 阅读 · 0 评论 -
Python 函数式编程
Python 函数式编程转自:https://www.liaoxuefeng.com/wiki/1016959663602400/1017328525009056,推荐看原文。函数式编程函数是Python内建支持的一种封装,我们通过把大段代码拆成函数,通过一层一层的函数调用,就可以把复杂任务分解成简单的任务,这种分解可以称之为面向过程的程序设计。函数就是面向过程的程序设计的基本单元。而函数式编程(请注意多了一个“式”字)——Functional Programming,虽然也可以归结到面向过程的程序转载 2021-12-10 11:49:58 · 534 阅读 · 0 评论 -
编译型语言与解释型语言
编译型语言与解释型语言首先要说明,编译型语言与解释型语言这种分类方法是不科学的,或者说已经过时了,但是这种称呼大抵还是能够让人明白我们将要讨论的是什么东西。文中所列参考是笔者认为比较有帮助的一些扩展阅读内容。首先贴一个很形象的比喻,来自知乎@孛尔只斤南丁:假设厂里来了两个新工人,一个叫编译,另一个叫解释。厂长(程序员)给他们安排了一项任务(需求),并发放了操作说明(源代码)。编译这名工人的做法是先完整的看一遍操作说明,遇到错别字或者不明白的地方,就去问厂长,直到操作说明最终成为一个没有错别字原创 2021-12-08 12:28:28 · 1361 阅读 · 1 评论 -
python参数传递*args和**kwargs
python参数传递*args和**kwargs和*实际上真正的Python参数传递语法是 * 和 ** 。*args 和 **kwargs 只是一种约定俗成的编程实践。我们也可以写成 *vars 和 **kvars 。就如同其他常规变量的命名一样, args 和 kwargs 只是一种习惯的名称。*args 和 **kwargs 一般是用在函数定义的时候。二者的意义是允许定义的函数接受任意数量的参数。也就是说我们在函数被调用前并不知道也不限制将来函数可以接收的参数数量。在这种情况下我们可以使用 *a原创 2021-12-07 13:50:28 · 1643 阅读 · 0 评论 -
Python 命令行传参
Python 命令行传参说到 python 命令行传参,可能大部分人的第一反应就是用 argparse。的确,argparse 在我们需要指定多个预设的参数(如深度学习中指定模型的超参数等)时,是非常有用的。但是如果有时我们只需要一个参数,那么再解析一整套 argparse 稍显笨重。本文除了介绍 argparse 之外,也会介绍一些简单轻便的命令行传参方法。sys我们在学习 C/C++ 时知道主函数 main 需要传入三个参数:int main(int argc, char* argv[], ch原创 2021-12-01 15:04:54 · 6164 阅读 · 2 评论 -
Python、C++ lambda 表达式
Python、C++ lambda 表达式lambda函数简介匿名函数lambda:是指一类无需定义标识符(函数名)的函数或子程序。所谓匿名函数,通俗地说就是没有名字的函数,lambda函数没有名字,是一种简单的、在同一行中定义函数的方法。lambda函数一般功能简单:单行expression决定了lambda函数不可能完成复杂的逻辑,只能完成非常简单的功能。由于其实现的功能一目了然,甚至不需要专门的名字来说明。lambda 函数可以接收任意多个参数 (包括可选参数) 并且返回单个表达式的值。la原创 2021-11-30 18:08:03 · 416 阅读 · 0 评论 -
使用百度云智能SDK和树莓派搭建简易的人脸识别系统 Python语言版
使用百度云智能SDK和树莓派搭建简易的人脸识别系统 Python语言版硬件树莓派4B一个CSI摄像头一个笔者使用的是树莓派4B和CSI摄像头,但是树莓派3和USB摄像头等相似设备均可。百度云智能设置Step 1 登录百度云智能 网址https://cloud.baidu.com/首先登录百度账号,与百度云、百度贴吧等互通,可直接扫码登录。如果没有百度账号请先自行注册。Step 2 实名认证百度的产品用了这么多年了,想必大家都已经认证过了,没有认证的读者现在认证即可,很快。Step原创 2021-08-05 20:09:04 · 2536 阅读 · 6 评论 -
[2021-CVPR] Jigsaw Clustering for Unsupervised Visual Representation Learning 论文简析及关键代码简析
[2021-CVPR] Jigsaw Clustering for Unsupervised Visual Representation Learning 论文简析及关键代码简析论文:https://arxiv.org/abs/2104.00323代码:https://github.com/dvlab-research/JigsawClustering总结本文提出了一种单批次(single-batch)的自监督任务pretext task Jigsaw Cluster,相比于双批次(dual-bat原创 2021-07-18 21:08:20 · 970 阅读 · 0 评论 -
在导入NVIDIA的apex库时报错 ImportError cannot import name ‘UnencryptedCookieSessionFactoryConfig‘ from
在导入NVIDIA的apex库时报错 ImportError: cannot import name ‘UnencryptedCookieSessionFactoryConfig’ from ‘pyramid.session’ (unknown location)报错在使用NVIDIA的apex库时报错 ImportError: cannot import name ‘UnencryptedCookieSessionFactoryConfig’ from ‘pyramid.session’ (unkno原创 2021-07-15 20:14:48 · 23022 阅读 · 12 评论 -
PyTorch中的torch.nn.Parameter() 详解
PyTorch中的torch.nn.Parameter() 详解今天来聊一下PyTorch中的torch.nn.Parameter()这个函数,笔者第一次见的时候也是大概能理解函数的用途,但是具体实现原理细节也是云里雾里,在参考了几篇博文,做过几个实验之后算是清晰了,本文在记录的同时希望给后来人一个参考,欢迎留言讨论。分析先看其名,parameter,中文意为参数。我们知道,使用PyTorch训练神经网络时,本质上就是训练一个函数,这个函数输入一个数据(如CV中输入一张图像),输出一个预测(如输出这张原创 2021-07-14 16:21:09 · 74948 阅读 · 31 评论 -
einops和einsum:直接操作张量的利器
einops 和 einsumeinops和einsum是Vision Transformer的代码实现里出现的两个操作tensor维度和指定tensor计算的神器,在卷积神经网络里不多见,本文将介绍简单介绍一下这两样工具,方便大家更好地理解Vision Transformer的代码。einops:直接操作tensor维度的神器github地址:https://github.com/arogozhnikov/einopseinops:灵活和强大的张量操作,可读性强和可靠性好的代码。支持numpy、p原创 2021-07-12 20:25:58 · 7269 阅读 · 1 评论 -
Python 中的可执行对象 eval,exec 和 compile与其在深度学习训练中的应用实例
Python 中的可执行对象 eval,exec 和 compile 与其在深度学习训练中的应用实例eval计算指定表达式的值。也就是说它要执行的python代码只能是单个表达式(注意eval不支持任何形式的赋值操作),而不能是复杂的代码逻辑。eval(source, globals=None, locals=None, /)obj可以是字符串对象或者已经由compile编译过的代码对象。globals和locals是可选的,分别代表了全局和局部名称空间中的对象,其中globals必须是字典,而l原创 2021-07-01 15:16:46 · 424 阅读 · 0 评论