Python 之 dict 底层实现 Dictionary vs OrderedDict在 3.6 版本之前,Python Dict 底层在初始创建的时候采用的是 indice 和存储合并在一个二维数组当中。Dict 采用哈希表原理,key 作为取值对象,进行 hash(key) 操作,得到哈希值,然后用进行 值%字典容量 得到要插入的位置。 1234567891011121314151617my_dict = {} 2021-07-30 Python #Python
Python 之 list 底层实现 看一下 Python 的 CPython 实现(CPython 就是 Python 的 c 实现版本) 1234l = []l.append(1)l.append(2)l.append(3) 列表对象的 C 语言结构体CPython 中的列表实现类似于下面的 C 结构体。ob_item 是指向列表对象的指针数组。allocated 是申请内存的槽的个数。 12345typedef struct 2021-07-30 Python #Python
Python 之代码块和小数据池 id,is,==,= id 是内存地址,那什么是内存地址呢?你只要创建一个数据(对象),Python 会在内存中开辟一个空间,这个空间有一个唯一标识,这个标识就叫做内存地址,也就是这个数据(对象)的id,可以用 id() 获取这个数据的内存地址: 12name = 'lp'print(id(name)) # 158xxxxxxxxx == 比较两边的数值是否相等。 2021-07-30 Python #Python
Python 之垃圾回收机制 Python 作为一门解释型语言,以代码简洁易懂著称。我们可以直接对名称赋值,而不必声明类型。名称类型的确定、内存空间的分配与释放都是由 Python 解释器在运行时进行的。Python 这一自动管理内存功能极大地减小了程序员负担。 Python 采用的是 引用计数 机制为主,标记-清除 和 分代收集 两种机制为辅的策略。 大管家 refchain在 Python 的 C 源码中有一个名为 ref 2021-07-30 Python #Python
Python 之监控进程工具 supervisor.py 简介Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。它通过fork/exec的方式把这些被管理的进程当作supervisor的子进程来启动,这样只要在supervisor的配置文件中,把要管理的进程的可执行文件的路径写进去即可。也实现当子进程挂掉的时候,父进程可以准确获取子进程挂掉的信息 2021-07-30 Python #Python
Python 基础之 py2 和 py3 的区别 0、内涵12Python2 1:臃肿,源码的重复量很多 2:语法不清晰,掺杂C,php,Java的一些陋习。 Python3 几乎是重构后的源码,规范,清晰,优美。 1、编译时指定字节12345678python2 在编译安装时,可以通过参数 --enable-unicode=ucs2 或 --enable-unicode=ucs4 分别用于指定使用2个字节、4个字节表示一个unico 2021-07-30 Python #Python
Python 第三方模块之 jira Jira 提供了完善的 RESTful API,如果不想直接请求API接口可以使用Python 的 Jira 库来操作 Jira Python Jira 库 Jira Python文档 官方文档 https://developer.atlassian.com/server/jira/platform/rest-apis/ https://developer.atlassian.com/c 2021-07-30 Python > Python 第三方模块 > jira #Python #Python 第三方模块 #jira
spider - Scrapy 爬虫 Scrapy 简介Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。 其可以应用在数据挖掘,信息处理或存储历史数据等一系列的程序中。其最初是为了页面抓取 (更确切来说, 网络抓取)所设计的, 也可以应用在获取API所返回的数据(例如 Amazon Associates Web Services ) 或者通用的网络爬虫。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。 S 2021-07-30 Python #Python
spider - 手写 同步1、同步1234567891011import requestsdef fetch_async(url): response = requests.get(url) return response url_list = ['http://www.github.com', 'http://www.baidu.com']for url in url_list: fetch_a 2021-07-30 Python #Python
深度学习之 warmup 学习率是神经网络训练中最重要的超参数之一,针对学习率的优化方式很多,Warmup是其中的一种。 1、什么是Warmup?Warmup是在ResNet论文中提到的一种学习率预热的方法,它在训练开始的时候先选择使用一个较小的学习率,训练了一些epoches或者steps(比如4个epoches,10000steps),再修改为预先设置的学习率来进行训练。 具体步骤:启用warm up,设置warm 2021-07-26 深度学习 #深度学习
深度学习常见数据集之PASCAL VOC 背景PASCAL 的全称是 Pattern Analysis, Statistical Modelling and Computational Learning。 VOC 的全称是 Visual Object Classes。 第一届 PASCAL VOC 举办于2005年,然后每年一届,于2012年终止。 本文以PASCAL VOC 2012为基础。 PASCAL 主页 与 排行榜 PASCA 2021-07-16 深度学习 #深度学习
深度学习之 SSD 目标检测近年来已经取得了很重要的进展,主流的算法主要分为两个类型: (1)two-stage方法,如R-CNN系算法,其主要思路是先通过启发式方法(selective search)或者CNN网络(RPN)产生一系列稀疏的候选框,然后对这些候选框进行分类与回归,two-stage方法的优势是准确度高;(2)one-stage方法,如Yolo和SSD,其主要思路是均匀地在图片的不同位置进行密集抽样, 2021-07-06 深度学习 #深度学习
深度学习之 YOLO v1,v2,v3 YOLO v1这是继RCNN,fast-RCNN和faster-RCNN之后,rbg(RossGirshick)针对DL目标检测速度问题提出的另外一种框架。YOLO V1其增强版本GPU中能跑45fps,简化版本155fps。 论文:http://arxiv.org/abs/1506.02640 代码:https://github.com/pjreddie/darknet 1. YOLO的 2021-07-06 深度学习 #深度学习
深度学习参数之 batch size batch_size、epoch、iteration 是深度学习中常见的几个超参数: batchsize:每批数据量的大小。DL通常用SGD的优化算法进行训练,也就是一次(1 个iteration)一起训练batchsize个样本,计算它们的平均损失函数值,来更新参数。 iteration:1个iteration 即迭代一次,也就是用batchsize个样本训练一次。 epoch:1个epoch 2021-07-06 深度学习 #深度学习
01-apt-get 简介 1、 简介apt(Advanced Packaging Tool)是一个在 Debian 和 Ubuntu 中的一个软件包管理工具,apt-get是其中一个命令,用于从指定的源地址下载软件包。 apt 命令提供了查找、安装、升级、删除某一个、一组甚至全部软件包的命令。 1.1、配置文件早期 apt-get 默认的配置文件为 /etc/apt/apt.conf,但是当前的 Ubuntu 系统中默认没 2021-07-05 Linux #Linux
01-apt-get 镜像源 1、镜像源apt 镜像源的配置文件一般在:/etc/apt/sources.list。该文件中的镜像源一般位于国外,所以安装包会比较慢,为解决这个问题,可以更换镜像源。 直接更改 /etc/apt/sources.list 文件,更改之前记得先备份。 国内常用的镜像源有163、中科大、阿里云、华为云、清华大学云、兰州大学云、上海交通大学云镜像源等。 163的镜像源如下: 12345678deb h 2021-07-05 Linux #Linux
01-apt-key 简介 1、apt-key命令的基本概念在Linux系统的世界中,Debian及其衍生版如Ubuntu等,已经成为广泛使用的发行版之一。在这个系统中,apt-key命令是用于管理软件包密钥的重要工具。 apt-key是用于处理Debian软件包密钥管理的命令行工具。它在Debian的软件包管理中起着核心作用,因为它能确保软件包的完整性和可信度。apt-key通过验证软件包签名,以确保下载的软件包是来自可信 2021-07-05 Linux #Linux
01-yum 简介 yum 简介yum(Yellow dog Updater, Modified)是RedHat以及CentOS中的软件包管理器。能够通过互联网下载 .rpm 包并且安装,并可以自动处理依赖性关系,无须繁琐地一次次下载、安装。(PS: YUM是生产最佳实践)。 要成功的使用 YUM 工具安装更新软件或系统,就需要有一个包含各种 rpm 软件包的repository(软件仓库),这个软件仓库我们习惯称为 2021-07-05 Linux #Linux
07-gpg:keyserver receive failed:Server indicated a failure 现象12345678Get:5 http://xxxxxxErr:5 http://xxxxxx The following signatures couldn't be verified because the public key is not available: NO_PUBKEY xxxxxxxx('公钥编码')# 并且伴随出现E: The repository 'http://xxxx 2021-07-05 Linux #Linux
CentOS 防火墙 firewalld 官网地址:https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Security_Guide/sec-Using_Firewalls.html#sec-Introduction_to_firewalld firewalld简介CentOS7 版本默认使用 firewalld 后,不再使用 ip 2021-07-05 Linux #Linux