白景屹的Pytorch笔记本
文章平均质量分 92
技能是一切的基础
tzc_fly
2017-2021:华中科技大学本科,2021-至今:中山大学博士
展开
-
Dice Loss,balanced cross entropy,Focal Loss
Dice系数是一种集合相似度度量函数,取值范围在[0,1]:s=2∣X∩Y∣∣X∣+∣Y∣s=\frac{2|X\cap Y|}{|X|+|Y|}s=∣X∣+∣Y∣2∣X∩Y∣其中,∣X∩Y∣|X\cap Y|∣X∩Y∣是XXX和YYY之间的交集元素个数,∣X∣,∣Y∣|X|,|Y|∣X∣,∣Y∣分别是XXX和YYY的元素个数。Dice Loss为:Ldice=1−2∣X∩Y∣+1∣X∣+∣Y∣+1L_{dice}=1-\frac{2|X\cap Y|+1}{|X|+|Y|+1}Ldice=1−∣X∣+原创 2022-06-17 15:54:21 · 4332 阅读 · 2 评论 -
第二十二课.DeepGraphLibrary(三)
目录节点分类与回归边分类与回归链接预测整图分类本篇内容为GNN的训练,全面总结GNN的四大任务:节点分类与回归边分类与回归链接预测整图分类假设用户的图以及所有的节点和边特征都能存进GPU。对于无法全部载入的情况,需额外了解在大图上的随机(批次)训练;此处补充异构图的样例训练数据,这个 hetero_graph 异构图有以下这些边的类型:('user', 'follow', 'user')('user', 'followed-by', 'user')('user', 'click',原创 2021-10-19 15:22:44 · 1041 阅读 · 1 评论 -
第二十一课.DeepGraphLibrary(二)
目录构建GNN模块官方SAGEConv和HeteroGraphConv用法构建GNN模块官方SAGEConv和HeteroGraphConv用法在自主构建GNN模块前,先了解两个官方实现的GNN模块用法,首先学习 SAGEConv 的用法,GraphSAGE 来自论文 " Inductive Representation Learning on Large Graphs",消息传递过程为:hN(i)(l+1)=aggregate({hj(l),∀j∈N(i)})h_{N(i)}^{(l+1)}=agg原创 2021-10-13 16:06:35 · 2138 阅读 · 0 评论 -
第二十课.DeepGraphLibrary(一)
目录图图Deep Graph Library (DGL) 是一个 Python 包,用于在现有 DL 框架(目前支持 PyTorch、MXNet 和 TensorFlow)之上实现图神经网络模型。安装DGL,先找到合适配置的版本(官方版本查询入口),然后用pip安装:pip install dgl-cu111 -f https://data.dgl.ai/wheels/repo.html...原创 2021-10-09 20:09:01 · 2314 阅读 · 3 评论 -
第十九课.Pytorch-geometric扩展
目录用GraphGym管理实验用GraphGym管理实验原创 2021-09-16 21:22:21 · 2720 阅读 · 1 评论 -
第十八课.Pytorch-geometric入门(三)
目录异构图学习 heterogeneous graph learning示例图创建异构图异构图的转换创建异构GNNAutomatically Converting GNN Models(示例)补充内容:同构图下的GATConvUsing the Heterogenous Convolution Wrapper(示例)Deploy Existing Heterogenous Operators(示例)异构图采样器Heterogeneous Graph Samplers(示例)从CSV加载Graph异构图学习原创 2021-09-12 17:33:07 · 6776 阅读 · 2 评论 -
第十七课.Pytorch-geometric入门(二)
目录MessagePassing Base Class本次内容主要是了解"消息传递网络"(Message passing networks)的创建;将卷积操作推广到不规则域后被MessagePassing Base Class原创 2021-09-11 11:39:25 · 2391 阅读 · 2 评论 -
第十六课.Pytorch-geometric入门(一)
目录PyG安装图结构基础基准数据集Mini-Batches构建GCNPyG安装Pytorch-geometric即PyG,是一个基于pytorch的图神经网络框架。其官方链接为:PyG在安装PyG之前,我们需要先安装好pytorch,建议使用更高版本的pytorch,比如 pytorch1.9.x + cuda11.1,然后使用pip安装,对于windows系统,我们可以做以下操作:pip install torch-scatter torch-sparse torch-cluster torch-原创 2021-09-05 17:35:12 · 6908 阅读 · 0 评论 -
第十五课.BERT
BERTBERT全称 Bidirectional Encoder Representations from Transformers,BERT基于Transformer(Transformer回顾:第十四课-Transformer),Transformer最早设计用于 Seq2Seq 任务,其 Encoder 部分后续被迁移到各种场景,逐渐演化成为一种通用的特征提取器。BERT的目标是获得一个良好的词表达,回顾ELMo(ELMo回顾:第十三课-问答系统)的成功,是来源于语言模型的预训练,预训练后的ELM原创 2021-03-13 20:35:15 · 221 阅读 · 0 评论 -
第十四课.Transformer
目录Seq2Seq的编码器-解码器架构与Attention机制谷歌的Transformer模型最早是用于机器翻译任务,当时达到了SOTA效果。Transformer改进了RNN最被人诟病的训练慢的缺点,利用self-attention机制实现快速并行。并且Transformer可以增加到非常深的深度,充分发掘DNN模型的特性,提升模型准确率;Transformer由论文《Attention is All You Need》提出,现在被广泛应用于NLP的各个领域。目前在NLP各业务全面发展的模型如GPT,B原创 2021-02-19 23:23:13 · 491 阅读 · 0 评论 -
第十三课.问答系统
目录问答系统文本摘要系统大规模预训练语言模型 ELMo问答系统问答系统通常要求给定一段文字context,给定一个问题question,从context中寻找一段连续的文字text span作为问题的答案。对于问答系统的实验,有一个来自斯坦福的数据集比较受欢迎,名为The Stanford Question Answering Dataset,即SQuAD:SQuAD官方链接SQuAD现在已经发展到2.0版本;在最初的版本中,比如有以下简单的问答组合:较早并有一定效果解决问答系统的模型是2017原创 2021-01-24 22:16:20 · 690 阅读 · 0 评论 -
第十二课.Seq2Seq与Attention
目录Seq2Seq,机器翻译Encoder-Decoder机器翻译数据集与数据预处理Encoder-Decoder模型损失函数训练与测试结合Luong AttentionSeq2Seq,机器翻译Encoder-DecoderSeq2Seq是NLP的一个热门分支,模型通常应用于机器翻译和聊天机器人,Seq2Seq从最初的Encoder-Decoder发展起来,在2014到2015年间,出现了Attention(注意力)机制,注意力机制与Seq2Seq结合后进一步提高了模型的表现。现在将实现Encoder原创 2021-01-24 13:41:45 · 632 阅读 · 2 评论 -
第十一课.DCGAN与CycleGAN
目录DCGANDCGAN简介DCGAN生成celebAcelebA介绍准备工作模型定义训练生成网络与判别网络CycleGANDCGANDCGAN简介DCGAN是基于DeConvlution的GAN,DeConvlution即反卷积,反卷积 DeConv 又叫 Fractional Strided Conv ,或者转置卷积 TransposeConv(更规范的表述),计算操作回顾第九课反卷积和反池化部分;DCGAN的训练过程和GAN是一样的,只是数据从mnist变得更复杂,所以基于卷积网络进行特征提取原创 2021-01-03 21:44:17 · 1252 阅读 · 0 评论 -
第十课.图片风格迁移和GAN
目录Neural Style Transfer简介Neural Style Transfer简介图片风格迁移,结合一张图片的内容和另一张图片的风格,生成一张新风格的图片(内容与第一张图片接近,风格与第二张图片接近);在早期有一篇文章:A Neural Algorithm of Artistic Style实现了图片风格迁移;...原创 2021-01-03 16:44:06 · 3121 阅读 · 1 评论 -
第九课.深度学习常见内容补充
本篇将补充部分在深度学习中常见到的内容目录卷积神经网络的反向传播反卷积反卷积操作过程棋盘效应反池化知识蒸馏诞生背景知识蒸馏原理卷积神经网络的反向传播计算机视觉常用的二维卷积,其本质是全连接网在局部特征上进行线性变换,对一个二维张量进行卷积,可以等效为以下过程:可以看出,当把张量转为另一个表现形式后,卷积网络就变成了全连接网络,此时,卷积网络的反向传播即遵循全连接网络中的反向传播反卷积反卷积操作过程反卷积的名称有很多,其目的是为了实现可学习的上采样,增加网络在上采样过程中的特征变换能力;反卷积原创 2020-12-31 21:28:08 · 290 阅读 · 0 评论 -
第八课.简单的图像分类(二)
目录常见的卷积神经网络架构卷积网络的平移不变性卷积网络的识别原理简述卷积神经网络的缺陷CNN的迁移学习常见的卷积神经网络架构20世纪60年代初,David Hubel,Torsten Wiesel和Steven Kuffler在哈佛医学院建立了神经生物学系。他们在论文《Receptive fields, binocular interaction and functional architecture in the cat’s visual cortex》中提出了Receptive fields的概念;原创 2020-12-02 10:41:32 · 1201 阅读 · 0 评论 -
第七课.简单的图像分类(一)
第七课目录图像分类基础卷积神经网络Pooling layerBatchNormalization写作中图像分类基础图像分类应该属于计算机视觉的基本任务,在计算机视觉中,广泛使用卷积神经网络捕捉特征;CNN在第六课中已经进行过描述,但在这里,还是再复习一下;卷积神经网络parameters:in_channels (int) – 输入张量的通道数out_channels (int) – 输出张量的通道数kernel_size (int or tuple) – kernel的尺寸stride (原创 2020-11-27 12:13:33 · 1137 阅读 · 0 评论 -
第六课.NLP文本分类任务
第六课目录NLP文本分类简介IMDB数据集准备设置随机种子下载IMDB并划分数据集构建词汇表使用torchtext生成batchWordAveragingNLP文本分类简介文本分类是最基本且实用的自然语言处理应用,应用在垃圾邮件识别,情感分类,主题分类等任务上;对于情感分类,有经典的IMDB影评数据:可以人为对影评进行标注,分成积极"pos"和消极"neg"两类,常用于文本分类的小型深度学习模型有WordAveraging,RNN,CNN;三者均能取得不错的效果IMDB数据集准备在本次情感分类原创 2020-11-17 20:28:27 · 1521 阅读 · 0 评论 -
第五课.语言模型
第五课目录语言模型语言模型简介评价语言模型循环神经网络写作中语言模型语言模型简介简单来说,语言模型用于衡量一句话是否合理,词顺序和选择哪些词也有要求,给出一句话,判断这句话(词的组合)的出现概率:P(W)=P(w1w2...wn)P(W)=P(w_{1}w_{2}...w_{n})P(W)=P(w1w2...wn)根据条件概率的计算公式:P(AB)=P(A)P(B∣A)P(AB)=P(A)P(B|A)P(AB)=P(A)P(B∣A),可以将词组概率表示为:P(w1w2...wn)=P(w1原创 2020-11-13 11:45:24 · 308 阅读 · 0 评论 -
第四课.词向量
词向量发展在自然语言处理问题中,会涉及到一个重要部分:词向量;词向量:我希望将单词word转为一个vector,因为机器不能直接感知到人类所说的语言,只有将单词转换为数值对象才能进行后续处理;在早期NLP领域,单词的编码使用one-hot,这样的编码只是为了区分各个词,完全没有语义信息;后来出现了TF-IDF,为每个word增加权重信息,常见的word权重大,罕见的word权重小,这样处理后,稍微看到了一点语义信息;单词的编码还需要包含相似性,比如美洲豹和剑齿虎的编码在欧氏空间应该有较近的距离:原创 2020-11-09 17:30:21 · 510 阅读 · 0 评论 -
第三课.使用简单的NN模拟fizzbuzz
游戏介绍这个游戏非常简单,名叫fizzbuzz,我猜测应该起源于早期的聚会活动,游戏规则如下:从1开始计数,当遇到是3的倍数的时候,就说fizz,当遇到是5的倍数的时候,就说buzz,当遇到是3和5的倍数(即15的倍数)时,就说fizzbuzz,其余数字保持正常计数;关于用神经网络去玩这个游戏,需要明白其可行性,这里并不是像"打砖块"那样基于强化学习做出决策,这里只是单纯的拟合数据分布,所以,我会先根据游戏规则生成正确的数据,然后用NN去捕捉分布,再对陌生的数据进行分类,类似于模拟一个人在学习如何玩fi原创 2020-11-08 20:48:56 · 1115 阅读 · 0 评论 -
附录:PyTorch记事本
tensor.cuda()在使用GPU的情况下,一般会将所有相关tensor都放到GPU上计算,所以如果仅仅model=model.cuda(),程序将不能正确执行,因为输入tensor和输出tensor还没布置到GPU上,还需要:x=x.cuda()y=y.cuda()model=model.cuda()注意,这样的迁移比较特殊,在完成设备迁移的同时,叶子张量属性is_leaf并不会发生变化,虽然x=x.cuda()不是in-place,但叶子节点并没有变成非叶子节点,这对训练有重要作用..原创 2020-11-04 13:55:37 · 782 阅读 · 0 评论 -
第二课.PyTorch入门
什么是PyTorchPytorch是一个基于Python的科学计算库,类似于Numpy,但可以使用GPU,可灵活开展深度学习实验,其数据结构tensor类似于ndarray,但tensor可以在GPU上加速运算pytorch的导入为:import torchtorch.__version__ #pytorch的版本号Pytorch张量的基本操作tensor的声明#构造一个未初始化的5x3矩阵torch.empty(5,3)#构造一个随机初始化的5x3矩阵torch.rand(5,3)原创 2020-11-02 15:12:57 · 899 阅读 · 8 评论 -
第一课.深度学习简介
机器学习在吴恩达老师的课程中,有过对机器学习的定义:ML:<P T E>P即performance,T即Task,E即Experience,机器学习是对一个Task,根据Experience,去提升Performance;在机器学习中,神经网络的地位越来越重要,实践发现,非线性的激活函数有助于神经网络拟合分布,效果明显优于线性分类器:y=Wx+by=Wx+by=Wx+b常用激活函数有ReLU,sigmoid,tanh;sigmoid将值映射到(0,1):y=11+exp(−x原创 2020-11-02 11:30:06 · 1071 阅读 · 2 评论