自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

张贤的博客

记录学习的知识,分享思考

  • 博客(43)
  • 资源 (1)
  • 收藏
  • 关注

原创 PyTorch 实现 Skip-gram

代码实现:https://github.com/zhangxiann/Skip-gram这篇文章来说下如何使用 PyTorch 实现 Skip-gram,文中会出现一些数学公式。CBOW 和 Skip-gram 是两种训练得到词向量的方法。其中 CBOW 是从上下文字词推测目标字词,而 Skip-gram 则是从目标字词推测上下文的字词。在大型数据集上,CBOW 比 Skip-gram 效果好;但是在小的数据集上,Skip-gram 比 CBOW 效果好。本文使用 PyTorch 来实现 Skip-.

2020-11-06 14:03:25 2116 1

原创 [PyTorch 学习笔记] 汇总 - 完结撒花

PyTorch 学习笔记这篇文章是我学习 PyTorch 过程中所记录的学习笔记汇总,包括 25 篇文章,是我学习深度之眼 PyTorch 框架版课程期间所记录的内容。课程地址:https://ai.deepshare.net/detail/p_5df0ad9a09d37_qYqVmt85/6。学习笔记的结构遵循课程的顺序,共分为 8 周,循序渐进,力求通俗易懂。代码配套代码:https://github.com/zhangxiann/PyTorch_Practice所有代码均在 PyCharm

2020-10-17 09:58:49 1048 2

原创 图解 BERT

本文翻译自:http://jalammar.github.io/illustrated-bert/。通俗易懂,非常适合刚刚开始了解 Bert 的同学。BERT 来源于 Transformer,如果你不知道 Transformer 是什么,你可以查看 图解 Transformer。2018 年是机器学习模型处理文本(或者更准确地说,自然语言处理或 NLP)的转折点。我们对这些方面的理解正在迅速发展:如何最好地表示单词和句子,从而最好地捕捉基本语义和关系?此外,NLP 社区已经发布了非常强大的组件,你.

2020-10-17 09:57:38 758

原创 图解 Attention

本文翻译自 https://jalammar.github.io/visualizing-neural-machine-translation-mechanics-of-seq2seq-models-with-attention/序列到序列(seq2seq)模型是一种深度学习模型,在很多任务上都取得了成功,如:机器翻译、文本摘要、图像、图像理解(image captioning)。谷歌翻译在 2016 年年末开始使用这种模型。有 2 篇开创性的论文(Sutskever et al., 2014, Ch.

2020-10-13 10:21:07 345 2

原创 [PyTorch 学习笔记] 8.4 手动实现 RNN

本章代码:https://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson8/rnn_demo.py这篇文章主要介绍了循环神经网络(Recurrent Neural Network),简称 RNN。RNN 常用于处理不定长输入,常用于 NLP 以及时间序列的任务,这种数据一半具有前后关系。RNN 网络结构如下:上图的数据说明如下:xtx_{t}xt​:时刻 t 的输入,shape=(1,57)shape=(1,57)shap.

2020-10-09 14:49:57 1182 2

原创 [PyTorch 学习笔记] 8.2 目标检测简介

本章代码:https://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson8/detection_demo.pyhttps://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson8/fasterrcnn_demo.py这篇文章主要介绍了目标检测。目标检测是判断目标在图像中的位置,有两个要素:分类:分类向量 P0,P1,P2...P_{0}, P_{1}, P_.

2020-09-26 08:37:44 495

原创 [PyTorch 学习笔记] 8.3 GAN(生成对抗网络)简介

本章代码:https://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson8/gan_inference.pyhttps://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson8/gan_demo.py这篇文章主要介绍了生成对抗网络(Generative Adversarial Network),简称 GAN。GAN 可以看作是一种可以生成特定分布数据的模.

2020-09-23 08:40:59 377

原创 [PyTorch 学习笔记] 8.1 图像分类简述与 ResNet 源码分析

本章代码:https://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson8/resnet_inference.py这篇文章主要介绍了 图像分类的 inference,其中会着重介绍 ResNet。模型概览在torchvision.model中,有很多封装好的模型。可以分类 3 类:经典网络alexnetvggresnetinceptiondensenetgooglenet轻量化网络squeezene.

