刘大大第二讲作业

import numpy as np
import matplotlib.pyplot as plt

x_data=[1.0,2.0,3.0]
y_data=[2.0,4.0,6.0]

def forward(x):
    return x * w + b

def loss(x, y):
    y_pred = forward(x)
    return (y_pred - y) * (y_pred - y)\

loss_list=[]
for w in np.arange(0.0, 4.1, 0.1):
    # 存放单独一个w对应所有b的误差,是一个行向量
    mse_vec = []
    for b in np.arange(-2.0, 2.1, 0.1 ):
        loss_sum = 0
        # 根据输入的两个列表(x_data,y_data)来求出预测值和误差
        for x_val, y_val in zip(x_data, y_data):
            y_pred_val = forward(x_val)
            loss_val = loss(x_val, y_val)
            # 误差求和
            loss_sum += loss_val
         # 平均误差
        loss_mean = loss_sum / 3
        mse_vec.append(loss_mean)
    # 算完一整个误差行向量后,将此向量存入loss_list中,最后形状是(41, 21)
    loss_list.append(mse_vec)


fig = plt.figure()
ax = plt.axes(projection='3d')
w,b = np.meshgrid(np.arange(-2.0, 2.1, 0.1),np.arange(0.0, 4.1, 0.1))
mse= np.asarray(loss_list)
surf = ax.plot_surface(w,b,mse,rstride=1, cstride=1, cmap=plt.get_cmap('rainbow'))
fig.colorbar(surf, shrink=0.5, aspect=5)

plt.show()

参考博客:核心代码参考

3分钟理解np.meshgrid()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值