1、from . import *
代表的是这一级的文件夹导入模块。
2、import A as B
给与工具库一个别称B,帮助记忆、书写。
3、cudnn.benchmark=true
让内置的 cuDNN 的 auto-tuner 自动寻找最适合当前配置的高效算法,来达到优化运行效率的问题。
4、
cfg = utils.cfg cfg.merge_from_file(args.config_path) cfg.freeze()
5、DataLoader(dataset, batch_size=1, shuffle=False, sampler=None, num_workers=0, collate_fn=default_collate, pin_memory=False, drop_last=False)
dataset:加载的数据集(Dataset对象)
batch_size:batch size
shuffle::是否将数据打乱
sampler: 样本抽样,后续会详细介绍
num_workers:使用多进程加载的进程数,0代表不使用多进程
collate_fn: 如何将多个样本数据拼接成一个batch,一般使用默认的拼接方式即可
pin_memory:是否将数据保存在pin memory区,pin memory中的数据转到GPU会快一些
drop_last:dataset中的数据个数可能不是batch_size的整数倍,drop_last为True会将多出来不足一个batch的数据丢弃
6、model=torch.nn.DataParallel(model).cuda()
当迭代次数或者epoch足够大的时候,我们通常会使用nn.DataParallel函数来用多个GPU来加速训练torch.nn.DataParallel保存,单GPU加载_zhaosuyuan的博客-CSDN博客【pytorch系列】torch.nn.DataParallel用法详解_大黑山修道的博客-CSDN博客_dataparallel
7、torch.nn.L1Loss()
torch.nn.L1Loss用法_仁义礼智信达的博客-CSDN博客_torch.nn.loss
torch.nn.L1Loss
类使用平均绝对误差函数对损失值进行计算,同样,在定义类的对象时不用传入任何参数,但在使用实例时需要输入两个维度一样的参数进行计算。
8、class torch.optim.Adam(params, lr=0.001, betas=(0.9, 0.999), eps=1e-08, weight_decay=0)
params(iterable):可用于迭代优化的参数或者定义参数组的dicts。
lr (float, optional) :学习率(默认: 1e-3)
betas (Tuple[float, float], optional):用于计算梯度的平均和平方的系数(默认: (0.9, 0.999))
eps (float, optional):为了提高数值稳定性而添加到分母的一个项(默认: 1e-8)
weight_decay (float, optional):权重衰减(如L2惩罚)(默认: 0)torch.optim优化算法理解之optim.Adam()_shuaiqidexiaojiejie的博客-CSDN博客_optim.adam
9、torch.optim.lr_scheduler.MultiStepLR(optimizer, milestones, gamma=0.1, last_epoch=-1)
改变学习率
torch.optim.lr_scheduler.MultiStepLR(optimizer, milestones, gamma=0.1, last_epoch=-1)
milestones为一个数组,如 [50,70]. gamma为倍数。如果learning rate开始为0.01 ,则当epoch为50时变为0.001,epoch 为70 时变为0.0001。
10、 model.train()、model.eval()
【Pytorch】model.train() 和 model.eval() 原理与用法_想变厉害的大白菜的博客-CSDN博客_model train
11、tqdm 进度条
12、optimizer,zero_grad()
optimizer.zero_grad()意思是把梯度置零,也就是把loss关于weight的导数变成0.
https://blog.csdn.net/bigbigvegetable/article/details/114674793
torch代码解析 为什么要使用optimizer.zero_grad()_scut_salmon的博客-CSDN博客_zero_grad()
13、loss.backward() 计算当前梯度,反向传播
optimizer.step() 根据当前梯度更新网络参数,一个batch数据会计算一次梯度,然后optimizer.step()更新
https://www.csdn.net/tags/NtzaQgzsNjQ3MTUtYmxvZwO0O0OO0O0O.html
14、torch.save() torch.load()
15、with torch.no_grad():
16、torch.clamp()
将输入
input
张量每个元素的夹紧到区间[min,max]
内,并返回结果到一个新张量
17、transforms.ToPILImage() PIL(Python Imaging Library)
pytorch在将Tensor类型数据转换为图片数据时,需要用到这torchvision.transforms.ToPILImage()函数,该函数的作用就是把Tensor数据变为完整原始的图片数据(保存后可以直接双击打开的那种)。
【PyTorch】torchvision.transforms.ToPILImage 与图像分辨率_Anova.YJ的博客-CSDN博客_transforms.topilimagetorchvision.transforms.ToTensor()与torchvision.transforms.ToPILImage()详解_CV干饭王的博客-CSDN博客_topilimage作用【PyTorch】torchvision.transforms.ToPILImage 与图像分辨率_Anova.YJ的博客-CSDN博客_transforms.topilimage
18、.convert('L')
输出PIL的灰度图像
19、os.makedirs()
递归目录创建函数
os.mkdir()与os.makedirs()的使用方法_yangsong95的博客-CSDN博客_os.makedirs()
20、os.path.join()函数
连接两个或更多的路径名组件
21、image.save()
将此图像保存在给定的文件名下。如果未指定格式,则尽可能使用文件名扩展名确定要使用的格式。
22、model.load_state_dict(checkpoint['model'])
将训练好的权重加载到我们的模型中https://www.csdn.net/tags/Ntzagg3sNDk0MTktYmxvZwO0O0OO0O0O.html
23、size()函数,主要统计矩阵元素个数或者矩阵某一维上的元素个数。
24、