自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(83)
  • 收藏
  • 关注

原创 Understanding Deep Learning 第三章 Shallow neural networks

当一层中的每个变量都连接到下一层中的每个变量时,我们称之为全连接网络。对于每个输出,多面体是相同的,但是它们包含的线性函数可能不同。这些功能的四个“连接点”(在垂直虚线处)被限制在相同的位置,因为它们共享相同的隐藏单元,但斜率和整体高度可能不同。)的网络处理,每个隐藏单元的输入是两个输入的线性函数,对应一个有向平面。普遍逼近定理证明,只要有足够的隐藏单元,就存在一个浅层神经网络,它可以将定义在。我们一直在讨论一个有一个输入,一个输出和三个隐藏单元的神经网络。随着隐藏单元的增加,模型可以逼近更复杂的函数。

2025-02-15 14:39:22 860

原创 PyTorch深度学习实践【刘二大人】之卷积神经网络

GoogLeNet的Inception模块,思路就是我们不知道多大的卷积核更好,我们就多选择几种卷积核然后concatenate进行沿通道拼接。网络中全部用的线形层串行连接起来,我们叫做全连接网络。输入与输出任意两节点间都有权重,这样的线形层叫做全连接层。3通道的图像,与3个卷积核做内积得到3个新的3*3矩阵,并对应位置相加。在卷积层数过多时,会出现梯度消失的情况,需要用残差网络来解决这个问题。卷积神经网络的基本特征,先特征提取再进行分类。下面是此模型的主要代码。

2025-01-18 13:57:35 444

原创 PyTorch深度学习实践【刘二大人】之多分类问题

这个公式就能满足两个条件,每个可能输出的概率值都为正,其次所有概率加起来为1。多分类问题,最后用softmax层计算每个分类的值。相加求和,可以满足概率相加为1。zi是每种可能的概率值,分子。确保概率为正,分母把每个。

2025-01-13 15:24:19 340

原创 PyTorch深度学习实践【刘二大人】之加载数据集

只用一个样本会得到比较好的随机性,会帮助跨越鞍点。用全部样本计算速度会大大提升。深度学习中我们会使用mini-batch来均衡性能上时间上的需求。Iteration定义:每次训练使用batch-size的次数,即总样本数/batch-size。在梯度下降中有时用全部的数据,有时只用一个样本也称随机梯度下降。batch-size定义:每次训练时所用的样本数量。epoch定义:所有样本都参与了训练。batch-size为2并且打乱顺序。

2025-01-12 21:32:41 237

原创 PyTorch深度学习实践【刘二大人】之Logistic回归

下图是二分类的损失函数,本质上是交叉熵公式,用途是度量预测分布与真实分布之间的差异,最终预测值越大越好,说明越接近,但loss有负号,所以loss越小越好。下图就是一个经典的手写数字分类问题,判断数字是0到9的哪一个分类,要用回归的方式估算每个类别的概率为多少,最终选择概率最大的值。根据我们数据,(1,0)(2,0)(3,1),我们推断在2.5小时就为0.5,就是图像的交点。前几节课的线性回归输出值为实数,我们要求概率,所以要把输出值映射为0到1的区间,就选取了。

2025-01-08 22:11:40 384

原创 PyTorch深度学习实践【刘二大人】之线性回归

前几节课中,我们都是手动去求导数,在pytorch中主要先构建计算图,梯度什么的会自动求出。另外插一句,本来loss求出也是一个列向量,但因为要求loss是一个标量,所以loss要进行求和,可以选择是否求均值。我们模型为y=w*x+b,w与b为了能与3行1列的矩阵相乘也变为3行1列。则在初始化时x_data与y_data值也是3行1列的矩阵。用pytorch写深度神经网路,主要分为以下四步。在numpy中做加法存在广播机制,维度不同的。

2025-01-07 22:00:17 145

原创 PyTorch深度学习实践【刘二大人】之反向传播

