- 博客(9)
- 收藏
- 关注
原创 python基础教程(第三版)学习笔记(四)
2. 对象和对象之间不要过于亲密,方法只关心所属实例,对其他实例的状态应当管好自己。4. 保持简单,短小紧凑。30秒内如果不能理解这段代码的含义,那么请务必重新审视。思考、记录类的使用场景,记录这个场景,并且用代码满足它。结合方法,属性,就可以开发一个好的、实用的类了。3. 小心使用继承,除非有必要。1. 相关的东西放在一起。形容词 -- 可能的属性。关于面向对象设计的思考。动词 -- 可能的方法。名词 -- 可能的类。
2024-10-27 12:00:45
102
原创 使用pdb进行detr3d代码走读(二)
经过刚才的第一轮,调整一下断点的位置,这次可以直接把断点打在detr3d的代码里面。这次设置两个断点位置,分别是detr3d的类初始化位置和predict推理位置。
2024-10-21 23:21:23
236
原创 使用pdb进行detr3d代码走读(一)
结合bash tools/dist_test.sh projects/DETR3D/configs/detr3d_r101_gridmask.py ~/Downloads/detr3d_r101_gridmask.pth 1。进入func的调用栈,一路穿刺之后找到outputs = self.runner.model.test_step(data_batch),这是典型的输出 = 模型(输入)的结构,感觉快找到了。还以为遍历module已经开始eval了,但是好像仍然是初始化实例的过程。
2024-10-21 22:14:46
430
原创 python基础教程(第三版)学习笔记(四)
多态和封装:例如,让每个对象自己负责**如何**计算价格,而对于使用方则只需要**查询**价格,做法是调用对象自身的**计算价格**方法。封装与多态的不同:多态让使用者无需知道具体的类,封装保障你能够放心使用抽象。好的封装能够很好使用属性和全局变量,使结果正确,符合预期。另一个例子:加法运算符+,既可以用于数字相加,也可以用于字符串相连。python主要内置对象类型:数,字符串,列表,元组,字典。重点概念:对象,多态,封装,方法,属性,超类,继承。--如果走起来是鸭子,叫起来像鸭子,那么他就是鸭子。
2024-10-06 02:55:40
215
原创 花了一天在新pc上调通了mmdetection3d和detr3d的代码环境
我的电脑基本上是一个全新的ubuntu主机(除了minecraft之外没有任何生产力环境,总算是要开始务正业了),所以从头开始。个人使用的电脑环境:志强2790v3,nvidia 1050ti,4G显存,24G内存,ubuntu20.04。到这里应该算是趟通了detr3d的环境和代码了,后面的时间就可以用来结合学习资料进行比较仔细的研读了。没想到运气比较好,显存刚刚好够,但是计算核心不够多,资源拉爆了,但能跑起来了,能看。换了别的版本也没用,还好锁页内存不是核心功能,只是影响效率,把这个功能关掉。
2024-10-05 00:24:44
318
原创 python基础教程(第三版)学习笔记(三)
参数存储在函数局部作用域。但是,如果参数是一种可变的数据结构,比如列表,那么函数就可以影响到外部了。所以,如果不想要影响,你可以创建副本,让原本的容器更安全,不会被改。对什么都不返回的函数,可以不包含return,也可以包含一个没有在后面指定返回值的纯return。星号的作用是,收集余下的位置参数。抽象可以隔离具体的实现细节,而更聚焦在能做什么,以及做什么的所需条件上。收集位置参数用*,收集关键字参数,用**,收集的结果是字典而不是元组。注意函数参数包括位置参数和关键字参数,且有分配和收集机制,*和**。
2024-10-04 23:39:31
270
原创 python基础教程(第三版)学习笔记(二)
类似与C++的智能指针,python的垃圾回收自己会监控这个元素实际的值在后续是否还会被引用,如果没有了,其就会立刻删掉。当用作布尔表达式时,这些值被视为假:False,None,(各种数据类型的,包括浮点、复数等)0,“”,(),[],{},5. 条件语句if以及一些注意事项,例如is和==的区别,布尔变量对哪些值认为是假,is为什么不能用于判断数字、字符串。3. is不可以用于数字,字符串等不可变基本值,因为结果不可预测,他们并不是变量,没有稳定的分配地址。基于代码块,有条件语句、循环语句等。
2024-10-04 22:12:48
447
原创 python基础教程(第三版)学习笔记(一)
pop:删除元素(和append搭配使用形成一个后进先出的栈结构,和insert(0,...)搭配使用可以形成一个先进先出的队列。和拼接的区别是,拼接的结果是一个全新的序列,而扩展是修改原有的序列。后续有语句,流程体,以及面向对象抽象、高级数据结构,等,另开一篇笔记。items:把字典中所有元素汇总成一个列表,格式为(key,value),排序不确定。第一个索引是包含的第一个元素的编号,但第二个索引是切片后余下的第一个元素的编号。join:和split相反,用于以指定的连接符,合并序列的元素,返回字符串。
2024-10-01 14:12:05
688
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人