Post on: Jul 9, 2024Last edited: Jul 9, 2024Words 5102 min

type
status
date
slug
summary
tags
category
icon
password

问题与思考

在处理变长信息时,现在的技术一般都是组合的得到一个或者指定的几个,然而未知的输入形状,使得网络层在设计时难以进行。此外,嵌入技术的普遍应用在一定程度上缓解了这个问题。
然而在一些特别的领域,或者说在更长远的应用中,保留变长信息的结构或许会有一些不同的应用。相较于定长的信息,采用的嵌入(embedding),截取(rounding),填充(padding)等都会一定程度的损失信息或者影响信息。
就目前的普遍的环境而言,没有新的能够契合torch和CUDA、cudnn的数据类型出现之前,使用List<torch.tensor>的数据结构,是时间复杂度付出较少的一种方法了。
因为torch.tensor采用对硬件调度的方式计算,基本是并行计算,时间复杂度很低,并且是和设备性能相挂钩。现在算力的不断提升,这个速度只会越来越快。而使用List作为父类结构的torch.tensor的泛型结构,似乎天然就占有了一层O(n)的复杂度。这也是实际使用List去处理变长信息时的痛点。
特别是NLP领域,变长信息的重灾区。而NLP又是现在大语言模型等研究的基础,对人类自然语言的理解也是未来人工智能与人交互的关键。可见List<torch.tensor>处理变长信息还是有尝试的空间。

另一方面

可能受限于本人的知识面,不太了解现在能够处理变长信息的技术进展,可能已经有学者设计了新的数据结构,能够做类似效果的处理,欢迎交流学习。
 

  • Twikoo
python逐元素计算

🗒️python逐元素计算

在使用Python时,也希望能够有像matlab计算时,使用逐元素运算符进行点对点计算,这里介绍两种,一种是numpy,一种是torch


matplotlib输出像素和矩阵维度一样的图

🗒️matplotlib输出像素和矩阵维度一样的图


Announcement
🎉欢迎来到我的博客🎉
👏欢迎更新体验👏