Pytorch深度学习
为了更好的学习
w²大大
这个作者很懒,什么都没留下…
展开
-
Pytorch深度学习(九):卷积神经网络跑Minst数据集
卷积神经网络(Minst数据集)一、代码实现(CPU版)二、代码实现(GPU版)用一下例子来表示:一、代码实现(CPU版)import torchfrom torchvision import transformsfrom torchvision import datasetsfrom torch.utils.data import DataLoaderimport torch.nn.functional as Fimport torch.optim as optim#1.准备数据集原创 2020-08-25 14:23:12 · 1296 阅读 · 1 评论 -
Pytorch深度学习(八):用Softmax和CrossEntroyLoss解决多分类问题(Minst数据集)
用Softmax和CrossEntroyLoss解决多分类问题(Minst数据集)一.SoftMax分类器1.函数原型:2.上述例子用Numpy实现:3.用pytorch实现4.设置batch_size为3时做的一个简单分类模型:二、完成MNIST识别手写体数字1.准备数据集2.构建训练模型class3.构造损失函数和优化器4.训练和测试5.运行结果如下:一.SoftMax分类器1.函数原型:这是我们常见的一个神经网络模型。在输出的时候我们常常会遇到多分类问题,这时就需要我们应用Softmax函数来原创 2020-08-24 15:53:43 · 2807 阅读 · 1 评论 -
Pytorch深度学习(七):加载数据集
加载数据集一、概念二、实现代码:一、概念数据集和数据加载器(Dataset and DataLoader)我们在以前讲解的例子中因为我们的数据集比较小,所以我们把所有的数据就直接不做任何处理就进行相关的训练也是可以的,但是如果我们的数据集比较大,就需要对数据集进行相关的操作才能提高我们的效率。如上图,我们可以先对数据进行shuffle(即进行打乱顺序),然后把这些数据加载并且将其分为不同的batch以下是相关概念的解释:二、实现代码:import torchfrom torch.util原创 2020-08-24 11:12:49 · 1894 阅读 · 0 评论 -
Pytorch深度学习(六):多维特征的输入
多维特征的输入一、概念二、完整实现代码:一、概念我们来看看多维输入(Multiple Dimension Input),我们先看看多维Logistic回归模型:假设我们有一个8维的输入,于是就可以改变我们的Logistic回归模型。运用相关矩阵的知识我们便可以分析出Z矩阵的相关维度,并且b矩阵可以运用广播机制来参与相关的运算。下面是对糖尿病病人的病情进行预测,预测未来是否会加重。输入有8个指标,也就是8个维度,输出只有一个维度即是否加重病情。维度的变化其实就是线性代数中矩阵乘法的作用:[m原创 2020-08-21 17:01:23 · 1900 阅读 · 0 评论 -
Pytorch深度学习(五):Logistic 回归(实现二分类)
Logistic回归实现二分类一、概念二、完整代码如下:三、测试模型一、概念从下面的例子来进行,假设只要得到一定分数就可以看作可以通过考试:相当于我们不再预测学习4小时可以得到的成绩,而是判断学习4小时是否可以通过考试。在分类中,模型的输出是输入属于确切类别的概率。我们可以引入sigmond函数:可以进行归一化处理,方便我们可以进行相关的分类任务。Loss Function也发生了上述的变化。我们也可以使用mini-batch二、完整代码如下:import torch#1.准原创 2020-08-21 15:41:05 · 2346 阅读 · 0 评论 -
Pytorch深度学习(四):用Pytorch实现线性回归
用Pytorch实现线性回归一、概念1.准备数据集2.使用Class设计模型3.构建损失函数和优化器的选择4.进行训练的迭代。二、完整代码如下:一、概念上图主要介绍了使用Pytorch解决问题的四个步骤:1.准备数据集#1.准备数据集x_data = torch.Tensor([[1.0],[2.0],[3.0]])y_data = torch.Tensor([[2.0],[4.0],[6.0]])2.使用Class设计模型#2.使用Class设计模型class LinearMod原创 2020-08-21 11:45:23 · 3166 阅读 · 3 评论 -
Pytorch深度学习(三):反向传播
反向传播一、概念二、代码如下:一、概念Tensor:data 和 gradw.dataw.grad.data:数值计算,不构建计算图。w.grad.item():取出数值。w.grad.data.zero():清零。训练的目的,是为了让损失更小,即在训练过程中不断更新ω的值,以使得loss最小。所以我们在梯度下降的过程中,就是观察,并使其取向最小的趋势训练。根据上一节我们可以得到一般简单的线性更新计算的解析式为:Update为:其中,α称为学习率。(采用贪心策略)对应的Loss F原创 2020-08-20 16:30:34 · 21378 阅读 · 5 评论 -
Pytorch深度学习(二):梯度下降算法和随机梯度下降
梯度下降算法和随机梯度下降一、梯度下降算法1.概念:2.代码如下:二、随机梯度下降1.演变过程2.代码如下一、梯度下降算法1.概念:梯度下降法简单来说就是一种寻找目标函数最小化的方法。在神经网络中,局部最优点比较小,但是会存在很多的鞍点,即g=0,此时就很难再进行迭代。因此,鞍点是深度学习当中最需要解决的难点。计算梯度:最后获得更新后的w,其中α是学习率2.代码如下:import numpy as npimport matplotlib.pyplot as pltx_data =原创 2020-08-20 12:16:18 · 677 阅读 · 0 评论 -
Pytorch深度学习(一):线性模型
线性模型一、线性模型概念二、实现代码如下:三、运行结果一、线性模型概念Linear Model : y=x*ω机器会随机生成一个a random guess,ω = random value找一个评估模型LOSS,用loss来评价预测模型与已知模型之间的差别。试图找mean loss(平均损失值)趋于0MSE(Mean Square Error)平均平方误差:cost(代表所有样本的平均损失误差)二、实现代码如下:import numpy as npimport matplotl原创 2020-08-20 11:32:44 · 430 阅读 · 0 评论