GAN_conv 代码详解

1.tensor.clamp(a,min,max)

#将tensor类型的a中的小于min的元素设为min,大于max的元素设为max

2. DataLoader(minst, batch_size, shuffle=True, num_workers)

#shuffle=True在每个epoch中打乱数据再取batch
#每次dataloader加载数据时:dataloader一次性创建num_worker个工作进程,
#worker也是普通的工作进程
#并用batch_sampler将指定batch分配给指定worker,worker将它负责的batch加载进RAM。
#然后,dataloader从RAM中找本轮迭代要用的batch,如果找到了,就使用。如果没找到,
#就要num_worker个worker继续加载batch到内存,直到dataloader在RAM中找到目标batch。
#一般情况下都是能找到的,因为batch_sampler指定batch时当然优先指定本轮要用的batch。

3.torch.autograd.Variable

autograd//自动微分

3.1 Variable中包含三个属性:data,grad,grad_fn

data:tensor形式的原始数据,通过.data来访问原始raw data (tensor)

grad:通过调用.backward()来计算梯度, , 并将变量梯度累加到.grad

grad_fn:指向Function对象,用于反向传播的梯度计算之用

 

 3.2 Variable的属性

每个Variable都有两个属性,requires_grad和volatile, 这两个属性都可以将子图从梯度计算中排除并可以增加运算效率

3.2.1 requires_grad:排除特定子图,不参与反向传播的计算,即不会累加记录grad

3.2.2 volatile: 推理模式, 计算图中只要有一个子图设置为True, 所有子图都会被设置不参与反向传

播计算,.backward()被禁止

 3.2.3 loss.backward()和optimizer.step()

loss.backward() //将Variable中的grad中计算出

optimizer.step() //将grad按照更新规则加到data上

4.CPU和GPU的数据转移

.cuda() //把数据转移到GPU上

.data() //读取Variable中的tensor

.cpu() //把数据转移到CPU上

5.Class  torch.utils.data.DataLoader(datasetbatch_size=1shuffle=Falsesampler=Nonebatch_sampler=Nonenum_workers=0)

将Dataset和sampler组合起来,提供一个迭代器遍历给定数据集

6. torch.utils.data.Dataset()

7.nn.LeakyReLU(negative_slope=0.01inplace=False)

#inplace设为True后,输出数据会覆盖原来的数据

8.torch.save(G.state_dict(),  'path')

8.1 torch.save()

保存模型参数,可以方便调用继续训练,保存的文件一般为后缀.pth

8.2 Module.state_dict() 和Module.parameter()

Module.state_dict() 和Module.parameter()中都存储了网络的参数

Module.state_dict().keys()返回字典的键,键为网络所有参数的名称

Module.state_dict()返回了一个包含网络参数的列表

Module.parameter() 其类型为class 'generator'

当调用Module.parameter()后返回了一个生成器(generator),可以发现Module.parameter()和Module.state_dict()存储了一样的数据,不过有区别的是,Module.parameter()中存放的Tensor的requires_grad设置为了True。

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值