看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

posted @ 2017-11-03 12:33  cathy_mu  阅读(519)  评论(0编辑  收藏  举报