pytorch学习笔记(一)

pytorch学习笔记(一)

1、进入pytorch的命令:conda activate pytorch
2、dir():打开看见 。如dir(pytorch.3.a)
help():说明书
3、维度诅咒:维度越高,所需要的数据量就越多,假设一维数据密度为10,则三维数据密度为1000,所以降维有了产生的必要。
4、Training Loss针对样本,MSE(Mean Square Error,即平均平方误差)针对训练集
5、visdom可视化工具
6、鞍点:进入鞍点之后无法进入迭代。
7、指数加权平均:采用指数加权平均使得曲线更加平滑在这里插入图片描述8、训练结果发散有可能是学习率取得太大,尝试把α降低。
9、 梯度下降算法
随机梯度下降(stochastic gradient descent):随机选取单个样本的损失函数对w权重求导。
批量梯度下降(Mini-Batch):整体性能低,时间复杂度低;单个性能高,时间复杂度高。折中办法——采取Mini-Batch,将数据分成若干皮,按批来更新参数。
10、反向传播(Back Propagation):先前馈再反馈求出梯度。
Tensor在做运算时在构建运算图。
11、PyTorch Fashion:
① Prepare dataset
② Design model using Class:inherit from nn.Module
③ Construct loss and optimizer:using PyTorch API
④ Training cycle:forword,backward,update
12、Design model using Class
① 用类设计模型需要画出运算图。仿射模型——线性单元:z=w*x+b

// nn.Linear必须有__init__()和forward()
// nn.Linear有__call__()让类的实例能够像function一样使用
class LinearModel(torch.nn.Module)
  def __init__(self):
    super(LinearModel,self).__init__()
    self.Linear = torch.nn.Linear(1,1) //第一个参数是权重,第二个是偏置
  def forward(self,x):
    y_pred = self.linear(x) //把输入x变成y-hat
    return y_pred
    
model = LinearModel() //把模型实例化

② 函数中传递参数:
*args:把所传递的未确定名称的参数组成元组;
**kargs:把所传递的确定名称的参数组成字典。


def func(*args,**kargs)
  print(args)    //输出(1,2,3,4)
  print(kargs)   //{'x':3,'y':5}
  
 func(1,2,4,3,x=3,y=5

13、Construct loss and optimizer

criterion = torch.nn.MSELoss(size_average=False)
//torch.nn.MSELoss(size_average=True,reduce=True) 第一个参数是否求均值,第二个是否降维
optimizer = torch.optim.SGD(model.parameters(),lr=0.01)
//第一个是找到模型里需要优化的参数,第二个是学习率

for epoch in range(100):
  y_pred = model(x_data)
  loss = criterion(y_pred,y_data)
  print(epoch,loss) //将loss自动转为字符串
   
  optimizer.zero_grad() //梯度归零
  loss.backward()       //backward
  optimizer.step()      //update
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值