自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

万有文的博客

视觉SLAM 深度学习 目标检测 行为识别 三维视觉 移动机器人 单片机 python自动化

  • 博客(197)
  • 资源 (7)
  • 收藏
  • 关注

原创 Effective Modern C++ Scott Meyers 类型推导 Type Deduction 《Effective STL》 vector and string

Effective Modern C++》是一本由Scott Meyers撰写的书籍,该书主要讨论了C++11和C++14(现代C++)中的关键特性和最佳实践,以帮助读者编写出更高效、更安全、更易维护的代码。Scott Meyers是世界顶级的C++软件开发技术权威之一,他曾是C++ Report的专栏作家,并为C/C++ Users Journal和Dr. Dobb’s Journal等刊物撰稿。

2024-05-24 13:00:00 1280

原创 AIGC 生成对抗网络、大型预训练模型 LLM ChatGPT Transformer LLaMA LangChain Prompt Engineering 提示工程

大模型是指具有大规模参数和复杂计算结构的机器学习模型,通常由深度神经网络构建而成,拥有数十亿甚至数千亿个参数。这些模型的设计目的是提高模型的表达能力和预测性能,能够处理更加复杂的任务和数据。大模型在各种领域都有广泛的应用,包括自然语言处理、计算机视觉、语音识别和推荐系统等。大模型的主要工作是通过训练海量数据来学习复杂的模式和特征,并据此生成预测或进行决策。在大模型的输入方面,数据通常以编码的形式呈现,如word embedding、one-hot编码、文字或整数等。这些编码方式帮助模型理解和处理输入数据。

2024-05-24 11:30:00 655

原创 常用工具 脚手架资料 log4j 序列化protobuf 可视化grafana 日志 glog 测试 gtest

然后,你可以编写包含测试用例的 C++ 代码,并使用 gtest 提供的宏和函数来编写测试断言。此外,Grafana还支持多种部署模式,包括多组织支持,可以为一个单一的Grafana实例为多个潜在的不受信任的组织提供服务。用户也可以属于一个或多个组织,并通过角色来分配不同的权限。它使用二进制格式进行数据的序列化和反序列化,这种格式更加紧凑,占用的存储空间更小,传输速度更快。丰富的可视化功能:Grafana提供了丰富的图表、图形和仪表板模板,可以实现各种数据的可视化,包括折线图、柱状图、饼图、仪表盘等。

2024-05-23 12:45:00 456

原创 多边形填充 OpenCV fillPoly 绘制带有填充效果的多边形 mask 掩码操作 图像处理任务,如标记、标注或可视化

在 OpenCV 中,cv2.fillPoly() 函数用于在给定的图像上绘制填充的多边形。它接受一个图像、一个点数组(表示多边形的顶点)和一个可选的掩码作为输入。在 Python 中,这通常是一个列表的列表,其中每个子列表表示一个多边形顶点的坐标(x, y)。在 C++ 中,这通常是一个指向点数组的指针数组,以及一个整数数组,表示每个多边形的顶点数。在 BGR 色彩空间中,这可以是一个元组(对于 Python)或一个 Scalar 对象(对于 C++),指定了蓝色的强度、绿色的强度和红色的强度。

2024-05-23 11:45:00 267

原创 任务导向型对话系统 Task-oriented Dialog Systems 面向任务的对话系统 对话系统的预训练方法 领域适应 跨领域应用 鲁棒性 交互场景和用户行为 End-to-end模型

由于在人机交互和自然语言处理中的重要性和价值,面向任务的对话系统在学术界和工业界都受到越来越多的关注。在本文中,我们调查了面向任务的对话系统的最新进展和挑战。我们还讨论了面向任务的对话系统的三个关键主题:(1)提高数据效率以促进在资源匮乏的环境中进行对话建模;(2)为对话策略学习建模多回合模型以实现更好的任务完成性能;(3)将领域本体知识整合到对话模型中。此外,我们回顾了对话评估和一些常用语料库的最新进展。我们认为,尽管这项调查不完整,但可以为面向任务的对话系统的未来研究提供启发。

2024-05-22 13:30:00 807

原创 BERT 和GPT相反,使用的Transformer的Encoder 自然语言处理(NLP) 深度双向的Transformer编码器结构

