PytorchZerotoAll学习笔记(一)

时间:2023-03-10 02:23:11
PytorchZerotoAll学习笔记(一)

Pytorch的安装请参考torch的官方文档,传送门:https://pytorch.org/get-started/locally/

  1. Numpy的复习
    1. 如果你之前没有学过Numpy的话,建议去看看cs231n的Python-numpy-tutorial:http://cs231n.github.io/python-numpy-tutorial/
  2. 先给出完整的代码,接下来是代码的解读  
    1.  
      #导入numpy库和matplotlib里面的pyplot模块
      # tips:python语法 as :import XXX as YYY 就是给XXX 起个别名叫 YYY
      import numpy as np import matplotlib.pyplot as plt
      # []为一个list,生成浮点数
      x_data = [1.0, 2.0, 3.0]
      y_data = [2.0, 4.0, 6.0] #前向传播的模型为 y = w * x
      # our model for the forward pass
      def forward(x):
      return x * w #损失函数采用平方误差 (y_pred-y)2
      # Loss function
      def loss(x, y):
      y_pred = forward(x)
      return (y_pred - y) * (y_pred - y) #新建两个空的列表来记录 w、mse 的值 mse为均方误差 mean square error的缩写
      w_list = []
      mse_list = []
      # tips:python小知识点:np.arrange(起始,终止,步长) 生成一个区间的数值,步长就是起始值每次往终点值移动的长度
      for w in np.arange(0.0, 4.1, 0.1):
      # 在控制台,输出w的值
      print("w=", w)
      # 定义一个接收损失的变量,并初始化为0
      l_sum = 0
      # tips: python zip函数 返回的值是:输入的两个数组对应位置组合的一个元组()
      # a= 【1,2,3】 zip(a,b)其实就是返回 (1,4),(2,5),(3,6)
      # b= 【4,5,6】
      for x_val, y_val in zip(x_data, y_data):
      #得到一个预测的值
      y_pred_val = forward(x_val)
      # 计算输入值得到的预测值和真实值之间的误差
      l = loss(x_val, y_val)
      # 误差进行求和
      l_sum += l
      print("\t", x_val, y_val, y_pred_val, l)
      print("MSE=", l_sum / 3)
      # 【】.append 向列表中追加值
      w_list.append(w)
      mse_list.append(l_sum / 3)
      # 调用画图函数
      plt.plot(w_list, mse_list)
      # 添加 x,y的标签
      plt.ylabel('Loss')
      plt.xlabel('w')
      # 将结果展示出来
      plt.show()