下面是f=x*w具体的反向传播过程,L对z的偏导是上一步传递过来的不用管,L对x和L对w的偏导都是链式法则,带入进行运算,如果x前面还有值就继续向前传递。但在网络比较复杂时候,进行一个个求导运算已经太过于复杂,于是我们考虑能否把网络看成一幅图,在图上传播梯度,最终根据链式法则求出梯度。对于线性模型进行反向传播,求出L对w的偏导后,用梯度下降算法对权重进行更新。下图我们可以发现经过化简,无论多少层,都可以看成wx+b,这说明线性模型具有局限性。在上一节课中,我们知道了要用损失对权重w求导,来更新权重。

2025-01-04 22:22:24 251

原创 Understanding Deep Learning 第二章 Supervised learning

相反,一个非常有表现力的模型可能描述训练数据的统计特性,这些特性是非典型的,并导致不寻常的预测。寻找使损失最小的参数的过程称为模型拟合、训练或学习。和斜率ф1),因此我们可以计算每个值组合的损失,并将损失函数可视化为一个曲面。定义了一个可能的投入产出关系族(所有可能的直线),参数的选择决定了这个族的成员(特定的直线)。更低的损失意味着更好的匹配。线性回归有一个明显的缺点,它只能将输入和输出之间的关系描述为一条直线。章)同样具有表现力,但可以用更少的参数描述复杂的函数,并且在实践中工作得更好。

2025-01-04 16:53:59 747

原创 Understanding Deep Learning第一章Introduction

然而,这些行动以一种不确定的方式改变了系统的状态,对于任何行动的选择,对手玩家可能会做出许多不同的反应。机器人可以在给定的时间内执行有限数量的动作(移动不同的关节),这些动作会改变世界的状态(它的姿势)。中的模型接收包含餐厅评论的文本字符串作为输入,并预测该评论是正面的还是负面的。它可以是离散的或连续的,低维的或高维的,长度恒定的或可变的。为两张真实图像找到这些变量,插值它们的值,然后使用这些中间变量来创建新图像,我们可以生成中间结果,这些中间结果在视觉上是可信的,并且混合了两张原始图像的特征。

2025-01-03 22:17:13 914

原创 PyTorch深度学习实践【刘二大人】之梯度下降算法

梯度下降更新是以整个的所有数据的平均损失,随机梯度下降是从n个数据从里面随机选一个,这是更新公式变为了拿单个样本得损失进行更新。随机梯度下降只用一个样本,而所有样本都具有噪声,这样就引入了随机噪声,这样即使陷入鞍点,随机噪声也可能把我们推动,在训练过程中就有可能跨越鞍点像最优值迈进。梯度下降算法的目的是寻找全局花费的最小值,首先要确定初始点往左还是往右下降,要根据梯度的定义,梯度就是目标函数对权重求导。,α为学习率,一般学习率要取比较小,若学习率较大w移动的过多,就可能错过最小梯度点。

2025-01-02 22:57:42 314

原创 PyTorch深度学习实践【刘二大人】之线性模型

在一般机器学习任务中,先拿一个线性模型看是否有效,本次数据可以轻易看出是属于线性模型,选取y=x*w,此时问题在于权重w取多少,在机器学习中我们都是随机猜一个随机值,然后判断与数据集之间的误差。对于机器学习来说,模型经过训练集的训练,获得新的输入能得到相应预测结果,得到的结果与测试集相对比,进而再调整模型。值得注意的是,损失函数是针对一个样本的,而对于整个的训练集要用下面的公式,先把每个样本损失都加起来,再除以整个个数N。问如果学习4个小时,会得到多少分?​​​在深度学习时,画的表x轴为训练轮数。

2025-01-01 21:18:02 172

原创 PyTorch快速入门教程【小土堆】之完整模型验证套路

【代码】PyTorch快速入门教程【小土堆】之完整模型验证套路。

