学习

刘二大人《PyTorch深度学习实践》
B站地址
本周最重要的收获是在自己完成了从系统架构到测试架构,数据读取,损失函数整个过程的实践。对于深度学习的理解更加深入。读懂别人的网络结构并不难,难在自己在设计模型时网络的设计,细节的处理,细化到数据读取,损失的处理等。

第一章:线性模型

步骤:

  1. 准备Dataset
  2. 进行模型的选择
  3. 进行训练Training
  4. inferring
    问题:
    只有训练集的话,在测试之前想知道训练集性能如何该如何做呢?
    x,y是满足联合分布D(x, y),但是我们选取的数据集(x, y)是不一定能真实的表示出分布,尤其满足真实分布的数据集不容易得到。那我们如何知道此训练集的性能呢?
    通常的做法是,再将训练集分成两部分,第一部分为训练集,第二部分用来评估训练集的性能。完成之后再将两部分作为整体的训练集进行训练,最后再使用测试集。

思路:
使用线性模型,通过偏移误差来找到最优的权重
Loss使用两者差值的平方来评估误差


```python
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


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


w_list = []
mse_list = []
for w in np.arange(0.0, 4.1, 0.1):
    print('w =', w)
    l_sum = 0
    for x_val, y_val in zip(x_data, y_data):
        y_pred_val = forward(x_data)
        loss_val = loss(x_val, y_val)
        l_sum += loss_val
        print('MSE=', l_sum / 3)
        w_list.append(w)
        mse_list.append(l_sum / 3)




Logo

开源、云原生的融合云平台

更多推荐