pytorch深度学习
记录学习过程
乾巽
不负韶华,只争朝夕
展开
-
python可视化各种lr_scheduler(学习率)
pytorch.optim官方文档1.torch.optim.lr_scheduler.CosineAnnealingLR(optimizer, T_max, eta_min=0, last_epoch=-1, verbose=False)实现代码:import torchimport torch.nn as nnimport itertoolsimport matplotlib.pyplot as pltinitial_lr = 0.1epochs = 100# 定义一个简单的模型原创 2020-09-06 20:29:43 · 3625 阅读 · 0 评论 -
如何快速传输大文件到Paperspace(免费GPU服务器)
最近需要好的GPU去训练模型,了解到了Paperspace可以提供免费的GPU服务(需外网)。在传输数据集的过程中发现文件太大,上传需要非常长的时间。参考[如何将大文件数据集传输到海外服务器用于机器学习训练]最终能够节省大量的上传时间。步骤1:1.下载安装 7-zip安装好后,点击所要上传的文件夹,右键会显示7-zip,选择解压模式为tar(因为Paperspace上需要用linux进行解压删除等),如下图所示:步骤2:使用微软的Onedrive:Onedrive是跟着word,ppt原创 2020-08-31 19:05:41 · 1690 阅读 · 5 评论 -
《动手学深度学习》之微调(热狗识别)
参考微调(fine tuning)微调:原创 2020-02-09 13:17:29 · 1532 阅读 · 2 评论 -
《动手学深度学习》之图像增广(二)模型训练
参考图像增广此次模型训练用到了CIFAR-10数据集CIFAR-10数据集中物体的颜色和大小区别显著。下面展示了CIFAR-10数据集中前32张训练图像。import timeimport torchfrom torch import nn, optimfrom torch.utils.data import Dataset, DataLoaderimport torchvisio...原创 2020-02-08 22:36:09 · 278 阅读 · 0 评论 -
《动手学深度学习》之图像增广(一)
参考图像增广定义:图像增广(image augmentation)技术通过对训练图像做一系列随机改变,来产生相似但又不同的训练样本,从而扩大训练数据集的规模。图像增广的另一种解释是,随机改变训练样本可以降低模型对某些属性的依赖,从而提高模型的泛化能力常见增广方式有:1.对图像进行不同方式的裁剪,使感兴趣的物体出现在不同位置,从而减轻模型对物体出现位置的依赖性。2.调整亮度、色彩等因素来...原创 2020-02-08 22:25:39 · 420 阅读 · 0 评论 -
《动手学深度学习》之动量法
q: 为什么要用动量法a: 梯度下降存在以下问题:一个输入和输出分别为二维向量x=[x1,x2]T和标量的目标函数f(x)=0.1x12 + 2x22基于这个目标函数的梯度下降,并演示使用学习率为0.40.4时自变量的迭代轨迹。import syssys.path.append("d2lzh_pytorch.py") import d2lzh_pytorch as d2limpo...原创 2020-02-07 18:09:12 · 655 阅读 · 0 评论 -
《动手学深度学习》之小批量随机梯度下降
参考小批量随机梯度下降在每轮迭代中随机均匀采样多个样本来组成一个小批量,然后使用这个小批量来计算梯度原创 2020-02-07 16:42:21 · 294 阅读 · 0 评论 -
《动手学深度学习》之梯度下降和随机梯度下降
参考梯度下降和随机梯度下降以f(x) = x2为例import matplotlib.pyplot as pltimport numpy as npimport torchimport mathdef gd(eta,iter): x = 10 results = [] for i in range(iter): x -= eta * 2 * ...原创 2020-02-07 12:45:59 · 158 阅读 · 0 评论 -
《动手学深度学习》之批量归一化
参考批量归一化转载 2020-02-06 18:40:01 · 133 阅读 · 0 评论 -
《动手学深度学习》之深度卷积神经网络(AlexNet)
参考深度卷积神经网络(AlexNet)import timeimport torchfrom torch import nn, optimimport torchvisionimport syssys.path.append("..")import d2lzh_pytorch as d2ldevice = torch.device('cuda' if torch.cuda....原创 2020-02-06 11:37:48 · 353 阅读 · 0 评论 -
《动手学深度学习》之卷积神经网络 填充和步幅
参考填充和步幅转载 2020-02-05 21:35:37 · 287 阅读 · 0 评论 -
《动手学深度学习》之读取和储存模型
参考读取和储存import torchfrom torch import nn# 读写Tensor-------------------------------------------x = torch.ones(3)torch.save(x, 'x.pt')x2 = torch.load('x.pt')print(x2)y = torch.zeros(4)torch.sav...原创 2020-02-05 14:40:52 · 213 阅读 · 0 评论 -
《动手学深度学习》之自定义层
参考自定义层import torchfrom torch import nn#含模型参数的自定义层# ParameterList接收一个Parameter实例的列表作为输入然后得到一个参数列表,# 使用的时候可以用索引来访问某个参数,# 另外也可以使用append和extend在列表后面新增参数。class MyListDense(nn.Module): def __ini...原创 2020-02-05 12:40:59 · 352 阅读 · 0 评论 -
《动手学深度学习》之实战Kaggle比赛:房价预测
参考实战Kaggle比赛:房价预测import torchimport torch.nn as nnimport numpy as npimport pandas as pdimport syssys.path.append("..")import d2lzh_pytorch as d2ltorch.set_default_tensor_type(torch.FloatTens...原创 2020-02-05 00:05:13 · 1062 阅读 · 0 评论 -
《动手学深度学习》之正向传播、反向传播和计算图
参考正向传播、反向传播和计算图转载 2020-02-04 21:43:26 · 323 阅读 · 0 评论 -
《动手学深度学习》之丢弃法(dropout)
参考丢弃法我们可以通过使用丢弃法应对过拟合。丢弃法只在训练模型时使用在PyTorch中,我们只需要在全连接层后添加Dropout层并指定丢弃概率。在训练模型时,Dropout层将以指定的丢弃概率随机丢弃上一层的输出元素;在测试模型时(即model.eval()后),Dropout层并不发挥作用。import torchimport torch.nn as nnimport sy...原创 2020-02-04 18:31:04 · 575 阅读 · 0 评论 -
《动手学深度学习》之权重衰减
参考权重衰减import torchimport torch.nn as nnimport numpy as npimport syssys.path.append("C:\\Users\\吴\\Desktop\\学习快速通道\\深度学习\\动手学深度学习\\d2lzh_pytorch.py")import d2lzh_pytorch as d2ln_train, n_test...原创 2020-02-04 17:43:09 · 210 阅读 · 0 评论 -
《动手学深度学习》之多层感知机
先看看多层感知机的定义多层感知机和softmax回归唯一的不同在于我们多加了一个全连接层作为隐藏层。它的隐藏单元个数为256,并使用ReLU函数作为激活函数。import torchfrom torch import nnfrom torch.nn import initimport numpy as npimport syssys.path.append("..")impo...原创 2020-02-02 11:58:39 · 236 阅读 · 0 评论 -
《动手学深度学习》之softmax回归(三)代码简洁实现
softmax回归的输出层是一个全连接层,所以我们用一个线性模块就可以了。因为前面我们数据返回的每个batch样本x的形状为(batch_size, 1, 28, 28),所以我们要先用view()将x的形状转换成(batch_size, 784)才送入全连接层。import torchfrom torch import nnfrom torch.nn import initimp...原创 2020-02-02 11:40:42 · 427 阅读 · 0 评论 -
torch.gather函数的简单理解
先来看看官方的定义import torch# 先看看out 和 index 都是二维数组的情况# out[i][j] = tensor[index[i][j]][j] # dim=0# out[i][j] = tensor[[i][index[i][j]] # dim=1t = torch.Tensor([[1,2],[3,4]])# t = 1 2# 3 4in...原创 2020-02-01 23:12:20 · 1783 阅读 · 0 评论 -
《动手学深度学习》之softmax回归(二)(Fashion-MNIST)
本节展示如何获取Fashion-MNIST数据集以及将图片展示出来参考3.5 图像分类数据集(Fashion-MNIST)代码如下# -*- coding: utf-8 -*-"""Fashion-MNIST"""import torchimport torchvisionimport torchvision.transforms as transformsimport ma...原创 2020-01-31 12:14:36 · 442 阅读 · 0 评论 -
《动手学深度学习》之softmax回归(一)
详细见softmax回归和线性回归不同,softmax回归的输出单元从一个变成了多个让我们考虑一个简单的图像分类问题,其输入图像的高和宽均为2像素,且色彩为灰度。这样每个像素值都可以用一个标量表示。我们将图像中的4像素分别记为x1,x2,x3,x4x假设训练数据集中图像的真实标签为狗、猫或鸡(假设可以用4像素表示出这3种动物),这些标签分别对应离散值y1,y2,y3y宅在...原创 2020-01-31 11:24:20 · 271 阅读 · 0 评论 -
《动手学深度学习》之线性回归(二)
import torchfrom IPython import displayfrom matplotlib import pyplot as pltimport numpy as npimport randomimport torch.utils.data as Dataimport torch.nn as nnimport torch.optim as optimfrom to...原创 2020-01-30 22:54:11 · 86 阅读 · 0 评论 -
《动手学深度学习》之线性回归(一)
#写在前面 最近寒假懈怠不已,通过每天更新博客督促自己学习参考<动手学深度学习>3.1 线性回归(3) 优化算法当模型和损失函数形式较为简单时,上面的误差最小化问题的解可以直接用公式表达出来。这类解叫作解析解(analytical solution)。本节使用的线性回归和平方误差刚好属于这个范畴。然而,大多数深度学习模型并没有解析解,只能通过优化算法有限次迭代模型参...原创 2020-01-30 22:02:18 · 174 阅读 · 0 评论 -
新版TensorDataset 和 downloader中num_workers 的解决方案
Pytorch学习小问题一:#旧版torch_dataset = Data.TensorDataset(data_tensor=x, target_tensor=y)#会报错,init() got an unexpected keyword argument ‘data_tensor’#新版torch_dataset = Data.TensorDataset(x, y)小问题二:对...原创 2019-11-07 21:32:45 · 737 阅读 · 0 评论