PENet深度补全神经网络 ——(二):


1、【pytorch】named_parameters() 和 parameters():

【pytorch】named_parameters()和parameters()(https://blog.csdn.net/qq_36530992/article/details/102729585
nn.Module里面关于参数有两个很重要的属性named_parameters()和parameters(),前者给出包含神经网络各个层的名字和各个层的参数的迭代器,而后者仅仅是各个层的参数的迭代器。

import torchvision.models as models
model = models.resnet18()
for name, param in model.named_parameters():
    print(name)
    print(param)
    
for param in model.parameters():
	print(param)

2、Pytorch 之 requires_grad:

Pytorch之requires_grad(https://blog.csdn.net/weixin_44696221/article/details/104269981
[Pytorch函数].requires_grad固定部分参数进行网络训练(https://blog.csdn.net/qq_41568188/article/details/107457596

requires_grad 是 Pytorch 中神经网络层的参数的一个属性,用于说明当前层是否需要在计算中保留对应的梯度信息,如果 requires_grad 是False,则代表不计算该层网络的参数的梯度(即冻结该层参数,不进行更新),如果 requires_grad 是True,则代表计算该层网络的参数的梯度,对参数进行更新。


3、PyTorch nn.DataParallel 多GPU训练模型:

PyTorch-4 nn.DataParallel 数据并行详解(https://www.jianshu.com/p/1168ebf4c84b
Pytorch的nn.DataParallel(https://zhuanlan.zhihu.com/p/102697821

使用多个GPU训练模型

model = nn.DataParallel(model)

4、pytorch 创建 data.DataLoader 时,参数 pin_memory 的理解:

pytorch创建data.DataLoader时,参数pin_memory的理解(https://blog.csdn.net/tsq292978891/article/details/80454568
pin_memory 就是锁页内存,创建 DataLoader 时,设置 pin_memory=True,则意味着生成的 Tensor 数据最开始是属于内存中的锁页内存,这样将内存的 Tensor 转义到 GPU 的显存就会更快一些,所以模型训练时的速度也会更快一些。

主机中的内存,有两种存在方式,一是锁页,二是不锁页,锁页内存存放的内容在任何情况下都不会与主机的虚拟内存进行交换(注:虚拟内存就是硬盘),而不锁页内存在主机内存不足时,数据会存放在虚拟内存中。

而显卡中的显存全部是锁页内存!

当计算机的内存充足的时候,可以设置 pin_memory=True。当系统卡住,或者交换内存使用过多的时候,设置 pin_memory=False。因为 pin_memory 与电脑硬件性能有关,pytorch开发者不能确保每一个炼丹玩家都有高端设备,因此 pin_memory 默认为 False。


5、pytorch Dataloader 中 shuffle、num_workers、sampler 等参数的含义:

pytorch Dataloader Sampler参数深入理解(https://blog.csdn.net/Chinesischguy/article/details/103198921
shuffle:取batch是否随机取, 默认为 False,即不打乱
num_workers:参与工作的线程数,默认为 int: 0
sampler:定义取batch的方法,默认为 None
drop_last:对最后不足batchsize的数据的处理方法, 默认为 False,即不丢弃

shuffle 其实就是改变 sampler 的取值,
shuffle 为默认值 False 时,sampler 是 SequentialSampler,就是按顺序取样;shuffle 为 True 时,sampler 是 RandomSampler, 也就是按随机取样,
所以当我们 shuffle 有输入时,sampler 的值就没有意义。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值