2020-09-19 11:35:55 476

原创 [PyTorch 学习笔记] 7.3 使用 GPU 训练模型

本章代码:https://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson7/cuda_use.pyhttps://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson7/multi_gpu.py这篇文章主要介绍了 GPU 的使用。在数据运算时,两个数据进行运算,那么它们必须同时存放在同一个设备,要么同时是 CPU,要么同时是 GPU。而且数据和模型都要在同一个设备.

2020-09-19 11:17:09 783

原创 [PyTorch 学习笔记] 7.2 模型 Finetune

本章代码:https://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson7/finetune_resnet18.py这篇文章主要介绍了模型的 Finetune。迁移学习:把在 source domain 任务上的学习到的模型应用到 target domain 的任务。Finetune 就是一种迁移学习的方法。比如做人脸识别,可以把 ImageNet 看作 source domain,人脸数据集看作 target domain。通常.

2020-09-15 16:32:13 392

原创 [PyTorch 学习笔记] 7.1 模型保存与加载

本章代码:https://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson7/model_save.pyhttps://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson7/model_load.pyhttps://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson7/checkpoint_resume.p.

2020-09-15 16:27:03 362

原创 [PyTorch 学习笔记] 6.2 Normalization

本章代码:https://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson6/bn_and_initialize.pyhttps://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson6/bn_in_123_dim.pyhttps://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson6/normalliz.

2020-09-10 23:03:02 267

原创 [PyTorch 学习笔记] 6.1 weight decay 和 dropout

本章代码:https://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson6/L2_regularization.pyhttps://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson6/dropout_layer.pyhttps://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson6/dropout_r.

2020-09-08 15:32:41 544

原创 PyTorch ResNet 使用与源码解析

本章代码:https://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson8/resnet_inference.py这篇文章首先会简单介绍一下 PyTorch 中提供的图像分类的网络,然后重点介绍 ResNet 的使用,以及 ResNet 的源码。模型概览在torchvision.model中,有很多封装好的模型。可以分类 3 类:经典网络alexnetvggresnetinceptiondensenetgoo.

2020-09-08 15:28:24 915

原创 [PyTorch 学习笔记] 5.2 Hook 函数与 CAM 算法

本章代码:https://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson5/hook_fmap_vis.pyhttps://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson5/hook_methods.pyhttps://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson5/weight_fmap_vi.

2020-09-07 15:24:36 352

原创 阿里天池 NLP 入门赛 Bert 方案 -3 Bert 预训练与分类

前言这篇文章用于记录阿里天池 NLP 入门赛,详细讲解了整个数据处理流程,以及如何从零构建一个模型,适合新手入门。赛题以新闻数据为赛题数据,数据集报名后可见并可下载。赛题数据为新闻文本,并按照字符级别进行匿名处理。整合划分出 14 个候选分类类别:财经、彩票、房产、股票、家居、教育、科技、社会、时尚、时政、体育、星座、游戏、娱乐的文本数据。实质上是一个 14 分类问题。赛题数据由以下几个部分构成:训练集 20w 条样本,测试集 A 包括 5w 条样本,测试集 B 包括 5w 条样本。比赛地址:htt

2020-09-06 09:35:52 1183

原创 阿里天池 NLP 入门赛 Bert 方案 -2 Bert 源码讲解

前言这篇文章用于记录阿里天池 NLP 入门赛,详细讲解了整个数据处理流程,以及如何从零构建一个模型,适合新手入门。赛题以新闻数据为赛题数据,数据集报名后可见并可下载。赛题数据为新闻文本,并按照字符级别进行匿名处理。整合划分出 14 个候选分类类别:财经、彩票、房产、股票、家居、教育、科技、社会、时尚、时政、体育、星座、游戏、娱乐的文本数据。实质上是一个 14 分类问题。赛题数据由以下几个部分构成:训练集 20w 条样本,测试集 A 包括 5w 条样本,测试集 B 包括 5w 条样本。比赛地址:htt

2020-09-06 09:31:58 1078

原创 阿里天池 NLP 入门赛 Bert 方案 -1 数据预处理