本文介绍的language representation model就是大名鼎鼎的BERT,其模型结构是利用Transformer的双向Encoder表示。BERT有个明显的特点就是,它通过在所有层的左侧和右侧上下文中共同进行条件预处理,从而在未标记的文本中预训练深层双向表示。和,基于特征的方法,比较典型的就是ELMo,使用特定于任务的架构,其中包括预训练的表示形式作为附加功能。微调的方式,众所周知的是GPT了,这种方式通过引入最少的特定于任务的参数,并通过简单地微调所有预训练的参数来对下游任务进行训练。

2024-05-22 11:30:00 975

原创 Attention Is All You Need 注意力机制的序列模型 Transformer 编码器-解码器架构 文本摘要、问答系统、对话生成 NLP

序列到序列(sequence-to-sequence, seq2seq)的转导模型,如基于复杂递归或卷积神经网络的那些,包括编码器和解码器,通常通过注意力机制连接。这些模型在许多任务上取得了显著成果,但训练成本较高。我们提出了一种新的简单网络架构,Transformer,它完全基于注意力机制,摒弃了循环和卷积操作。通过两个机器翻译任务的实验,我们展示了Transformer模型在质量上的优势,同时它还具有更高的可并行性,从而显著减少了训练时间。

2024-05-21 13:30:00 1116

原创 预训练对话上下文 Pretraining Methods for Dialog Context Representation Learning 四种无监督的预训练目标

本文研究了不同的无监督预训练目标,这些目标旨在学习对话上下文的表示。提出了两种新的对话上下文编码器预训练方法,并对四种预训练策略进行了深入研究。通过在MultiWoz数据集上对每个预训练目标进行微调,并在一组下游对话任务上进行评估,我们观察到显著的性能提升。进一步的评估表明,我们的预训练目标不仅能提高模型的性能,还能改善模型的收敛性,使模型在需要更少数据的情况下达到更好的效果,并显示出更好的领域通用性。

2024-05-21 11:30:00 1334

原创 Shell MIT shell 课程 如何利用工具提升效率

在MIT的Shell和Scripting课程中,学生将学习如何利用shell工具来提高工作效率。

2024-05-20 11:45:00 823

原创 Linux网络防火墙 局域网怎么实现内外网隔离 查看网络 iptables 路由跟踪

在Linux系统中,使用iptables来配置网络防火墙并实现内外网隔离是一个常见的做法。iptables是Linux内核集成的IP信息包过滤系统,它允许用户定义基于包过滤的防火墙规则。以下是如何使用iptables来实现内外网隔离,并查看网络状态和路由跟踪的步骤。拒绝所有进入的流量你可以首先拒绝所有进入的流量,然后逐步开放需要的端口。bash允许内部网络流量然后,你可以允许内部网络的流量通过。允许外部网络到特定服务的流量(例如SSH)保存iptables规则。

2024-05-20 11:00:00 1024

原创 深度学习模型编译技术 编译优化 前端图优化 算子融合 后端代码生成 下沉 模型编译框架 TVM 高性能并行计算

深度学习模型的开发周期,包括训练阶段和部署阶段。训练阶段,用户需要收集训练数据,定义自己的模型结构,在CPU或者GPU硬件上进行训练,这个过程反复优化,直到训练出满意精度的模型。有了模型之后,我们需要将模型服务部署运行,我们期望服务延迟越低越好,吞吐越高越好。这里会从编译优化的角度来分析一下如何进行深度学习模型推理优化。在部署阶段,为了确保服务的高性能和低延迟,从编译优化的角度进行深度学习模型推理优化是非常重要的。

2024-05-19 12:00:00 791

原创 算子开发 AI CPU算子 CANN算子 ascend c 编程 Cube计算单元、Vector计算单元和Scalar计算单元 算子原型库

算子开发在人工智能和机器学习领域扮演着重要角色,特别是在构建和优化神经网络模型时。以下是关于算子开发、AI CPU算子、CANN算子、Ascend C编程以及Cube计算单元、Vector计算单元和Scalar计算单元的详细介绍。,算子开发是人工智能和机器学习领域中的一个重要环节,它涉及到多个方面的技术和工具。通过深入理解算子开发的概念、技术和工具链,开发者可以更加高效地构建和优化神经网络模型。

2024-05-19 11:00:00 937

原创 Linux Android IOS CentOS 资源 包管理 重装系统 后台运行Daemon 传输文件 scp rsync 性能测试

