看demo1
http://pytorch-cn.readthedocs.io/zh/latest/package_references/torch/
pytorch文档
1.json
JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式。采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
2.import os
os模块包含普遍的操作系统功能,与具体的平台无关。
3.Xavier
Xavier”初始化方法是一种很有效的神经网络初始化方法
为了使得网络中信息更好的流动,每一层输出的方差应该尽量相等。
4.optim.sgd
http://blog.csdn.net/lanran2/article/details/50409507
配置变量包括:learningRate(梯度下降速率),learningRateDecay(梯度下降速率的衰减),weightDecay(权重衰减),momentum(动量 or 冲量)
5.学习率调度程序:torch.optim.lr_scheduler提供了几种无声和智能的方法来调整当前的学习率。
6.
torch.topk
torch.topk(input, k, dim=None, largest=True, sorted=True, out=None) -> (Tensor, LongTensor)
沿给定dim
维度返回输入张量input
中 k
个最大值。 如果不指定dim
,则默认为input
的最后一维。 如果为largest
为 False
,则返回最小的 k
个值。
返回一个元组 (values,indices),其中indices
是原始输入张量input
中测元素下标。 如果设定布尔值sorted
为_True_,将会确保返回的 k
个值被排序。
参数:
- input (Tensor) – 输入张量
- k (int) – “top-k”中的
k
- dim (int, optional) – 排序的维
- largest (bool, optional) – 布尔值,控制返回最大或最小值
- sorted (bool, optional) – 布尔值,控制返回值是否排序
- out (tuple, optional) – 可选输出张量 (Tensor, LongTensor) output buffers
>>> x = torch.arange(1, 6) >>> x 1 2 3 4 5 [torch.FloatTensor of size 5] >>> torch.topk(x, 3) ( 5 4 3 [torch.FloatTensor of size 3] , 4 3 2 [torch.LongTensor of size 3] ) >>> torch.topk(x, 3, 0, largest=False) ( 1 2 3 [torch.FloatTensor of size 3] , 0 1 2 [torch.LongTensor of size 3] )
6.torch.optim
http://pytorch.org/docs/master/optim.html?highlight=step#
如何使用优化器
要使用torch.optim,您必须构建一个优化器对象,该对象将保存当前状态,并将根据计算出的梯度更新参数。
构建
要构建一个优化器,你必须给它一个包含参数(都应该是variable)进行优化的迭代。 然后,您可以指定优化程序特定的选项,如学习率,weight衰减等。
注意
如果您需要通过.cuda()将模型移动到GPU,请在构建优化器之前进行。 .cuda()之后的模型的参数将与调用之前的对象不同。
一般来说,当优化器构建和使用时,您应该确保优化的参数保持在同一location。
optimizer = optim.SGD(model.parameters(), lr = 0.01, momentum=0.9)
optimizer = optim.Adam([var1, var2], lr = 0.0001)
Per-parameter options -看不懂
For example, this is very useful when one wants to specify per-layer learning rates:
optim.SGD([
{'params': model.base.parameters()},
{'params': model.classifier.parameters(), 'lr': 1e-3}
], lr=1e-2, momentum=0.9)
This means that model.base
’s parameters will use the default learning rate of 1e-2
,model.classifier
’s parameters will use a learning rate of 1e-3
, and a momentum of 0.9
will be used for all parameters