AI

您将深入了解人工智能(AI)的核心技术与应用,包括机器学习、深度学习、自然语言处理、计算机视觉等热门领域。我们提供最新的AI教程、技术文章、行业案例与实践指南,帮助您掌握AI技术,提升编程与数据分析能力。无论您是AI初学者还是专业开发者,都可以在这里找到丰富的学习资源,助力您的职业发展与技术创新。关注我们的AI板块,了解AI最新趋势,抢占未来科技先机!

Attention-Based Bidirectional Long Short-Term Memory Networks for Relation Classification 论文研读

AI

Attention-Based Bidirectional Long Short-Term Memory Networks for Relation Classification 论文研读

0. 个人浅谈 Attention是在2014年提出的(paper为:Recurrent Models of Visual Attention,下载地址为https://papers.nips.cc/paper/5542-recurrent-models-of-visual-attention.pdf),而本文的发表时间是在2016年,它是ACL会议(NLP国际顶级会议之一)的录用论文(具有一定的研究意义),显而易见的是它是把attention应用到到NLP的关系抽取中的一个成功实践。所以对于AI学习者而言,学习最新的技术,然后将其应用到自己所在的工作领域,这是一件非常有趣的事情。 1. 摘要 关系抽取是自然语言处理领域中一个非常重要的语义处理任务(除了语义处理,还有其他任务吗?)。然而,已有的系统使用词法资源(如WordNet)或者依赖于解析器和命名实体识别获得的高级特征。另外一个挑战是,重要的信息可能出现在句子中的任意位置。为了解决这些问题,我们提出了基于注意力机制的LSTM网络,从而可以获取句子中最重要的语义信息。我们采用的实验数据是SemEval-2010关系分类任务数

By Ne0inhk
yolov5模型ComputeLoss类源码详细解读

AI

yolov5模型ComputeLoss类源码详细解读

文章目录 * * * * * * * * * * * * * * * * * * * * * * * 前言 最近,需要修改yolov5推理结果,往往需要非常熟悉输出过程head的loss计算方式。特别地,对于box回归来说十分重要,到底是在原始图像尺寸进行box回归loss计算,还是在特征图尺寸计算,又如何使用将回归偏移值进行loss计算?这些问题,无不需要十分熟悉原理与源码方可透彻理解。为此,本文将记录yolov5的ComputeLoss源码解读,包含内容为透彻分析偏移值运用、target与pred预测回归使用,以及正负样本筛选源码理解。 一、ComputeLoss类整体源码说明 yolov5的ComputeLoss类一个为初始化函数,涉及参数与loss方法,一个为集成call函数,包含整个loss的计算,特别说self.build_targets函数尤为重要。我将在后面部分会详细说明,现给出非完整版ComputeLoss类的源码,如下: class ComputeLoss:

By Ne0inhk
tensorflow get_variabe()和scope

python

tensorflow get_variabe()和scope

1. tf.Variable()和tf.get_variable()的区别 TensorFlow的文档里推荐尽量使用tf.get_variable()。tf.Variable()必须提供一个初始值,这一般通过numpy(或者Python)的随机函数来生成,初始值在传入的时候已经确定(但还没有真正初始化变量,还需要用session.run来初始化变量)。而tf.get_variable()一般通过initializer来进行初始化,这是一个函数,它可以更加灵活的根据网络的结构来初始化。比如我们调用tf.get_variable()时不提供initializer,那么默认会使用tf.glorot_uniform_initializer,它会根据输入神经元的个数和输出神经元的个数来进行合适的初始化,从而使得模型更加容易收敛。 另外一个重要的区别就是tf.Variable()总是会(成功的)创建一个变量,如果我们提供的名字重复,那么它会自动的在后面加上下划线和一个数字,比如: from __future__ import print_function from

By Ne0inhk
tf.nn.con2d

AI

tf.nn.con2d

1. API参数介绍 tf.nn.conv2d((input, filter, strides, padding, use_cudnn_on_gpu=None, data_format=None, name=None) 其中input的默认输入格式为NHWC,即为[batch, in_height, in_width, in_chanels]。 filter的输入格式为HWIO,[filter_height, filter_width, in_channels, out_channels],其中filter的个数和out_channels相同。 stride的输入格式和data_format的格式相对应,它也是一个四维张量,表示在data_format每一维上的移动步长。例如输入格式默认格式”NHWC“,则strides的设置为[1,stride,stride,

By Ne0inhk
CogVLM训练源码解读--数据处理

python

CogVLM训练源码解读--数据处理

文章目录 * * * * * 前言 本文是CogVLM是一个多模态大型模型,它能够处理文本、图像和其他类型的数据。在数据处理方面,CogVLM可以接收多种类型的输入数据,包括文本、图像、音频等。然而,很少有人对代码数据处理进行解读或者基本找不到。基于此,本文将结合源码给出CogVLM大模型数据处理内容,主要包含图像数据处理、文本tokenizer构建、文本加工与修改自己文本方法代码修改。总之,我将结合代码一步一步带领读者实现大模型数据处理源码内容。 一、数据主函数源码解读 CogVLM的数据处理包含2部分,一部分是图像数据处理,另一部分是文本数据处理。其源码位于finetune_cogvlm_demo.py文件,如下: from utils.utils import llama2_tokenizer tokenizer = llama2_tokenizer(args.local_tokenizer, signal_type=args.version) image_processor = get_image_processor(

By Ne0inhk
transformer图像切块与还原(window_partition+window_unpartition)

AI

transformer图像切块与还原(window_partition+window_unpartition)

文章目录 * 前言 假如b ,h,w,c=(3,32,32,768)需将h w按照14尺寸切割,32/14无法整除,需pad为(3,42,42,768)完成固定尺寸块切割,进而完成transformer结构,最终摒弃pad数据还原为(3,32,32,768)。在使用Transformer结构提取特征时,通常会使用window_partition和window_unpartition来划分和还原图像块的过程。这两个步骤是为了将图像分割成小块,送入Transformer网络进行处理,然后再将处理后的特征重新组合成原始图像的尺寸。为此,我摘录TAM大模型处理方法代码,记录图像尺寸切割与还原。 一、切割图像(window_partition) 这一步骤是将原始图像按照设定的窗口大小划分成多个块,并将这些块重新排列成一个较大的矩阵,以便送入Transformer网络。 def window_partition(x: torch.Tensor, window_

By Ne0inhk
tokenizer添加token的详细demo

AI

tokenizer添加token的详细demo

文章目录 * 前言 我们在Hugging Face不同模型对应的tokenizer映射字典,不存在某些专有词汇,我们需要新增对应的token,以便我们使用对应模型处理不存在专业词汇。为此,本篇文章针对此问题,记录如何为tokenizer添加对应词汇,便于模型转换。 一、tokenizer添加token 我选择llava对应小羊驼模型的tokenizer,我将其读取为tokenizer,在保存原有tokenizer,随后使用tokenizer.add_tokens添加token,也将其保存,并加载添加后的tokenizer,其详细代码如下: import transformers tokenizer = transformers.AutoTokenizer.from_pretrained( '/home/llava_v1.5_lora/vicuna-13b-v1.5', cache_dir=None, model_max_length=4096, padding_side="right"

By Ne0inhk
第九节 基于huggingface加载openai/clip-vit-large-patch14-336视觉模型demo

AI

第九节 基于huggingface加载openai/clip-vit-large-patch14-336视觉模型demo

文章目录 * 引言 本文介绍如何使用huggingface加载视觉模型openai/clip-vit-large-patch14-336,我之所以记录此方法源于现有大模型基本采用huggingface库来加载视觉模型和大语言模型,我也是在做LLaVA模型等模型。基于此,本节将介绍如何huggingface如何加载vit视觉模型。 一、模型加载 使用huggingface模型加载是非常简单,其代码如下: from transformers import CLIPVisionModel, CLIPImageProcessor if __name__ == '__main__': vit_path='D:/clip-vit-large-patch14-336' img_path='dogs.jpg' image_processor = CLIPImageProcessor.from_pretrained(vit_path) # 加载图像预处理 vision_tower = CLIPVisionModel.from_pretraine

By Ne0inhk
Tokenize Anything via Prompting论文解读

大模型

Tokenize Anything via Prompting论文解读

文章目录 * * * 前言 随着分割一切的SAM模型基准,紧接着tag一切的RAM模型基准,又紧接着Tokenize Anything via Prompting,提出了一个unified and prompt模型能够同时分割、识别和描述anything。不同与SAM模型,我们目的是视觉prompt构建一个多功能区域表征。为了实现这个,我们使用大量语义分割mask数据(如SA-1B)以及来自有5b参数预训练CLIP模型先验分割信息,训练一个泛化模型。特别地,我们构建了一个promptable 图像解码块,增加了语义token到每个mask token。该模型能实现目标级别的描述与分割。基于此,本文将解读该论文,我基本是精度了一遍,感觉很有意思,我将其记录,并分享。 一、摘要 我们提出了一个unified and prompt模型能够同时分割、识别和描述anything。不同与SAM模型,我们目的是野外环境通过视觉prompt构建一个多功能区域表征。为了实现这个,我们使用大量语义分割mask数据(如SA-1B)以及来自有5b参数预训练CLIP模型先验分割信息,训

By Ne0inhk