Linux Android IOS CentOS 资源

2024-05-18 13:00:00 551

原创 Shell命令 ShellScript脚本 grep awk 查找 文件查找 find 脚本参数

Shell是一个用C语言编写的程序,它是用户使用Linux的桥梁。文字操作系统与外部最主要的接口就叫做Shell。Shell是操作系统最外面的一层。Shell管理你与操作系统之间的交互:等待你输入,向操作系统解释你的输入,并且处理各种各样的操作系统的输出结果。

2024-05-18 11:30:00 794

原创 Scheduled Sampling for Transformers 如何在Transformer模型中应用Scheduled Sampling技术 解决序列到序列模型中的Exposure Bia

Scheduled Sampling(计划采样)是一种用于解决Exposure Bias问题的技术,特别是在序列生成任务中,如机器翻译、文本摘要等。Exposure Bias是指模型在训练时依赖真实的目标序列(Teacher Forcing)进行预测,而在测试时则只能依赖自身之前的预测,这种训练和测试的不一致性可能导致模型在测试时性能下降。在Transformer模型中,由于每个新单词的生成都基于整个前缀序列(而不仅仅是最后一个单词),直接应用Scheduled Sampling技术存在挑战。

2024-05-17 15:30:00 1446

原创 神经投影网络 ProjectionNet 深度学习 神经投影方法来训练轻量级神经网络模型 较低的计算和内存成本在设备上执行有效的推理

随着深度学习技术的快速发展,我们见证了神经网络模型在多个领域取得了显著的性能提升。然而,这些模型通常具有庞大的参数数量和计算复杂度,这要求大量的计算资源和内存来支持其训练和推理过程。在云端服务器上运行这些模型是可行的,因为它们拥有强大的计算能力和存储资源。然而,随着移动设备、物联网设备和其他边缘设备的普及,我们迫切需要将深度学习模型部署到这些资源受限的设备上。将深度学习模型部署到资源受限的设备上带来了诸多挑战。首先,这些设备通常在低功耗模式下运行,其计算能力和内存资源远不及云端服务器。

2024-05-17 11:45:00 622

原创 Layer Normalization层归一化 加速神经网络训练的有效技术 归一化与批归一化和权重归一化进行了比较 递归神经网络(RNN)Transformer

训练最新的深度神经网络在计算上是昂贵的,减少训练时间的一种方法是归一化神经元,最近引入的一种称为批归一化的技术使用训练案例的小批量上神经元的总输入分布来计算均值和方差,然后使用均值和方差对每个训练案例中该神经元的总输入进行归一化,这大大减少了前馈神经网络的训练时间。但是,批归一化的效果取决于小批量的大小,如何将其应用于递归神经网络尚不明显。在本文中,我们通过在单个训练案例上计算从层的所有总输入到神经元的归一化的均值和方差,将批归一化转换为层归一化。

2024-05-16 14:15:00 746

原创 Python 编程介绍 基础数据 结构 格式化 迭代器iterator collections浅拷贝与深拷贝 queue 正则表达式 argparse 上下文管理器 函数装饰器 多线程编程

Python 是一种功能强大的编程语言,广泛应用于各种领域,包括网站开发、数据分析、人工智能等。Python 编程介绍:Python 是一种高级编程语言,强调代码的可读性和简洁性。它支持多种编程范式,包括面向对象编程、函数式编程和过程式编程。Python 有一个庞大的标准库和丰富的第三方库,如 NumPy、Pandas、TensorFlow 等。基础数据结构:列表(List):可变的有序元素集合。元组(Tuple):不可变的有序元素集合。

2024-05-16 11:15:00 1499

原创 Batch Normalization 批归一化 每个mini-batch进行归一化操作 显著提高深度神经网络的训练速度和性能

Batch Normalization是在每个mini-batch进行归一化操作,并将归一化操作作为模型体系结构的一部分,使用BN可以获得如下的好处,Batch Normalization(BN)是深度学习中的一个重要技术,特别在训练深度神经网络时,它带来了很多好处。可以使用更大的学习率,训练过程更加稳定,极大提高了训练速度。通过归一化操作,Batch Normalization将每个神经元的激活值限制在一个合理的范围内,使得梯度在反向传播时更加稳定,因此可以使用更大的学习率来加速训练过程。

2024-05-15 17:45:00 965

