![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
pytorch
文章平均质量分 66
Lee森
多学多记
展开
-
PyTorch基础(六)迁移学习
在实际工程中,基本没有人会从零开始(随机初始化)训练一个完整的卷积网络,因为相对于网络,很难得到一个足够大的数据集(网络很深,需要足够大数据集)。通常的做法是在一个很大的数据集上进行预训练得到卷积网络ConvNet,然后将这个ConvNet的参数作为目标任务的初始化参数或者固定这些参数。迁移学习的两个使用场景微调Convnet:使用预训练的网络(如在imagenet 1000上训练而来的网络)来初始化自己的网络,而不是随机初始化。其他的训练步骤不变。 将Convnet看成固定的特征提取器:首先固.原创 2021-02-08 00:21:44 · 1411 阅读 · 3 评论 -
Pytorch基础(五)nn模块及optimizer
目录PyTorch之nn模块PyTorch之optim模块自定义nn模块控制流和权重共享PyTorch之nn模块计算图和autograd是十分强大的工具,可以定义复杂的操作并自动求导;然而对于大规模的网络,autograd太过于底层。在构建神经网络是,我们经常考虑将计算安排成层,其中一些具有可学习的参数,他们将在隵过程中进行优化。Tensorflow里面,有类似于Keras,TensorFlow-Slim和FLearn这些封装了底层计算图的高层抽象接口,这使得构建网络是否方便。原创 2021-02-07 13:48:20 · 1562 阅读 · 0 评论 -
Pytorch基础(四)正向传播与反向传播
在AI学习笔记(八)深度学习与神经网络、推理与训练中,介绍了神经网络的正向传播及反向传播,此处不再赘述,本文的重点在于如何用pytorch工具实现正向传播与反向传播的过程。Pytorch的有两个核心特征,其一是能创建如Numpy形式的张量,但不同在于用pytorch创建的可以在GPU上运行,在速度上占优势;其二是自动微分工具。本文将使用带有激活函数ReLU的全连接网络作为示例,设置该网络有一个单一的隐藏层,并将使用梯度下降训练,通过最小化网络输出和真实结果的欧几里得距离,来拟合随机生成的数据。Num原创 2021-02-05 22:39:20 · 2351 阅读 · 1 评论 -
Pytorch基础(三)数据集加载及预处理
python提供了许多工具简化数据加载,使代码更具可读性。经常用到的包有scikit-image、pandas等,本文通过相关包进行数据加载和预处理相关简要介绍。从此处(提取码:ilqy)下载数据集,数据存于"data/faces/"的目录中。这个数据集实际上是imagenet数据集标注为face的图片当中在dlib面部检测(dlib's pose estimation)表现良好的图片。下面以该数据集为例,对数据加载即预处理进行简要介绍。下载数据集及显示样本下面为下载数据集及显示其中某一样本的相原创 2021-02-04 01:12:36 · 2090 阅读 · 4 评论 -
Pytorch基础(二) 初始自动微分
torch.tensor是包的核心类,若将其属性.requires_grad设置为True,则会开始跟踪tensor的所有操作,完成计算后,可以调用.backward()来自动计算所有梯度。该张量的梯度将累积到.grad属性中。如果需要停止tensor历史记录的跟踪,可以调用.detach(),它将其余计算历史记录分离,并防止将来的计算被跟踪。要停止跟踪历史记录(和使用内存),可以将代码块使用with torch.no_grad()包装起来,在评估模型时,这特别有用,因为模型在训练阶段具有requires原创 2021-01-30 16:37:02 · 313 阅读 · 0 评论 -
Pytorch基础(一) 初始tensor
本文主要包括Pytorch的基本操作#!/usr/bin/env torch# -*- coding:utf-8 -*-# @Time : 2021/1/30, 12:07# @Author: Lee# @File : base_process.pyfrom __future__ import print_functionimport torchx1 = torch.empty(5, 3) # 生成一个5行3列的矩阵,不初始化print('torch.empty(5, 3):原创 2021-01-30 15:15:58 · 611 阅读 · 0 评论