《PyTorch深度学习实践》第3讲—梯度下降
知识点
- 梯度下降法在计算梯度的时候可以计算梯度的平均值后再更新w,但是不容易取到全局最小值。
- 在计算梯度的时候可以对每一个点都计算梯度,然后对每一个点都更新w,尽量避免只取到局部最小值的情况。
课件代码
import numpy as np
import matplotlib.pyplot as plt
xData = [1.0, 2.0, 3.0]
yData = [2.0, 4.0, 6.0]
w = 0
def forecast(x : float) -> float:
return x * w
# calculate cost
def cost(xs : list, ys : list) -> float:
cost = 0
for x, y in zip(xs, ys):
yPred = forecast(x)
cost += (yPred - y) ** 2
return cost / len(xs)
# calculate average gradient
def gradient(xs : list, ys : list) -> float:
grad = 0
for x, y in zip(xs, ys):
grad += 2 * x * (x * w - y)
return grad / len(xs)
for epoch in range(100):
costVal = cost(xData, yData)
gradVal = gradient(xData, yData)
# parameter = 0.01
w -= 0.01 * gradVal
分类:
PyTorch深度学习实践
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」