二叉搜索树 什么是二叉搜索树 二叉搜索树(Binary Search Tree,BST)是一种常用的数据结构,它是一棵二叉树,其中每个节点的值都大于其左子树中任意节点的值,小于其右子树中任意节点的值。 也就是说,对于一棵 BST,任何一个节点的左子树都比它小,任何一个节点的右子树都比它大。因此,如果我们对 BST 进行中序遍历,得到的就是一个有序的序列。 二叉搜索树的优点是: 支持快速的查找、插
数据样本处理的代码可能会变得杂乱且难以维护,因此理想状态下我们应该将模型训练的代码和数据集代码分开封装,以获得更好的代码可读性和模块化代码。PyTorch 提供了两个基本方法 torch.utils.data.DataLoader和torch.utils.data.Dataset可以让你预加载数据集或者你的数据。Dataset存储样本及其相关的标签, DataLoade
本文延续前一篇文章的例子。只是例子一样,代码实现是逐步优化的,但是知识点没什么必然关联。几个例子帮你梳理PyTorch知识点(张量、autograd)(https://blog.51cto.com/Lolitann/5966309)nn计算图和autograd是定义复杂算子和自动求导的一个非常强大的范例;但是对于一些大型神经网络来说,原始的autograd可能有点低级。在我们创建神经网络的时候,我
因为我最近想学Pytorchlightning,重构一下之前的代码,所以回来梳理一下Pytorch的语法,好进行下一步学习,所以从头重新回顾一下Pytorch。这个文章是通过几个简单例子帮大家回顾一下Pytorch一些重点基础概念。Pytorch有两个重要的特征:使用n维张量进行运算,可以使用GPU加速计算。使用自动微分构建、训练神经网络从sin(x)开始Tensor和Numpy的用法差不多,但是
写在最前边这篇文章要写的内容看封面,就是要用一篇文章讲解一下,怎么用FashionMNIST数据集,我们自己建一个神经网络,训练好之后用它做图片分类。pyimporttorchfromtorchimportnnfromtorch.utils.dataimportDataLoaderfromtorchvisionimportdatasetsfromtorchvision.transformsimpo
之前我们已经学习了如何创建神经网络(https://blog.51cto.com/Lolitann/5949989),如何加载数据集(https://juejin.cn/post/7153204122567573535),如何训练模型(https://blog.51cto.com/Lolitann/5959025)。我们要知道,训练一个模型是要消耗很多算力资源的,模型越大消耗的人力物力财力越大,所
之前我们讲了如何从零搭建一个神经网络(https://juejin.cn/post/7158104455060127751),但是我们要知道,只搭建是没用的,因为不经过训练的模型就像没上过学的孩子,什么知识也不知道,那就不叫人工智能了,叫人工智障。上一节我们搞的是一个可以用于图片分类的神经网络,在输入的地方我们没弄数据集,知识给X随机初始化了一些数字,这次为了更直观得看一下效果,这里我们用Fash
碎碎念!image.png(https://s2.51cto.com/images/blog/202212/02133034_63898d7a12b8414139.png?xossprocess=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3p
当我们训练神经网络的时候,最常用的就是使用反向传播。在反向传播过程中,参数变化只和给定参数通过loss函数计算的梯度(gradient)有关。PyTorch的torch.autograd提供了自动梯度计算,可以用于自动计算任何计算图的梯度。举个简单的例子嗷,假设我们只有一层神经网络。输入为x,权重是w,bias是b,这里使用二元交叉熵(binary_cross_entropy)损失进行计算。我们直
PyTorch中有一个torch.nn提供了所有你在组建神经网络过程中需要的模块。每个神经网络模型都是PyTorch的nn.Module的子类,神经网络是由层或者模型组成的,也就是说一个神经网络是其他层或者网络组合起来的。因为神经网络的这种层级式结构,也让我们很容易就能建立好复杂的网络模型。pyimportosimporttorchfromtorchimportnnfromtorch.utils.
本文从两方面进行解释:数学和编码方面。总有一个角度能让你更好理解。数学解释熵Entropy熵用于计算一个离散随机变量的信息量。对于一个概率分布X,X的熵就是它的不确定性。用大白话来说,假设你预测一个东西,有时候结果会出乎意料,熵就表示出乎意料的程度。熵越大你越不容易预测对,事情就越容易出乎意料。离散型概率分布X的熵定义为自信息的平均值:H(X)=E_{p(x)}I(x)=\sum_{x}p(x)\
论文地址:HierarchicalTextConditionalImageGenerationwithCLIPLatents(https://arxiv.org/pdf/2204.06125.pdf)赏析大师HierarchicalTextConditionalImageGenerationwithCLIPLatents看一下标题啊,使用CLIP出来的特征来做一个层级式的文本到图像的生成器。我们可
本文翻译自:TherecentriseofdiffusionbasedmodelsMaciejDomagała(maciejdomagala.github.io)(https://maciejdomagala.github.io/generative_models/2022/06/06/Therecentriseofdiffusionbasedmodels.html)作者博客:MaciejDoma
扩散模型的悲惨开始搞AI的都知道,一个模型好不好空口无凭,我们必须要用数据说话。但是扩散模型刚出来的时候存在一个问题,就是图片我们用人眼看起来好像效果还是挺好的,但是在数值上就是打不过GAN生成的图像,所谓的数值上就是在评价指标上,比如FIDscore和ISscore(https://juejin.cn/post/7156610588137750564)。就算我们直接把图片放到论文中,人家也可能会
本文有5230字,阅读大概需要10分钟。10分钟你肯定看不完,老老实实看吧。碎碎念事情是这样的,前两天晚上我嵩突然发了DreamStudio(https://beta.dreamstudio.ai/dream)让我们玩一下。!image.png(https://s2.51cto.com/images/blog/202212/10162452_63944254b4f0236295.png?xossp
写文章之前先带你们断一下句哦“一文理清/受控文本生成/发展脉络”。可控文本生成这个是填坑的,看过带你了解自然语言处理文本生成方向(https://juejin.cn/post/7170949408429703198)的应该知道我举了个聊天机器人的例子。没看过也没事,继续往下看就行了。!image.png(https://s2.51cto.com/images/blog/202212/0709244
本文共计5134字,阅读预计需要5分钟,但是5分钟你肯定看不懂,字你都认识,组合起来你不知道我在说啥,老老实实研究吧。扩散模型对于其他生成模型来讲,从数学角度来看更为优美。扩散模型也因为其背后的数学原理让很多人望而却步。今天就来梳理一下常见的两个理解扩散模型数学原理的角度。从VEA角度看之前我们先是讲的VAE模型,详细可以看进来学VAE,VAE都不懂还想懂扩散模型?VariationalAutoE
扩散模型是一种生成模型,在过去的几年里忽然火了起来,这其中也是有一定原因的。单看2020前后的几篇开创性的文章我们就可以知道扩散模型的性能了,比如在图像生成方面打败了GANs。最近,研究人员想必也都看到了OpenAI上个月发布的图像生成模型DALLE2中也是用到了扩散模型。!image.png(https://s2.51cto.com/images/blog/202212/02133104_638
AE自编码器,无监督的特征学习,其目的是利用无标签数据找到一个有效低维的特征提取器。!(https://s2.51cto.com/images/blog/202212/07092657_638febe1b1c9049170.png?xossprocess=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_
这是我翻译这位大佬的第二篇文章了。这篇文章是受到大佬认证的了。他的原文中有翻译链接,直接指向我。!image.png(https://s2.51cto.com/images/blog/202212/02144329_63899e914b11017979.png?xossprocess=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFF
这是我翻译这位大佬的第二篇文章了。这篇文章是受到大佬认证的了。他的原文中有翻译链接,直接指向我。!image.png(https://s2.51cto.com/images/blog/202212/02144239_63899e5f626d45939.png?xossprocess=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF
看我看我这是我翻译这位大佬的第三篇文章了(Transformer、BERT、GPT2)。作者博客:@JayAlammar(http://jalammar.github.io/)原文链接:TheIllustratedBERT,ELMo,andco.(HowNLPCrackedTransferLearning)(http://jalammar.github.io/illustratedbert/)正文
模型起源2015年的时候,有几位大佬基于非平衡热力学提出了一个纯数学的生成模型(SohlDicksteinetal.,2015(https://arxiv.org/abs/1503.03585))。不过那个时候他们没有用代码实现,所以这篇工作并没有火起来。直到后来斯坦福大学(Songetal.,2019(https://arxiv.org/abs/1907.05600))和谷歌大脑(Hoetal.
封面图就是用扩散模型画的。这是最近两个大火的模型,直接冲到抱抱脸的首页。最先火起来的是图二。因为DALLE2出来了,由于DALLE2只对部分大佬开放,因此它的替代品DALLEmini就火了起来。之后没几天stablediffusion出来了!最最重要的一点是stablediffusion已经向公众开放了(当然是付费的)。今天就来说一下这几个模型背后的东西。!1661335781636.png(ht
事情是这样的。前两天翻译了一篇文章图解GPT2。在翻译的过程中为了防止自己出错,所以参考了一下其他人对于GPT的一些理解,然后就出错了,为了解决这个错误,导致我最后重新扒了一遍GPT2的源码,在这里跟大家分享一下。大家先来回顾一下GPT2的结构,GPT使用的是类似于transformer的decoder的组件。就是输入先经过一个maskedmultiheadattention。在经过一个前馈神经网
这篇文章是接着一文拿捏点互信息(PMI)解决词分布式表示稀疏性问题(https://blog.51cto.com/Lolitann/5908497)写的。解决分布式表示稀疏性问题另一个方法是使用奇异值分解(SingularValueDecomposition,SVD)。我把例子搬过来了。还是原来的三个句子及其共现矩阵M。我喜欢自然语言处理。我爱深度学习。我喜欢机器学习。\begin{array}{
前馈知识之前在浅谈wordembedding(https://juejin.cn/post/7063875212881690638heading12)里浅浅的说了一下onehot是怎么向词向量表示发展的,大家可以回顾一下。接下来我补充一下,接说二者之间还有一个阶段,词的分布式表示。词的分布式表示理论分布式表示的发展英国语言学家JohnRupertFirth在1957年的《Asynopsisofli
!image.png(https://s2.51cto.com/images/202212/55d95bc81775766f7e24560d772177da6386f6.png?xossprocess=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFu
UNet出自UNet:ConvolutionalNetworksforBiomedicalImageSegmentation(https://arxiv.org/pdf/1505.04597.pdf)这个网络和别的自编码(autoe第二步是就是ncoder)模型一样,在中间有一个bottleneck,以确保网络只学习最重要的信息。和他之前的模型的一个区别是它引入了编码器和解码器之间的残差连接,大大
前排提示:阅读本文不需要任何人工智能以及算法相关的知识。你会任何一种编程语言就行,会python当然那更好。仅作为NLP科普,娱乐,实际算法工作并非这么简单。X:“宝,你搞的是什么算法?”A:“NLP,又叫自然语言处理。”X:“太抽象了啊”A:“比如聊天机器人?”X:“emmmmm”A:“算了,你自己试一下吧,上车,坐稳了。”接下来会分为两部分:没有Python环境的我会提供一个colab,但是c
Copyright © 2005-2023 51CTO.COM 版权所有 京ICP证060544号