Pytorch的安装请参考torch的官方文档,传送门:https://pytorch.org/get-started/locally/
- Numpy的复习
- 如果你之前没有学过Numpy的话,建议去看看cs231n的Python-numpy-tutorial:http://cs231n.github.io/python-numpy-tutorial/
- 先给出完整的代码,接下来是代码的解读
-
#导入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()
-