首页 > 编程语言 >PyTorch 深度学习实践(梯度下降算法)

PyTorch 深度学习实践(梯度下降算法)

时间:2022-12-21 18:31:30浏览次数:44  
标签:return 梯度 算法 grad PyTorch cost forward xs data

梯度下降上课代码

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]

w = 1.0

def forward(x):
return x * w

def cost(xs,ys):
cost = 0
for x,y in zip(xs,ys):
y_pred = forward(x)
cost += (y_pred -y) ** 2
return cost / len(xs) #计算MSE

def gradient(xs,ys):
grad = 0
for x,y in zip(xs,ys):
grad += 2 * x * (x * w - y) #相应的梯度落差式(即导数式)
return grad / len(xs)

mse_list = []
print('Predict (befortraining)',4,forward(4))
for epoch in range(100):
cost_val = cost(x_data,y_data) #便于画图
grad_val = gradient(x_data,y_data)
w -= 0.01 * grad_val
mse_list.append(cost_val)
print('Epoch:',epoch,'w=',w,'loss=',cost_val)
print('Predict(after training)',4,forward(4))

w_list=np.arange(0,100,1)
plt.plot(w_list,mse_list)
plt.ylabel('cost')
plt.xlabel('times')
plt.show()

随机梯度下降

PyTorch 深度学习实践(梯度下降算法)_随机梯度下降

只需要求出一个样本的均值

相应代码修改如下

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]

w = 1.0

def forward(x):
return x * w

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

def gradient(x,y):
return 2 * x * (x * w -y)

print('Predict (befortraining)',4,forward(4))
for epoch in range(100):
for x,y in zip(x_data,y_data):
grad = gradient(x,y)
w -= 0.01 * grad
print("\tgrad:",x,y,grad)
l = loss(x,y)
print('Predict(after training)',4,forward(4))

标签:return,梯度,算法,grad,PyTorch,cost,forward,xs,data
From: https://blog.51cto.com/u_15698454/5960060

相关文章

  • 一文看懂:MD5、AES和RSA算法这三者之间的区别
    在计算机安全领域,MD5、AES和RSA算法的应用比较广泛,它们可用来避免密码明文传输的漏洞危害。但是,这3种算法有什么区别呢?什么是MD5MD5信息摘要算法,一种被广泛使用的密码散列函......
  • 一文看懂:MD5、AES和RSA算法这三者之间的区别
    在计算机安全领域,MD5、AES和RSA算法的应用比较广泛,它们可用来避免密码明文传输的漏洞危害。但是,这3种算法有什么区别呢?什么是MD5MD5信息摘要算法,一种被广泛使用的密码散列函......
  • 一文看懂:MD5、AES和RSA算法这三者之间的区别
    在计算机安全领域,MD5、AES和RSA算法的应用比较广泛,它们可用来避免密码明文传输的漏洞危害。但是,这3种算法有什么区别呢?什么是MD5MD5信息摘要算法,一种被广泛使用的密码散列......
  • PyTorch 深度学习实践第二讲(线性模型)
    写在前面:B站刘二大人 ,传送门 ​​PyTorch深度学习实践——线性模型​​​​学习步骤准备数据集模型的选择和设计训练的过程(确定权重)推理和测试工作(infering) Traininglo......
  • STL 算法 <algorithm>,
    STL算法部分主要由头文件<algorithm>,<numeric>,<functional>组成。要使用STL中的算法函数必须包含头文件<algorithm>,对于数值算法须包含<numeric>,<functional>......
  • 2020第十七届华为杯数模C题——P300脑电信号数据预处理算法
    脑电信号数据预处理  这两天的数学建模选的C题,目标是要处理脑电P300信号的数据并进行相关预测任务。该题重点是数据预处理,因此根据最后实验的结果,分享相关的预处理方法以......
  • 【算法编程】和为 K 的最少斐波那契数字数目
    【算法编程】和为K的最少斐波那契数字数目  给定k个数,其满足斐波那契性质,从中挑选一部分数字(每个数只能被挑选1次)使得它们的和恰巧为k。目标是求出最少能够挑选几个数满......
  • 强化学习(四):基于表格型动态规划算法的强化学习
    强化学习(四):基于表格型动态规划算法的强化学习​  在有限马尔可夫决策过程中,智能体在某个状态进行决策的过程中,始终满足价值函数和动作函数的贝尔曼方程,事实上,这就是一种动......
  • [leetcode]第 5 天 查找算法(中等)
    04.二维数组中的查找思路直接遍历!两个for循环classSolution{publicbooleanfindNumberIn2DArray(int[][]matrix,inttarget){for(int[]row:mat......
  • 算法导论:笔记
    AlgorithmandDataStructure目录AlgorithmandDataStructureSec6HeapSort6.1Whatisheap?6.2MaintainthePropertiesofHeap6.3BuildaHeap6.4HeapSort6.5......