原创 C语言编程资源分享 包管理器 内存泄露 串口通迅 编译器GCC 静态分析 x86汇编 第三方依赖 媒体处理 内存调试 性能工具 模糊测试

C语言是一种通用的、过程式的计算机编程语言,支持结构化编程、词汇变量作用域和递归,是静态类型检查的。下面是一个简单的C语言程序示例,它展示了如何编写一个输出“Hello, World!这个程序包含以下几个部分:#include :这是一个预处理指令,它告诉C编译器在实际编译之前要包含stdio.h文件。stdio.h是标准输入输出头文件,它包含了进行输入和输出所需的函数,例如printf()。int main():这是主函数,程序执行从这里开始。

2024-05-15 11:45:00 694

原创 编程基础概念 表达式、 逻辑运算符、字符集编码、ASCII、正则表达式

当我们在编程时,会遇到一些基本概念,如表达式、逻辑运算符、字符集编码(如ASCII)、以及正则表达式。定义:表达式是编程中的一个基础概念,它可以是变量、常量、函数、运算符和它们之间的组合。用途:用于描述程序中的数据值或操作。示例:x + 5 是一个简单的表达式,其中 x 是一个变量,5 是一个常量,+ 是一个运算符。定义:逻辑运算符用于比较两个或多个值,并返回一个布尔值(真或假)。常见的逻辑运算符:&&(逻辑与)、||(逻辑或)、!(逻辑非)。

2024-05-14 13:00:00 1363

原创 GPU CUDA编程概念 优化加速 基于GPU的大数据处理和机器学习加速NLP领域的GPU加速案例,Faster Transformer NVIDIA GPU通用推理加速及部署SDK NVIDIA

CPU(Central Processing Unit,中央处理器)和GPU(Graphics Processing Unit,图形处理器)在计算机系统中有各自独特的功能和优势,它们之间的主要区别体现在以下几个方面:任务分工:CPU:主要用于处理复杂的计算任务,如运行操作系统、执行应用程序等。它是计算机系统的核心,负责执行各种计算和控制任务。GPU:专注于图形渲染和大规模并行计算任务。它能够同时处理大量的数据和任务,特别适用于深度学习、科学计算和图形渲染等需要高度并行化的工作负载。

2024-05-14 11:45:00 1452

原创 任务型对话系统(Task-oriented Dialog Systems)综述

由于在人机交互和自然语言处理中的重要性和价值,面向任务的对话系统在学术界和工业界都受到越来越多的关注。在本文中,我们调查了面向任务的对话系统的最新进展和挑战。我们还讨论了面向任务的对话系统的三个关键主题:(1)提高数据效率以促进在资源匮乏的环境中进行对话建模;(2)为对话策略学习建模多回合模型以实现更好的任务完成性能;(3)将领域本体知识整合到对话模型中。此外,我们回顾了对话评估和一些常用语料库的最新进展。我们认为,尽管这项调查不完整,但可以为面向任务的对话系统的未来研究提供启发。

2024-05-13 13:15:00 2469

原创 文本检测模型EAST提取分支(Feature extractor stem)、特征合并分支(Feature-merging branch)以及输出层(Output layer) 端到端的训练

EAST模型是一个全卷积神经网络(FCN),主要用于预测每个像素是否是文本或单词。它剔除了之前一些卷积神经网络中的区域候选、文本格式化等操作,使得模型结构更加简洁明了。在特征提取分支部分,EAST模型通常使用预训练的卷积神经网络(如VGG16)进行初始化,并从不同阶段的卷积层中抽取出特征图。这些特征图的大小和尺度有所不同,以便于检测不同尺度的文本行。特征合并分支则是将不同尺度的特征图进行合并,以生成包含多尺度信息的最终特征图。这一步骤有助于模型更准确地检测不同尺度的文本。

2024-05-13 11:45:00 1153

原创 序列到序列模型在语言识别Speech Applications中的应用 Transformer应用于TTS Transformer应用于ASR 端到端RNN

随着深度学习技术的不断发展,Transformer模型在序列到序列任务中逐渐取代了传统的RNN模型,尤其是在自动语音识别(ASR)、语音翻译(ST)和文本到语音(TTS)等语音处理领域。以下是对您描述的论文内容的进一步概述和扩展:将Transformer应用于语音的主要困难Transformer模型在NLP领域取得了巨大成功,但在将其应用于语音领域时,面临了一些挑战。首先,语音数据通常具有更高的时间分辨率,这要求模型能够处理更长的序列。

