思维导图
链接: https://pan.baidu.com/s/1LZKUbrgn12Mv1LqDYb9lgQ?pwd=wvds 提取码: wvds
内容
自定义损失函数
动态调整学习率
模型微调
半精度训练
装饰器
目的:将函数的主要功能 和 辅助功能 减藕
函数闭包:输入是函数,输出也是函数,可应用于函数增强
例:主要功能为打印奇数,辅助功能为打印耗,可用函数闭包来将打印奇数功能嵌入到打印耗时功能中。
def prind_odd():
for i in rang(100):
if i % 2 = 1:
print(i)
函数闭包
def decorate(function):
def improved_func(*args, **kwargs):
start = time.time()
ret = function(*args, **kwargs)
end = time.time()
print(end-start)
return ret
return improved_func
调用打印功能
func1 = decorate(print_odd)
func1()
在实际应用中,不希望将辅助功能暴漏给用户,我们希望可以直接调用func1() 没有func1 = decorate(print_odd)的操作,因此可以使用python的装饰器
@decorate
def prind_odd():
for i in rang(100):
if i//2 = 1:
print(i)
print_odd()
半精度训练装饰器
@autocast()
def forward(self, x):
...
return x
等价于
def autocast(func):
def improved(*args, **kwargs):
# 将参数转换为torch.float16类型
new_arags = 转换操作函数(*args, **kwargs)
ret = func(new_args)
return ret
return improved