前言这篇文章用于记录阿里天池 NLP 入门赛,详细讲解了整个数据处理流程,以及如何从零构建一个模型,适合新手入门。赛题以新闻数据为赛题数据,数据集报名后可见并可下载。赛题数据为新闻文本,并按照字符级别进行匿名处理。整合划分出 14 个候选分类类别:财经、彩票、房产、股票、家居、教育、科技、社会、时尚、时政、体育、星座、游戏、娱乐的文本数据。实质上是一个 14 分类问题。赛题数据由以下几个部分构成:训练集 20w 条样本,测试集 A 包括 5w 条样本,测试集 B 包括 5w 条样本。比赛地址:htt

2020-09-06 09:25:31 1487

原创 [PyTorch 学习笔记] 5.1 TensorBoard 介绍

本章代码:https://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson5/tensorboard_methods.pyhttps://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson5/tensorboard_methods_2.pyhttps://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson5.

2020-09-05 09:15:13 533

原创 [PyTorch 学习笔记] 4.3 优化器

本章代码:https://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson4/optimizer_methods.pyhttps://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson4/momentum.py这篇文章主要介绍了 PyTorch 中的优化器,包括 3 个部分:优化器的概念、optimizer 的属性、optimizer 的方法。优化器的概念PyT.

2020-09-03 11:25:50 472

原创 [PyTorch 学习笔记] 4.2 损失函数

本章代码:https://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson4/loss_function_1.pyhttps://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson4/loss_function_1.py这篇文章主要介绍了损失函数的概念,以及 PyTorch 中提供的常用损失函数。损失函数损失函数是衡量模型输出与真实标签之间的差异。我们还经常听到.

2020-09-02 19:06:18 587

原创 [PyTorch 学习笔记] 4.1 权值初始化

本章代码:https://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson4/grad_vanish_explod.py在搭建好网络模型之后,一个重要的步骤就是对网络模型中的权值进行初始化。适当的权值初始化可以加快模型的收敛,而不恰当的权值初始化可能引发梯度消失或者梯度爆炸,最终导致模型无法收敛。下面分 3 部分介绍。第一部分介绍不恰当的权值初始化是如何引发梯度消失与梯度爆炸的,第二部分介绍常用的 Xavier 方法与 Kaiming.

2020-09-01 09:37:38 312

原创 [PyTorch 学习笔记] 3.3 池化层、线性层和激活函数层

本章代码:https://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson3/nn_layers_others.py这篇文章主要介绍了 PyTorch 中的池化层、线性层和激活函数层。池化层池化的作用则体现在降采样:保留显著特征、降低特征维度,增大 kernel 的感受野。 另外一点值得注意:pooling 也可以提供一些旋转不变性。 池化层可对提取到的特征信息进行降维,一方面使特征图变小,简化网络计算复杂度并在一定程度上避免过拟合.

2020-08-31 10:20:06 977

原创 [PyTorch 学习笔记] 3.2 卷积层

本章代码:https://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson3/nn_layers_convolution.py这篇文章主要介绍了 PyTorch 中常用的卷积层,包括 3 个部分。1D/2D/3D 卷积卷积有一维卷积、二维卷积、三维卷积。一般情况下,卷积核在几个维度上滑动,就是几维卷积。比如在图片上的卷积就是二维卷积。一维卷积二维卷积三维卷积二维卷积:nn.Conv2d()nn.Conv2d(sel.

2020-08-30 09:19:51 723

原创 [PyTorch 学习笔记] 3.1 模型创建步骤与 nn.Module

本章代码:https://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson3/module_containers.py这篇文章来看下 PyTorch 中网络模型的创建步骤。网络模型的内容如下,包括模型创建和权值初始化,这些内容都在nn.Module中有实现。网络模型的创建步骤创建模型有 2 个要素:构建子模块和拼接子模块。如 LeNet 里包含很多卷积层、池化层、全连接层,当我们构建好所有的子模块之后,按照一定的顺序拼接起来。.

2020-08-28 19:35:52 679 2

原创 [PyTorch 学习笔记] 2.3 二十二种 transforms 图片数据预处理方法

本章代码:https://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson2/transforms/这篇主要分为几个部分介绍 transforms:裁剪旋转和翻转图像变换transforms 方法操作自定义 transforms 方法最后是数据增强的实战:对人民币二分类实验进行数增强。由于图片经过 transform 操作之后是 tensor,像素值在 0~1 之间,并且标准差和方差不是正常图片的。所以定义了tran.