2024-05-12 14:00:00 962

原创 文本检测模型 DBNet 一种基于分割算法的模型 对每个像素点进行自适应二值化,并将二值化过程与网络训练相结合 可微分二值化模块 概率图

一般分割算法流程是先通过网络输出文本分割的概率图,然后使用预先设定好的阈值将概率图转换为二值图,最后使用后处理操作将像素级的结果转换为检测结果。然而,这样就会使得算法性能很大程度上取决于二值化时阈值的选择。DBNet[1]对这个流程进行了优化,对每个像素点进行自适应二值化,二值化的阈值由网络学习得到,彻底将二值化这一步骤加入到网络里一起训练,这样最终的输出图对于阈值就会非常鲁棒。DB文本检测模型使用了标准的FPN结构,网络结构如图2所示。图2 DB模型网络结构示意图。

2024-05-12 11:00:00 558

原创 文本检测模型 CTPN 文字检测模型 自然场景文本检测的深度学习模型 更细粒度的anchor设计 引入RNN处理序列特征 Side-refinement(边界优化)多任务学习

1]是目标检测算法的改进算法,用于文字检测。使用更加符合自然场景文字检测特点的anchor(相比于物体,文字尺寸小);引入RNN用于处理场景文字检测中存在的序列特征;引入Side-refinement(边界优化)提升文本框边界预测精度。

2024-05-11 12:00:00 1582

原创 语音合成模型 Tacotron和Tacotron2 深度学习技术,特别是序列到序列(Seq2Seq)模型和注意力机制,实现了从文本到语音(Text-to-Speech, TTS)的转换

语音合成系统通常包含多个阶段,例如TTS Frontend,Acoustic model和Vocoder,如下图更直观清晰一点:语音合成系统,通常称为TTS(Text to Speech,文本到语音),是一种将文字信息转化为人类可理解的语音输出的技术。该系统通常包含多个阶段,每个阶段都有其特定的功能和任务。以下是关于TTS系统中几个关键部分的介绍:TTS Frontend(TTS前端):这一部分主要负责处理输入的文本信息。

2024-05-11 11:15:00 1018

原创 OCR综述 Optical Character Recognition,光学字符识别 文字检测 文字识别 图像预处理、文本行检测、单字符分割、单字符识别、后处理

OCR(Optical Character Recognition,光学字符识别)是指对图像进行分析识别处理,获取文字和版面信息的过程,是典型的计算机视觉任务,通常由文本检测和文本识别两个子任务构成。文字检测:将图片中的文字区域位置检测出来(如图1(b)所示);文字识别:对文字区域中的文字进行识别(如图1©所示)。

2024-05-10 16:45:00 931

原创 ViT( Vision Transformer) 多头自注意力机制 计算机视觉领域应用Transformer架构的模型 首次将NLP领域中广泛使用的Transformer模型引入到了CV领域

在计算机视觉领域中,多数算法都是保持CNN整体结构不变,在CNN中增加attention模块或者使用attention模块替换CNN中的某些部分。有研究者提出,没有必要总是依赖于CNN。因此,作者提出ViT[1]算法,仅仅使用Transformer结构也能够在图像分类任务中表现很好。受到NLP领域中Transformer成功应用的启发,ViT算法中尝试将标准的Transformer结构直接应用于图像,并对整个图像分类流程进行最少的修改。

2024-05-10 12:15:00 750

原创 Swin Trasnformer 新型的Transformer架构,专为计算机视觉任务设计 解决了传统Transformer从自然语言处理迁移到计算机视觉任务时面临的两大问题

Swin Transformer是由微软亚洲研究院在今年公布的一篇利用transformer架构处理计算机视觉任务的论文。Swin Transformer 在图像分类,图像分割,目标检测等各个领域已经屠榜,在论文中,作者分析表明,Transformer从NLP迁移到CV上没有大放异彩主要有两点原因:1. 两个领域涉及的scale不同,NLP的token是标准固定的大小,而CV的特征尺度变化范围非常大。

2024-05-09 13:00:00 1150

原创 数据增广 Data Augmentation 分类任务 正则化方法 增加训练数据集的数据量和多样性 提升模型的泛化能力 翻转变换 随机修剪 色彩抖动 平移变换 对比度变换

