有免费建站的网站吗,网站的联系我们怎么做,企业网站设计的功能,广州 定制网站3000元深度学习之线性模型 y w * x模型思路 y w * x b模型思路 y w * x模型
思路 这里求权重w , 求最适合的权重#xff0c;就是求损失值最小的时候 这里用穷举法:在一个范围内#xff0c;列出w的所有值#xff0c;并且计算出每组数据的平均损失值,以w 为横坐标, 损失值为纵坐… 深度学习之线性模型 y w * x模型思路 y w * x b模型思路 y w * x模型
思路 这里求权重w , 求最适合的权重就是求损失值最小的时候 这里用穷举法:在一个范围内列出w的所有值并且计算出每组数据的平均损失值,以w 为横坐标, 损失值为纵坐标作图找到损失值最低的点对应的就是最适合 的w import numpy as np
import matplotlib.pyplot as plt#线性模型 y w · ···* x
# 此次数据集模型 y 2x
x_data [1.0, 2.0, 3.0]
y_data [2.0, 4.0, 6.0]def forward(x):return x*w#预测的损失值预测的y值到真实y值的之差
# 由于可能是正的也有可能是负的这里的损失值用它们的平方来表示def loss(x, y):return (forward(x) - y)**2#穷举法金肯列举一个范围的所有的w值求出每个w值的时三组数据的loss值的平均值
#以每组数据的w和平均损失值值为 x, y坐标选出损失值最小的w 作为合适的ww_list []
mse_list []for w in np.arange(0.0, 4.1, 0.1):print(w, w)l_sum 0for x_val, y_val in zip(x_data, y_data):y_pred_val forward(x_val)loss_pred_val loss(x_val, y_val)l_sum loss_pred_valprint(\t, x_val, y_val, y_pred_val, loss_pred_val)print(MSE , l_sum / 3)w_list.append(w)mse_list.append(l_sum/3)plt.plot(w_list, mse_list)
plt.xlabel(w)
plt.ylabel(ylable)
plt.show() 如图w 2时损失值最小所以w 2是该训练数据合适的权重 y w * x b模型
思路 y w * x b模型就需要3D绘图 先利用mershgrid函数 Axes3D函数建立网格坐标 在利用plot_surface进行绘图 import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D#这里设函数为y3x2
x_data [1.0,2.0,3.0]
y_data [5.0,8.0,11.0]def forward(x):return x * w bdef loss(x,y):y_pred forward(x)return (y_pred-y)*(y_pred-y)mse_list []
Wnp.arange(0.0,4.1,0.1)
Bnp.arange(0.0,4.1,0.1)
[w,b]np.meshgrid(W,B) #生成2维的网格坐标l_sum 0for x_val, y_val in zip(x_data, y_data):y_pred_val forward(x_val)print(y_pred_val)loss_val loss(x_val, y_val)l_sum loss_valfig plt.figure()
#ax Axes3D(fig)#pycharm版本原因需要用这样的代码绘制坐标图
ax Axes3D(fig, auto_add_to_figureFalse)
fig.add_axes(ax)ax.plot_surface(w, b, l_sum/3)
plt.show()如果所示这是该训练数据的图