2020-08-27 13:31:23 2678 1

原创 [PyTorch 学习笔记] 2.2 图片预处理 transforms 模块机制

PyTorch 的数据增强我们在安装PyTorch时,还安装了torchvision,这是一个计算机视觉工具包。有 3 个主要的模块:torchvision.transforms: 里面包括常用的图像预处理方法torchvision.datasets: 里面包括常用数据集如 mnist、CIFAR-10、Image-Net 等torchvision.models: 里面包括常用的预训练好的模型,如 AlexNet、VGG、ResNet、GoogleNet 等深度学习模型是由数据驱动的,数据的数

2020-08-27 13:20:24 1346

原创 [PyTorch 学习笔记] 2.1 DataLoader 与 DataSet

本章代码:https://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson2/rmb_classification/人民币 二分类实现 1 元人民币和 100 元人民币的图片二分类。前面讲过 PyTorch 的五大模块:数据、模型、损失函数、优化器和迭代训练。数据模块又可以细分为 4 个部分:数据收集:样本和标签。数据划分:训练集、验证集和测试集数据读取:对应于PyTorch 的 DataLoader。其中 DataLoad.

2020-08-25 16:50:22 867

原创 图解 Transformer

本文翻译自 : http://jalammar.github.io/illustrated-transformer/。是我看过的把 Transformer 讲解得最好的文章:这篇文章从输入开始,一步一步演示了数据在 Transformer 中的流动过程。由于看过一些中文翻译的文章,感觉不够好,所以我自己翻译了一个版本,在一些难以直译的地方,我加入了一些原文没有的文字说明,来更好地解释概念。另外,我添加了一些简单的代码,实现了一个基本的 self-attention 以及 multi-head attent.

2020-08-25 12:59:44 594

原创 [PyTorch 学习笔记] 1.5 autograd 与逻辑回归

本章代码:https://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson1/autograd.pyhttps://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson1/logistic-regression.py自动求导 (autograd)在深度学习中,权值的更新是依赖于梯度的计算,因此梯度的计算是至关重要的。在 PyTorch 中,只需要搭建好前向计算图,然.

2020-08-21 09:02:35 321

原创 [PyTorch 学习笔记] 1.4 静态图与动态图机制

本章代码:https://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson1/computational_graph.py计算图深度学习就是对张量进行一系列的操作,随着操作种类和数量的增多,会出现各种值得思考的问题。比如多个操作之间是否可以并行,如何协同底层的不同设备,如何避免冗余的操作,以实现最高效的计算效率,同时避免一些 bug。因此产生了计算图 (Computational Graph)。计算图是用来描述运算的有向无环图,有.

2020-08-20 23:28:36 643

原创 [PyTorch 学习笔记] 1.3 张量操作与线性回归

本章代码:https://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson1/linear_regression.py张量的操作拼接torch.cat()torch.cat(tensors, dim=0, out=None)功能:将张量按照 dim 维度进行拼接tensors: 张量序列dim: 要拼接的维度代码示例:t = torch.ones((2, 3))t_0 = torch.cat([t, t], d.

2020-08-19 15:15:47 280

原创 PyCharm 使用了 pytest 来执行代码,应该如何修改?

有时在 PyCharm 运行代码的时候,会出现类似如下 pytest 的错误。这时我们的代码是没有错误的,只是 PyCharm 使用了 pytest 来执行代码,这是 Python 中的一种单元测试方法。出现这种错误,是因为你的代码中,有某个方法是以test开头。因此 PyCharm 默认会使用 pytest 来运行这份代码。我们就需要设置 configuration,使 PyCharm 用默认的解释器来执行代码。步骤如下:点击 Edit Configuration。可以看到在左

2020-08-18 15:03:31 1595

原创 [PyTorch 学习笔记] 1.1 PyTorch 简介与安装