2024-12-31 16:34:06 584

原创 PyTorch快速入门教程【小土堆】之利用GPU训练

【代码】PyTorch快速入门教程【小土堆】之利用GPU训练。

2024-12-31 16:11:29 443

原创 PyTorch快速入门教程【小土堆】之完整模型训练套路

【代码】PyTorch快速入门教程【小土堆】之完整模型训练套路

2024-12-31 15:42:24 624

原创 PyTorch快速入门教程【小土堆】之网络模型的保存和读取

【代码】PyTorch快速入门教程【小土堆】之网络模型的保存和读取。

2024-12-31 14:45:18 451

原创 PyTorch快速入门教程【小土堆】之优化器

【代码】PyTorch快速入门教程【小土堆】之优化器。

2024-12-30 20:06:24 475

原创 PyTorch快速入门教程【小土堆】之损失函数与反向传播

2. 为我们更新输出提供一定的依据(反向传播)下方代码是loss函数在模型中如何使用。上方代码举例了几种loss函数的使用。1,计算实际输出和目标之间的差距。

2024-12-30 19:51:50 654

原创 PyTorch快速入门教程【小土堆】之Sequential使用和小实战

【代码】PyTorch快速入门教程【小土堆】之Sequential使用和小实战。

2024-12-30 19:11:53 406

原创 PyTorch快速入门教程【小土堆】之全连接层

【代码】PyTorch快速入门教程【小土堆】之全连接层。

2024-12-30 18:52:52 465

原创 PyTorch快速入门教程【小土堆】之非线性激活

非线性变换主要目的是向网络当中引入非线性特征,非线性特征越多才能训练出符合各种曲线,符合更多特征的模型,如果都是直接表现的话泛化能力不好。

2024-12-30 16:50:54 509

原创 PyTorch快速入门教程【小土堆】之池化层

【代码】PyTorch快速入门教程【小土堆】之池化层。

2024-12-30 16:31:41 442

原创 PyTorch快速入门教程【小土堆】之卷积层

【代码】PyTorch快速入门教程【小土堆】之卷积层。

2024-12-30 15:38:48 393

原创 PyTorch快速入门教程【小土堆】之土说卷积操作

跟神经网路相关的工具都放在torch.nn模块里面。

2024-12-30 14:16:04 313

原创 PyTorch快速入门教程【小土堆】之nn.Module的使用

nn为神经网路Neural Network的缩写,本次实现了一个最简单的把输入值加1的模型。

2024-12-30 13:44:11 336

原创 PyTorch快速入门教程【小土堆】之DataLoader的使用

dataset数据集,相当于一副扑克,dataloader数据加载器相当于我们的手,选择摸几张牌,怎么摸牌。

2024-12-29 22:10:38 293

原创 PyTorch快速入门教程【小土堆】之torchvision中的数据集使用

本次选取了CIFAR10数据集作为演示。

2024-12-29 21:23:13 353

原创 PyTorch快速入门教程【小土堆】之Transforms的使用

本文中的transforms指的并不是那个知名的模型,而是Transforms.py所在的一个包,相当于一个工具箱,可以被调用,里面有Resize,PILToTensor等方法,可直接对图片进行操作。

2024-12-29 19:58:12 283

原创 PyTorch快速入门教程【小土堆】之TensorBoard的使用

tensorboard的用法,在左图显示2974步时输入的图像,右图是训练过程中loss的变化。

2024-12-29 19:08:55 188

原创 PyTorch快速入门教程【小土堆】之Dataset类代码

我的配置如下,所选torch版本2.5.0+cu124,cuda版本12.4。

2024-12-29 16:17:11 223

原创 六大基础深度神经网络之RNN

