赞
踩
1.item() → number
方法: item() 返回一个数
只能用于只包含一个元素的张量。对于其他的张量,请查看方法tolist().
该操作是不可微分的,即不可求导.
(译者注:返回的结果是普通Python数据类型,
自然不能调用backward()方法来进行梯度的反向传播)
Example: 例子:
>>> x = torch.tensor([1.0])
>>> x.item()
1.0
2.Tensor(张量)
中包含data和grad,data和grad也是Tensor。grad初始为None,调用l.backward()方法后w.grad为Tensor,故更新w.data时需使用w.grad.data。如果w需要计算梯度,那构建的计算图中,跟w相关的tensor都默认需要计算梯度。
4.Module 类是 torch.nn 模块里提供的一个模型构造类 (nn.Module),是所有神经⽹网络模块的基类,我们可以继承它来定义我们想要的模型;
PyTorch模型定义应包括两个主要部分:各个部分的初始化(init);数据流向定义(forward)
class LinearModel(torch.nn.Module):
def __init__(self):
super(LinearModel, self).__init__() #构造函数
# (1,1)是指输入x和输出y的特征维度,这里数据集中的x和y的特征都是1维的
# 该线性层需要学习的参数是w和b 获取w/b的方式分别是~linear.weight/linear.bias
self.linear = torch.nn.Linear(1, 1) # 构造对象Linear,并说明输入输出的维数,第三个参数默认为true,表示用到b
def forward(self, x):
y_pred = self.linear(x)
return y_pred
5.pytorch 之 call, init,forward
6.tensor.grad.data.zero_() #手工清零,释放之前计算的梯度
7.python @符号的使用归纳整理一下
① 函数
python函数修饰符@的作用是为现有函数增加额外的功能,常用于插入日志、性能测试、事务处理等等。
创建函数修饰符的规则:
(1)修饰符是一个函数
(2)修饰符取被修饰函数为参数
(3)修饰符返回一个新函数
(4)修饰符维护被维护函数的签名
把当前函数当做参数传入到修饰函数里执行,然后再修饰函数里做一些操作。
② @staticmethod 和 @classmethod
@staticmethod 相当于C++里的静态函数
@classmethod 相当于C++里常用的一个类调用Create来创建自身的用法。
应用场景可以参考这个链接
Python 中的 classmethod 和 staticmethod 有什么具体用途?
③ @property
看这个文章就是了,这个很好理解,就是属性,没啥特别的
链接: Zhihao:python @property的介绍与使用
8.tensor.nn
① tensor.nn.MSELOSS
创建一个标准,用于测量输入x和目标y中每个元素之间的均方误差(L2范数的平方)
如果设置reduction = ‘sum’,则可以避免除以n。
9.PyTorch Fashion(风格)
① prepare dataset
② design model using Class # 设计模型,目的是为了前向传播forward,即计算y hat(预测值)
③ Construct loss and optimizer (using PyTorch API) 构造损失和优化器,其中,计算loss是为了进行反向传播,optimizer是为了更新梯度。
④ Training cycle (forward,backward,update)
10.torch.optim优化器
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。