在图像分类任务中,图像数据的增广是一种常用的正则化方法,主要用于增加训练数据集,让数据集尽可能的多样化,使得训练的模型具有更强的泛化能力,常用于数据量不足或者模型参数较多的场景。除了 ImageNet 分类任务标准数据增广方法外,还有8种数据增广方式非常常用,这里对其进行简单的介绍和对比,大家也可以将这些增广方法应用到自己的任务中,以获得模型精度的提升。这8种数据增广方式在ImageNet上的精度指标如图1所示。图1 8种数据增广方法。

2024-05-09 12:15:00 1237

原创 编程规范 敏捷宣言 代码风格指南 命名规范 Python 代码风格指南 GNU风格版本规则 git Commit提交规范

编程规范、敏捷宣言、代码风格指南、命名规范、Python代码风格指南、GNU风格版本规则以及Git Commit提交规范都是在软件开发中非常重要的概念和实践。下面我会逐一解释这些概念并提供相关的指南或规范。编程规范是为了确保代码质量、提高代码可读性、可维护性和可重用性而制定的一系列规则和标准。它通常包括缩进和空格的使用、注释的添加、变量和函数的命名规则、错误处理等方面。遵循编程规范可以使代码更加清晰、易于理解和维护。

2024-05-08 13:45:00 986

原创 目标检测CNN 目标检测发展历程 应用场景 智慧交通 自动驾驶 工业生产 智慧医疗

目标检测是计算机视觉领域中的一个重要任务,其主要目的是让计算机能够自动识别图像或视频帧中所有目标的类别,并在目标周围绘制边界框以标示出每个目标的位置。目标检测的过程通常包括两个主要步骤:目标定位和目标分类。目标定位是确定图像中是否存在感兴趣的目标,并找到这些目标在图像中的位置。这通常是通过在图像上滑动一个窗口(也称为滑动窗口方法)来实现的,该窗口会截取图像的一部分区域,并将其输入到卷积神经网络(CNN)中进行处理。如果窗口内的区域包含目标,则CNN会输出一个高置信度分数,并给出该区域的边界框坐标。

2024-05-08 11:30:00 1026

原创 DeepLab系列 Rethinking Atrous Convolution for Semantic Image Segmentation 语义分割

作者发现Deep Convolutional Neural Networks (DCNNs) 能够很好的处理的图像级别的分类问题,因为它具有很好的平移不变性(空间细节信息已高度抽象),但是DCNNs很难处理像素级别的分类问题,例如姿态估计和语义分割,它们需要准确的位置信息。将深度神经网络DCNN与全连接CRF结合起来,提高图像分割的分割精度。提出空洞卷积的思想。应用尝试了多尺度、多层次的信息融合。重复堆叠的池化和下采样操作导致分辨率大幅下降,位置信息丢失难以恢复。

2024-05-07 14:30:00 649

原创 边界框(bounding box) 目标物体的位置和大小 交并比(Intersection over Union,IoU) 锚框(Anchor box)

在检测任务中,我们需要同时预测物体的类别和位置,因此需要引入一些跟位置相关的概念。通常使用边界框(bounding box,bbox)来表示物体的位置,边界框是正好能包含物体的矩形框。在目标检测任务中,边界框(bounding box,bbox)是一个非常重要的概念,用于表示图像中目标物体的位置和大小。

2024-05-07 11:45:00 1591

原创 TimeSformer 视频分类 的Transformer架构 Vision Transformer(ViT) 无卷积架构 时空自注意力机制

TimeSformer是Facebook AI于2021年提出的无卷积视频分类方法,该方法使用ViT网络结构作为backbone,提出时空自注意力机制,以此代替了传统的卷积网络。与图像只具有空间信息不同,视频还包含时间信息,因此TimeSformer对一系列的帧级图像块进行时空特征提取,从而适配视频任务。

2024-05-06 15:30:00 1076

原创 非极大值抑制 NMS Non-Maximum Suppression 目标检测中的一个关键步骤,用于消除对同一目标重复检测的冗余边界框 提高检测的精度和效率 保留局部区域中置信度最高的预测框