x0结果输出时,不仅会直接输出h0,还有一部分会与x1进行融合从而输出h1,x2时也同理,这样网络就会考虑到时间的前后信息。但如果输入信息很多,到x10000,那么x0的信息还需要考虑吗,有可能就根本不重要,所以就引入了LSTM(长短时记忆网络)C为控制参数决定什么样的信息会被保留什么样的会被遗忘。⊗⊕是门,是一种让信息选择式通过的方法。

2024-12-27 10:46:10 420

原创 六大基础深度神经网络之CNN

进行内积计算,就是对应位置相乘,即3*0+3*1+2*2+0*2+0*2+1*0+3*0+1*1+2*2=12,然后每次把3*3的区域与权值相乘,最终得到绿色的矩阵。W2、 H2表示输出特征图的宽度、长度;下图从一张32*32*3的图像中提取一张5*5*3的小区域,第一步将左上角三乘三的区域。池化目的是减少特征图的信息量,下图为最大池化,选取2*2的过滤器步长为2,选取每个2*2区域内最大的数。常见图像是彩色的就是三通道,上图中的32*32*3中的3也就说明是彩色图像,若为1则是黑白图像。

2024-12-26 18:00:45 417

原创 CUDA和cuDNN安装配置

CUDA(Compute Unified Device Architecture),是显卡厂商NVIDIA推出的运算平台。CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。

2022-11-15 15:43:41 8545 2

原创 卷积神经网络实践-猫狗分类

近年来,深度学习理论和技术都得到了迅速的发展,并且受到了越来越多的研究者的关注,深度学习技术在图像识别领域具有广泛的应用。

2022-10-25 20:05:34 4309 3

原创 共享自行车需求预测学习记录

共享自行车需求预测

2022-08-18 11:11:58 833

原创 L1-019 谁先倒

PTA | 程序设计类实验辅助教学平台两种方法差不多#include <iostream>using namespace std;int main() { int A, B, N, a1, a2, b1, b2; cin >> A >> B >> N; //甲乙酒量 int a = A, b = B; //a和b用来记录A与B何时倒 while (N--) { cin >> a1 >> a2 >>

2022-04-21 21:04:37 224

原创 L1-043 阅览室

PTA | 程序设计类实验辅助教学平台#include <iostream>using namespace std;struct node { int startTime; int st;//0表示未被借出,1表示被借出。} book[1001];int getTime(int hour, int minute) { return hour * 60 + minute;}int main() { int id, hour, minute, days; char.

2022-04-21 19:58:49 394

原创 L1-059 敲笨钟

PTA | 程序设计类实验辅助教学平台一开始我不明白,怎么把一句话分割输入,并且判断下面是先输入在判断,如果逗号前面时候ong并且.前面也是ong那就是押韵的并且根据空格判断第几个单词#include <iostream>using namespace std;typedef long long ll;const int maxn = 1e5 + 10;string s;int main() { int n; cin >> n; getcha..

2022-04-21 17:17:20 401

原创 L1-025 正整数A+B

PTA | 程序设计类实验辅助教学平台按模块写,就不容易写错了#include <iostream>using namespace std;int n1, n2;bool f1 = true, f2 = true, f3 = true, f4 = true;int main() { string a, b; cin >> a; getchar(); getline(cin, b); //b中可能包含空格,所以用getline进行输入 for (int .

2022-04-21 16:46:59 224

原创 L1-020 帅到没朋友

#include <iostream>using namespace std;int a[100000];int main() { int n; cin >> n; int x, id; while(n--) { cin >> x; if (x >= 2) { while(x--) { cin >> id; a[id] = 1; } } else cin >> id; }...

2022-04-21 16:29:07 136

原创 L1-009 N个数求和

PTA | 程序设计类实验辅助教学平台#include <iostream>using namespace std;int gcd(int a, int b) { return a % b == 0 ? b : gcd(b, a % b);}int a[105] , b[105];int main() { int n, i = 0; scanf("%d", &n); scanf("%d/%d", &a[i], &b[i]); int .

2022-04-19 20:49:24 171

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除