文章目录
本文将摘录在深度学习项目中常见的一些 Python 代码片段。
使用 getattr 以字符串形式调用 . 后面的方法
How to call Python function by name dynamically using a string?
比如你本来是想调用形如下面这一串东西:
1 | model = torchvision.models.resnet18(pretrained=configs.use_trained_models) |
但可惜的是,在写代码阶段你还暂时不能确实到底是 resnet18 还是 resnet50,你希望能用类似下面这种形式调用——但很显然这样是错误的:
1 | model_name = 'resnet18' |
事实上正确的写法是:
1 | model_name = 'resnet18' |
BatchNorm 层, 别学辣
在下游数据集微调的时候往往会把 BatchNorm 层冻结。
1 | def train(self, mode=True): |
Micro tricks
用下划线分割的数字
1 | x = 140_000 |
其实就是 x = 140000
,你可以在任意位置加下划线,只是为了人好数位数罢了。
函数参数中的 *
- 单星号
*
:任意个 tuple 格式的参数 - 双星号
**
:任意个 dict 格式的参数
CLIP-related
有关 OpenAI CLIP 模型的一切。
Top 7 prompts
K 自官方 Notebook。
1 | itap of a {}. |