非极大值抑制的做法是,选出某个类别得分最高的预测框,然后看哪些预测框跟它的IoU大于阈值,就把这些预测框给丢弃掉。需要注意的是,NMS是目标检测中的一个通用步骤,不同的目标检测算法可能会使用不同的NMS变种,如Soft-NMS、Weighted NMS等,以进一步提高检测性能。抑制重叠的预测框:设定一个IoU阈值(如0.5),对于IoU大于该阈值的预测框,将它们从列表中移除,因为它们与当前选择的预测框重叠度过高,可能指向同一个目标。计算IoU(交并比):计算当前选择的预测框与列表中剩余预测框之间的IoU。

2024-05-06 11:45:00 1238

原创 AutoGroup是一种推荐场景的自动特征交互建模算法 采用了高效的分组算法 基于机器学习的选项,通过训练模型进行智能划分,确保结果的合理性。

AutoGroup是推荐场景的自动特征交互建模算法。推荐场景的神经网络预测模型(包括但不限于CTR预测)可简单分为三个模块:Embedding Layer,Interaction Layer以及MLP Layer,其中Interaction Layer是整个预测模型的关键模块,它需要有效的对特征交互建模。AutoGroup通过可微分学习的方式为不同阶数(order)的特征交互显式建模,并且利用新提出的交互函数保持每一阶交互的计算复杂度都与原始特征数量呈线性关系;

2024-05-05 14:15:00 957

原创 日常开发技术概念 端口映射和端口转发 编程范式 设计模式及原则 数据结构与算法 算法复杂度 迭代循环遍历递归 进程/线程/协程 缓存 定时任务

端口映射和端口转发:端口映射:是将外网的一个端口完全映射给内网一个地址的指定端口,实现外网到内网和内网到外网双向的通信。端口转发:是将一个端口(可以是本机的端口或本机可以访问到的任意主机的端口)转发到任意一台可以访问到的IP上,通常这个IP是公网IP。它只能实现外网到内网的单向通信。端口转发是网络地址转换(NAT)的一种应用。编程范式:编程范式是一种编程方法、风格或习惯,它决定了程序员如何组织和构建代码。常见的编程范式包括面向对象编程(OOP)、函数式编程和逻辑式编程等。

2024-05-05 11:30:00 567

DeMat差分进化算法,matlab遗传算法,数学建模大赛,遗传优化算法 DEMO文件夹为示例 差异进化算法的 示例解决方案

DeMat差分进化算法,matlab遗传算法,数学建模大赛,遗传优化算法 DEMO文件夹为示例 差异进化算法的 示例解决方案 作业在 /demo/PID 以及 /demo/PID_simulink下 包含三个文件 目标函数 objfun.m 画图函数 PlotIt.m 主程序 Rundeopt.m 运行前需要导入 主文件目录 addpat

2024-04-06

tvm节点属性更新方案

tvm节点属性更新方案 暴露c++的节点属性更新方法 python 导入 介绍如何在 TVM(TVM 是 Apache 的开源机器学习编译器堆栈)中更新节点属性,以及如何在 Python 中导入和使用 C++ 暴露的节点属性更新方法时,我们通常遵循几个步骤: 了解 TVM 的架构和节点属性: TVM 的计算图由节点(通常是计算操作)和边(表示数据流)组成。每个节点可能有多个属性,这些属性在编译和运行时用于优化和配置。 C++ 端暴露节点属性更新方法: 在 TVM 的 C++ 实现中,你可能需要定义一个接口来更新节点的属性。这通常涉及到修改 TVM 的 C++ 代码,以暴露一个函数或方法,该函数或方法允许你修改特定节点的属性。创建 Python 绑定: 一旦在 C++ 端实现了更新节点属性的方法,你需要创建 Python 绑定,以便在 Python 中调用这个方法。这通常涉及到使用 Pybind11 或其他类似的库来创建 C++ 和 Python 之间的接口。 在创建绑定时,你需要确保 Python 代码能够正确地调用 C++ 函数,并处理任何必要的类型转换。

2024-02-23

onnx计算图优化 计算图匹配 计算图融合 layerNorm融合 groupNorm融合