PyTorch 的诞生2017 年 1 月,FAIR(Facebook AI Research)发布了 PyTorch。PyTorch 是在 Torch 基础上用 python 语言重新打造的一款深度学习框架。Torch 是采用 Lua 语言为接口的机器学习框架,但是因为 Lua 语言较为小众,导致 Torch 学习成本高,因此知名度不高。PyTorch 的发展2017 年 1 月正式发布 PyTorch。2018 年 4 月更新 0.4.0 版,支持 Windows 系统,caffe2 正式并

2020-08-15 23:43:32 437 4

原创 [PyTorch 学习笔记] 1.2 PyTorch 的 Tensor(张量)

Tensor 的概念本章代码:https://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson1/tensor_introduce1.pyhttps://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson1/tensor_introduce1.pyTensor 中文为张量。张量的意思是一个多为数组,它是标量、向量、矩阵的高维扩展。标量可以称为 0 维张量

2020-08-15 13:32:28 449 2

原创 图神经网络 PyTorch Geometric 入门教程

简介Graph Neural Networks 简称 GNN,称为图神经网络,是深度学习中近年来一个比较受关注的领域。近年来 GNN 在学术界受到的关注越来越多,与之相关的论文数量呈上升趋势,GNN 通过对信息的传递,转换和聚合实现特征的提取,类似于传统的 CNN,只是 CNN 只能处理规则的输入,如图片等输入的高、宽和通道数都是固定的,而 GNN 可以处理不规则的输入,如点云等。 可查看【GNN】万字长文带你入门 GCN。而 PyTorch Geometric Library (简称 PyG) 是一个

2020-08-14 21:35:21 4677 9

原创 阿里天池 NLP 入门赛 TextCNN 方案代码详细注释和流程讲解

为什么写篇文章首先,这篇文章的代码全部都来源于 Datawhale 提供的开源代码,我添加了自己的笔记,帮助新手更好地理解这个代码。这份代码里包含了数据处理,以及从 0 到 1模型建立的完整流程。这份代码和前面提供的 basesline 的都不太一样,它包含了非常多数据处理的细节,模型也是由 3 个部分构成,所以看起来难度陡然上升。其次,代码里的注释非常少,也没有讲解整个模型的整体流程。这份代码其中很多数据转换的逻辑,和 3 个模型的连接,对于新手来说,颇为头痛。我自己也是一个新人,花了一天的时

2020-08-14 16:08:27 4607 12

原创 线段树详解与实现

此篇文章用于记录《玩转数据结构》课程的学习笔记什么是线段树线段树也被称为区间树,英文名为Segment Tree或者Interval tree,是一种高级的数据结构。这种数据结构更多出现在竞赛中,在常见的本科数据结构教材里没有介绍这种数据结构。但是,在面试中却有可能碰到和线段树相关的问题。那么为什么会产生线段树这种数据结构,线段树到底是为了解决什么样的一种问题呢?其实这里的线段可以理解为区间,线段树就是为了解决区间问题的。有一个很经典的线段树问题是:区间染色。假设有一面墙,长度为 n,每次选择.

2020-08-08 22:27:31 604

原创 TfidfVectorizer、CountVectorizer 和 TfidfTransformer 的简单教程

TfidfVectorizer、CountVectorizer 和 TfidfTransformer 是 sklearn 中处理自然语言常用的工具。TfidfVectorizer 相当于 CountVectorizer + TfidfTransformer。下面先说 CountVectorizer。CountVectorizerCountVectorizer 的作用是将文本文档转换为计数的稀疏矩阵。下面举一个具体的例子来说明(代码来自于官方文档)。from sklearn.feature_extra

2020-08-04 18:09:01 1032

原创 深入理解 Java 中的 CAS

Java 中的synchronized是一种悲观锁,悲观锁始终假设会发生并发冲突,因此会阻止一切可能违反数据完整性的操作。而 CAS 是一种乐观锁CAS 全称是 Compare and Swap。乐观锁假设不会发生并发冲突,因此只在提交的时候检查是否违反数据完整性,如果提交失败则会进行重试。CAS 支持原子更新操作,适用于计数器,序列发生器等场景。CAS 操作失败时由开发者决定是继续尝试,还是...

2020-04-08 14:44:27 255

C语言最经典程序

最经典的C语言程序 适合刚学C的新手 C作为最基础的语言 学号C的重要性 你们懂的

2013-11-08

空空如也

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

TA关注的人

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