06 2020 档案
摘要:说明 在python中处处皆对象,那么具体细分又可以分为可变类型和不可变类型对象,今天来详细讨论一下。 is 和 == 的区别 先提前说一下is和==的区别以帮助理解。 is是判断两者是否属于同一内存,即id(a) == id(b).而等于则是通过比较两个值的大小是否相同。以下是例子: a = 'h
阅读全文
摘要:说明 python的进阶用法之一就是生成器、迭代器的用法,使用生成迭代可以极大地减少代码的行数,使得代码简明易读。 列表生成式 range(1,100,5) #第一个参数表示开始位,第二个参数表示结束位(不含),第三个参数表示步长,就是每5个数返回一次。 a = [i for i in range(
阅读全文
摘要:说明: 笔者在python编程中遇到的python问题集合。 AttributeError: module 'os' has no attribute 'fork' 解决方案: os.fork不能直接在win上使用,代替方案multiproessing from multiprocessing im
阅读全文
摘要:说明 在前面讲模型加载和保存的时候,在多GPU情况下,实际上是挖了坑的,比如在多GPU加载时,GPU的利用率是不均衡的,而当时没详细探讨这个问题,今天来详细地讨论一下。 问题 在训练的时候,如果GPU资源有限,而数据量和模型大小较大,那么在单GPU上运行就会极其慢的训练速度,此时就要使用多GPU进行
阅读全文
摘要:说明 模型裁剪可分为两种,一种是稀疏化裁剪,裁剪的粒度为值级别,一种是结构化裁剪,最常用的是通道裁剪。通道裁剪是减少输出特征图的通道数,对应的权值是卷积核的个数。 问题 通常模型裁剪的三个步骤是:1. 判断网络中不重要的通道 2. 删减掉不重要的通道(一般不会立即删,加mask等到评测时才开始删)
阅读全文
摘要:说明 在DeeCamp2019的时候,有去申请,但当时忙着其他的事情,没有好好做笔试,于是后面就被筛掉了。后面听说也有其他同学被捞的,但可能我简历上没啥东西,出身又不好,所以就pass了。 今年又申请了一次,不知道是不是因为疫情的原因,今年没了笔试环节,直接投递简历加面试。我投的是算力和算符约束下的
阅读全文
摘要:说明 在模型训练的时候,往往使用的是多GPU的环境;但是在模型验证或者推理阶段,往往使用单GPU甚至CPU进行运算。那么中间有个保存和加载的过程。下面来总结一下。 多GPU进行训练 首先设置可见的GPU数量,有两种方式可以声明: 在shell脚本中声明: export CUDA_VISIBLE_DE
阅读全文