onnx计算图优化 计算图匹配 计算图融合 layerNorm融合 groupNorm融合 计算图匹配: 计算图匹配是图优化的一种技术,它通过搜索和匹配计算图中的特定模式或子图,然后应用预定义的优化规则来替换这些模式。这种方法通常用于识别并优化常见的、可以简化的图结构。 计算图融合: 计算图融合是一种高级的图优化技术,它可以将多个独立的操作融合成一个更复杂的操作。这种融合可以减少计算图中的节点数量,降低内存访问开销,以及减少计算过程中的数据拷贝次数,从而提高模型的执行效率。 LayerNorm 融合: Layer Normalization(层归一化)是一种常用的归一化技术,用于加速模型训练和提高模型性能。LayerNorm 融合是将 LayerNorm 操作与其相邻的操作(如卷积、全连接层等)融合到一起,从而减少计算图中的节点数量,提高计算效率。 GroupNorm 融合: Group Normalization(分组归一化)是另一种归一化技术,用于当通道数较少时避免批量归一化(Batch Normalization)的性能下降。GroupNorm 融合与 LayerNorm

2024-02-23

python tensorflow 深度学习 学习示例程序

变量 线性回归 手写字体 逻辑回归 多层感知机 多层网络 卷积神经网络 tensorboard 显示优化记录 自编码 原理与PCA相似 长短时记忆 lstm 单词转词向量 中英文 保存和载入网络模型

2018-05-22

python 机器学习

# PyML # python 机器学习实战 # 包含目录: # 1 KNN 最近邻 # 2 DT 决策数 # 3 NB 朴素贝叶斯 # 4 LoR 逻辑回归 # 5 SVM 支持向量机 # 6 AB 集成学习 adaboost元算法 # 7 LiR 线性回归 # 8 RT 数回归 # 9 KM 聚类 # A AP 关联算法 # B FP FP树频繁项挖掘 # C PCA 主成分分析 数据压缩降维 # D SVD 奇异值矩阵分解 数据降维 # E MR 多机器协调处理 # F SKL 集成学习库实战

2018-05-22

libconfig 配置文件使用示例程序

配置文件很重要,INI 太弱,XML 太繁复,Linux *.conf 很酷。 找了好几种相关的类库,发觉还是 hyperrealm libconfig 最强大最好用,相关细节可参考 官方手册。 源中的版本是 1.3.2-1,也可以去官方文章下载最新版本。 $ sudo apt-get install libconfig8 libconfig8-dev 源码安装 : 去 https://hyperrealm.github.io/libconfig/ 下载  ./config make sudo make install 使用说明 c程序  头文件libconfig.h c++程序 所需头文件libconfig.h++,编译时需要链接动态库libconfig++

2018-05-22

ros 工业机器人培训 程序

ROS机器人操作系统 工业机器人 UR5示例程序 moveit运动规划 Descartes笛卡尔稠密运动规划器 抓取规划 放置规划 检测物体 抓起箱子 放置箱子 ros下点云发布接收格式转换 点云滤波下采样 平面提取 欧式聚类分割

2018-05-22

点云pcl库学习 官方demo示例教程 原理解析代码注释

PCL(Point Cloud Library)是在吸收了前人点云相关研究基础上建立起来的大型跨平台开源C++编程库, 它实现了大量点云相关的通用算法和高效数据结构, 涉及到点云获取、滤波、分割、配准、检索、特征提取、识别、追踪、曲面重建、可视化等。 支持多种操作系统平台,可在Windows、Linux、Android、Mac OS X、部分嵌入式实时系统上运行。 如果说OpenCV是2D信息获取与处理的结晶, 那么PCL就在3D信息获取与处理上具有同等地位,PCL是BSD授权方式, 可以免费进行商业和学术应用。

2018-05-08

opencv 3.1 官方demo示例教程 原理加注释

用OpenCV创建视频 使用OpenCV中的 VideoWriter 类就可以简单的完成创建视频的工作。 如何用OpenCV创建一个视频文件 用OpenCV能创建什么样的视频文件 如何释放视频文件当中的某个颜色通道 Camera calibration and 3D reconstruction (calib3d module) 2D Features framework (feature2d module) Video analysis (video module) Object Detection (objdetect module) Machine Learning (ml module)

2018-05-08

ORB_SLAM2代码注释原理解析

ORB_SLAM2 特征法SLAM 单目 双目 RGBD * ORB主要借鉴了PTAM的思想,借鉴的工作主要有 * Rubble的ORB特征点; * DBow2的place recognition用于闭环检测; * Strasdat的闭环矫正和covisibility graph思想; * 以及Kuemmerle和Grisetti的g2o用于优化。

2018-05-08

空空如也

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

TA关注的人

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