摘要: 说明 前面我们提到了闭包的概念,闭包是python的一个重要特性,而装饰器是闭包的一个重要应用。 闭包 闭包即为返回值为函数的函数。示例程序如下所示: def num(num): def num_in(num2): return num + num2 return num_in #返回函数 a = 阅读全文
posted @ 2020-07-01 12:40 wildkid1024 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 说明 python的一大特性是,其具备函数式编程语言的特性,这意味着function在python的世界中也是作为一等公民而存在的,今天就来讨论匿名函数和闭包。 lambda函数 lambda函数也称为匿名函数,多使用于只有一行逻辑的函数,可以使得代码简短易读。一个使用的场景如下所示: 将列表 [' 阅读全文
posted @ 2020-07-01 09:34 wildkid1024 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 说明 在python中处处皆对象,那么具体细分又可以分为可变类型和不可变类型对象,今天来详细讨论一下。 is 和 == 的区别 先提前说一下is和==的区别以帮助理解。 is是判断两者是否属于同一内存,即id(a) == id(b).而等于则是通过比较两个值的大小是否相同。以下是例子: a = 'h 阅读全文
posted @ 2020-06-30 16:10 wildkid1024 阅读(246) 评论(0) 推荐(0) 编辑
摘要: 说明 python的进阶用法之一就是生成器、迭代器的用法,使用生成迭代可以极大地减少代码的行数,使得代码简明易读。 列表生成式 range(1,100,5) #第一个参数表示开始位,第二个参数表示结束位(不含),第三个参数表示步长,就是每5个数返回一次。 a = [i for i in range( 阅读全文
posted @ 2020-06-30 13:14 wildkid1024 阅读(269) 评论(0) 推荐(0) 编辑
摘要: 说明: 笔者在python编程中遇到的python问题集合。 AttributeError: module 'os' has no attribute 'fork' 解决方案: os.fork不能直接在win上使用,代替方案multiproessing from multiprocessing im 阅读全文
posted @ 2020-06-29 18:40 wildkid1024 阅读(300) 评论(0) 推荐(0) 编辑
摘要: 说明 在前面讲模型加载和保存的时候,在多GPU情况下,实际上是挖了坑的,比如在多GPU加载时,GPU的利用率是不均衡的,而当时没详细探讨这个问题,今天来详细地讨论一下。 问题 在训练的时候,如果GPU资源有限,而数据量和模型大小较大,那么在单GPU上运行就会极其慢的训练速度,此时就要使用多GPU进行 阅读全文
posted @ 2020-06-17 23:46 wildkid1024 阅读(3289) 评论(0) 推荐(0) 编辑
摘要: 说明 模型裁剪可分为两种,一种是稀疏化裁剪,裁剪的粒度为值级别,一种是结构化裁剪,最常用的是通道裁剪。通道裁剪是减少输出特征图的通道数,对应的权值是卷积核的个数。 问题 通常模型裁剪的三个步骤是:1. 判断网络中不重要的通道 2. 删减掉不重要的通道(一般不会立即删,加mask等到评测时才开始删) 阅读全文
posted @ 2020-06-09 00:08 wildkid1024 阅读(1903) 评论(0) 推荐(0) 编辑
摘要: 说明 在DeeCamp2019的时候,有去申请,但当时忙着其他的事情,没有好好做笔试,于是后面就被筛掉了。后面听说也有其他同学被捞的,但可能我简历上没啥东西,出身又不好,所以就pass了。 今年又申请了一次,不知道是不是因为疫情的原因,今年没了笔试环节,直接投递简历加面试。我投的是算力和算符约束下的 阅读全文
posted @ 2020-06-04 21:21 wildkid1024 阅读(455) 评论(0) 推荐(0) 编辑
摘要: 说明 在模型训练的时候,往往使用的是多GPU的环境;但是在模型验证或者推理阶段,往往使用单GPU甚至CPU进行运算。那么中间有个保存和加载的过程。下面来总结一下。 多GPU进行训练 首先设置可见的GPU数量,有两种方式可以声明: 在shell脚本中声明: export CUDA_VISIBLE_DE 阅读全文
posted @ 2020-06-01 15:13 wildkid1024 阅读(4863) 评论(0) 推荐(1) 编辑
摘要: 问题描述 在目标检测中,有一个很重要的算法,就是非极大值抑制算法,它本身是一个贪心算法。在多个目标检测预测框结果里找到极大的那个,也即是置信度最高的那个。最近有被问到有关NMS的CPP实现,大概查了一下,大部分都是用python写的,用cpp可能更困难一些。 解决思路 算法原理 输入:包含多个输入框 阅读全文
posted @ 2020-05-10 09:10 wildkid1024 阅读(761) 评论(0) 推荐(0) 编辑