关键词:
教程: https://www.bilibili.com/video/BV1Y7411d7Ys?p=2&vd_source=715b347a0d6cb8aa3822e5a102f366fe
数据集:
x
d
a
t
a
=
[
1.0
,
2.0
,
3.0
]
y
d
a
t
a
=
[
2.0
,
4.0
,
6.0
]
x_data = [1.0, 2.0, 3.0] \\\\y_data = [2.0, 4.0, 6.0]
xdata=[1.0,2.0,3.0]ydata=[2.0,4.0,6.0]
参数初始值:
w
1
=
1.0
w
2
=
1.0
b
=
1.0
w_1=1.0\\\\w_2=1.0\\\\b=1.0
w1=1.0w2=1.0b=1.0
模型:
y
=
w
1
∗
x
2
+
w
2
∗
x
+
b
y = w_1*x^2+w_2*x+b
y=w1∗x2+w2∗x+b
import torch
import matplotlib.pyplot as plt
x_data = [1.0, 2.0, 3.0]
y_data = [2.0, 4.0, 6.0]
w1 = torch.Tensor([1.0])
w1.requires_grad = True
w2 = torch.Tensor([1.0])
w2.requires_grad = True
b = torch.Tensor([1.0])
b.requires_grad = True
epoch_p = []
loss_p = []
def forward(x):
return w1 * x ** 2 + w2 * x + b
def loss(x, y):
y_pred = forward(x)
return (y_pred - y) ** 2
for epoch in range(100):
for x, y in zip(x_data, y_data):
l = loss(x, y)
l.backward()
print('\\tgrad:', x, y, w1.grad.item(), w2.grad.item(), b.grad.item())
w1.data = w1.data - 0.01 * w1.grad.data
w2.data = w2.data - 0.01 * w2.grad.data
b.data = b.data - 0.01 * b.grad.data
w1.grad.data.zero_()
w2.grad.data.zero_()
b.grad.data.zero_()
loss_p.append(l.item())
epoch_p.append(epoch)
print('Epoch:', epoch, l.item())
print("predict(aftertraining)",4,forward(4).item())
plt.figure()
plt.plot(epoch_p, loss_p, c = 'b')
plt.xlabel('Epoch')
plt.ylabel('loss')
plt.show()
pytorch学习2b站刘二大人《pytorch深度学习实践》——梯度下降算法(gradientdescent)(代码片段)
b站课程链接:梯度下降算法一、梯度下降算法1.简介梯度下降算法是一种求解函数最优值的迭代算法,给定一个初值,通过负梯度方向进行更新查找。2.程序实现及结果importmatplotlib.pyplotasplt#训练集x_data=[1.0,2.0,3.0]y_... 查看详情
pytorch深度学习:用pytorch实现线性回归(代码片段)
课程来源:Bilibili刘二大人《用PyTorch实现线性回归》代码大致思路:铺垫:创建数据集、构建计算模型定义损失函数和优化方式训练:通过forward函数进行前馈loss记录损失值清除上一次的梯度值反向传播并记录梯... 查看详情
pytorch学习1b站刘二大人《pytorch深度学习实践》——线性模型(linearmodel)(代码片段)
b站课程链接:线性模型1.基本思想:给出了一组一维数据,定义了一个简单的线性拟合函数,通过穷举法来列出一些权重(拟合函数的系数),并计算这些权重对应的拟合损失函数(使用均方误差... 查看详情
pytorch学习2b站刘二大人《pytorch深度学习实践》——梯度下降算法(gradientdescent)(代码片段)
b站课程链接:梯度下降算法一、梯度下降算法1.简介梯度下降算法是一种求解函数最优值的迭代算法,给定一个初值,通过负梯度方向进行更新查找。2.程序实现及结果importmatplotlib.pyplotasplt#训练集x_data=[1.0,2.0,3.0]y_... 查看详情
pytorch深度学习——逻辑斯蒂回归(分类问题)(b站刘二大人p6学习笔记)(代码片段)
目录1什么是分类问题?2为什么要使用逻辑斯蒂回归?3SigmidFounction(逻辑斯蒂回归函数)3.1模型的改变3.2损失函数的改变(BCELoss) 3.3代码的改变1什么是分类问题? 分类问题,与之前学习的... 查看详情
pytorch学习1b站刘二大人《pytorch深度学习实践》——线性模型(linearmodel)(代码片段)
b站课程链接:线性模型1.基本思想:给出了一组一维数据,定义了一个简单的线性拟合函数,通过穷举法来列出一些权重(拟合函数的系数),并计算这些权重对应的拟合损失函数(使用均方误差... 查看详情
pytorch案例代码
来自刘二大人课程最简单的线性回归最简单的逻辑斯蒂回归(二分类)improttorch.nn.functionalasF 查看详情
《pytorch深度学习实践》介绍
...bsp; 本文为bilibili刘二大人所讲的《PyTorch深度学习实践》学习笔记介绍。 笔记融入了自己对课程和代码的理解,希望对大家有所帮助,由于本人知识尚浅,如果笔记中有任何... 查看详情
pytorch 如何通过 argmax 反向传播?
】pytorch如何通过argmax反向传播?【英文标题】:Howdoespytorchbackpropthroughargmax?【发布时间】:2019-07-2423:06:42【问题描述】:我在pytorch中使用质心位置的梯度下降而不是期望最大化来构建Kmeans。损失是每个点到其最近质心的平方距... 查看详情
了解 PyTorch 中的反向传播
】了解PyTorch中的反向传播【英文标题】:UnderstandingbackpropagationinPyTorch【发布时间】:2021-11-2020:41:37【问题描述】:我在探索PyTorch,看不懂下面例子的输出:#Initializex,yandztovalues4,-3and5x=torch.tensor(4.,requires_grad=True)y=torch.tensor(-3.,req... 查看详情
神经网络反向传播梯度计算数学原理
...向传播梯度计算数学原理1文章概述本文通过一段来自于Pytorch官方的warm-up的例子:使用numpy来实现一个简单的神经网络。使用基本的数学原理,对其计算过程进行理论推导,以揭示这几句神奇的代码后面所包含的原理。估计对大... 查看详情
学习笔记pytorch十二损失函数与反向传播(代码片段)
【学习笔记】【Pytorch】十二、损失函数与反向传播一、损失函数的介绍1.L1Loss类的使用代码实现2.MSELoss类的使用3.损失函数在模型中的实现二、反向传播一、损失函数的介绍参考:损失函数(lossfunction)pytorchloss-functio... 查看详情
pytorch自定义多分类损失函数怎么反向传播
参考技术A只要自定义的损失函数的计算都是用的torch包内的函数,反向传播时跟平时一样loss=customLossFunc(yhat,y)loss.backward()optimizer.step() 查看详情
torch教程[3]使用pytorch自带的反向传播
#-*-coding:utf-8-*-importtorchfromtorch.autogradimportVariabledtype=torch.FloatTensor#dtype=torch.cuda.FloatTensor#UncommentthistorunonGPU#Nisbatchsize;D_inisinputdimension;#Hishiddendimension;D_outis 查看详情
如何使用 Pytorch 中的截断反向传播(闪电)在很长的序列上运行 LSTM?
】如何使用Pytorch中的截断反向传播(闪电)在很长的序列上运行LSTM?【英文标题】:HowtorunLSTMonverylongsequenceusingTruncatedBackpropagationinPytorch(lightning)?【发布时间】:2021-06-2808:05:30【问题描述】:我有一个很长的时间序列,我想将... 查看详情
pytorch自定义function
...UFunction; 在之前的介绍中,我们知道,Pytorch是利用Variable与Function来构建计算图的。回顾下Variable,Variable就像是计算图中的节点,保存计算结果(包括前向传播的激活值,反向传播的梯度),而Function就像计算... 查看详情
pytorch实现线性回归(代码片段)
前向传播: tensor中的require_grad参数: 设置为True时,会记录该tensor的计算过程; tensor中的grad_fn属性: 用来保存计算过程; tensor设置requires_grad=True后不保留计算过程可使用: withtorch.no_grad():... 查看详情
pytorch实现简单的分类器(代码片段)
作为目前越来越受欢迎的深度学习框架,pytorch基本上成了新人进入深度学习领域最常用的框架。相比于TensorFlow,pytorch更易学,更快上手,也可以更容易的实现自己想要的demo。今天的文章就从pytorch的基础开始,帮助大家实现成... 查看详情