随笔分类 - 硕士课题-动手学深度学习
摘要:一、前言 1、多层感知机在输出层和输入层之间增加了一个或全连接的隐藏层,并通过激活函数转换隐藏层的输出。 2、常用的激活函数包括ReLU函数、sigmoid函数和tanh函数 二、隐藏层(hidden layer) 1、多层感知机在单层神经网络的基础上引入了一到多个隐藏层。隐藏层位于输入层到输出层之
阅读全文
摘要:一、前言 1、通过深度学习框架的高级API能更方便地实现分类模型。 2、使用Fashion-MNIST数据集,并保持批量大小为256。 #通过pytorch中nn的模型来实现softmax回归 import torch from torch import nn from d2l import tor
阅读全文
摘要:一、创建数据集 从Fashion-MNIST数据集中引入创建数据,并设置数据迭代器的批量大小为256 import torch from IPython import display from d2l import torch as d2l #batch_size=256,表明随机读取256张图片
阅读全文
摘要:一、前言 1、前广泛使用的图像分类数据集之一是 MNIST 数据集,虽然它是很不错的基准数据集,但按今天的标准,即使是简单的模型也能达到95%以上的分类准确率,因此不适合区分强模型和弱模型。 2、为了提高难度,我们将在接下来的章节中讨论在2017年发布的性质相似但相对复杂的Fashion-MNIST
阅读全文
摘要:一、前言 1、softmax回归不是回归问题,而是分类问题 2、分类问题:对离散值的预测。 3、分类问题通常有多个输出,输出 i 预测为第 i 类的置信度 二、网络结构 1、为了估计所有可能类别的条件概率,我们需要一个有多个输出的模型,每个类别对应一个输出 2、在我们的例子中,由于我们有4个特征和3
阅读全文
摘要:前言: 简洁实现:使用深度学习开源框架达到目的 一、生成数据集 #线性回归的简洁实现就是使用pytorch内置的一些模块来实现 import numpy as np import torch from torch.utils import data #从torch.utils中导入关于data处理的
阅读全文
摘要:一、前言 我们将从零开始实现整个方法,包括数据流水线、模型、损失函数和小批量随机梯度下降优化器。虽然现代的深度学习框架几乎可以自动化地进行所有这些工作,但从零开始实现可以确保你真正知道自己在做什么。 例子中我们先用自己设置好的w和b去生成数据集,再用建立的模型去跑数据生成w和b。比较,熟悉流程。 二
阅读全文
摘要:一、回归 回归:是指一类为一个或多个自变量与因变量之间关系建模的方法,通常用来表示输入与输出的关系(连续值) 二、线性回归 自变量x与因变量 y 之间的关系是线性的,即y可以表示为 x 中元素的加权和,这里通常允许包含观测值的一些噪声 三、线性模型 式子中:w 称为权重;b为偏置 1、权重决定了每个
阅读全文
摘要:一、基本概率论——模拟骰子 1、导入必要包 # matplotlib inline jupyter常用于生成画布 %matplotlib inline import torch from torch.distributions import multinomial from d2l import t
阅读全文
摘要:一、点积 概念:相同位置的按元素乘积的和,可以通过dot()函数调用 y = torch.ones(4, dtype=torch.float32) print(y) print(x) # 点积:相同位置的按元素乘积的和 print(torch.dot(x, y)) # 可以通过执行元素乘法,然后进行
阅读全文
摘要:给定任何相同形状的任意两个张量,任何按元素二元运算的结果都将是相同形状的张量 A = torch.arange(20, dtype=torch.float32).reshape(5, 4) B = A.clone() # 通过分配新内存,将A的一个副本分配给B A, A + B #输出结果 (ten
阅读全文
摘要:一、标量:由一个元素的张量表示 1、标量变量由普通小写字母表示(例如:x y 和 z) 2、 R 表示所有(连续)实数 标量的空间 3、表达式 x∈R 是表示x是一个实值标量的正式形式 4、x,y∈{0,1} 来表明 x 和 y 是值只能为 0 或 1的数字 import torch x = tor
阅读全文
摘要:一、读取数据集 1、将数据集按行写入到csv文件中 import os # os.path.join():路径拼接函数,本例中会生成如下路径 ../data # os.makedirs():用来创建多层目录(多层就是深度),exist_ok=True是在目录已存在的情况下不报错,默认为False,目
阅读全文
摘要:print(type(X)) A = X.numpy() print(type(A)) B = torch.tensor(A) print(type(B)) print(id(X)) print(id(A)) print(id(B)) #输出结果 <class 'torch.Tensor'> <cl
阅读全文
摘要:一、 运行一些操作可能会导致为新的结果分配内存。例如,如果我们用 Y = X + Y,我们将取消引用 Y 指向的张量,而是指向新分配的内存处的张量。 开辟新的内存空间有如下问题: 1、在机器学习中,我们可能有数百兆的参数,并且在一秒内多次更新所有参数。通常情况下,我们希望原地执行这些更新。 2、我们
阅读全文
摘要:1、与python数组一样,张量中的元素可以通过索引访问 2、第一个元素的索引为0 3、可以指定范围以包含第一个元素和最后一个之前的元素 4、可以通过负索引根据元素到列表尾部的相对位置访问元素 即:我们可以用 [-1] 选择最后一个元素,可以用 [1:3] 选择第二个和第三个元素 print(X)
阅读全文
摘要:在之前运算中,都是在相同形状的两个张量上执行按元素操作。在某些情况下,我们仍然可以通过调用 广播机制 (broadcasting mechanism) 来执行按元素操作 1、通过适当复制元素来扩展一个或两个数组,以便在转换之后,两个张量具有相同的形状 2、对生成的数组执行按元素操作。 a = tor
阅读全文
摘要:一、张量 概念:张量表示一个数值组成的数组,这个数组可能有多个维度 具有一个轴的张量对应数学上的向量(vector) 具有两个轴的张量对应数学上的矩阵(matrix) 二、数据操作 1、使用arange创建一个行向量。创建的行向量包含从0开始的前12个整数,默认创建为浮点数。张量中的每个值都称为张量
阅读全文
摘要:监督学习(supervised learning):我们给算法一个数据集,其中包含了正确答案。 回归问题(regression problem):预测连续值输出 分类问题(classification problem):我们设法预测一个离散值的输出(0或者1),但是在实际例子中,也可能会有两个以上的
阅读全文