- 博客(338)
- 资源 (27)
- 收藏
- 关注
原创 action=“store_true“什么意思
在上述示例中,我们创建了一个解析器对象`parser`,并添加了一个名为`--verbose`的命令行选项。通过指定`action="store_true"`,如果命令行中包含`--verbose`选项,则`args.verbose`将被设置为`True`;在Python中,`action="store_true"`是`argparse`模块中的一个参数选项,用于解析命令行参数。它表示如果命令行中指定了该选项,则将其作为布尔值`True`存储,否则将其存储为默认值`False`。
2024-02-24 09:37:02 882
原创 nn.ModuleList和nn.Sequential的联合使用举例
下面是一个简单的示例,演示了如何使用 `nn.ModuleList` 和 `nn.Sequential` 来定义一个模型。这些子模块被存储在 `nn.ModuleList` 对象 `self.layers` 中。在 `forward` 方法中,我们遍历 `self.layers` 中的每个子模块,并将输入 `x` 传递给它们,然后将输出作为下一个子模块的输入。通过使用 `nn.ModuleList` 和 `nn.Sequential` 的组合,我们可以方便地管理和组织模型的子模块,使代码更加简洁和可读。
2024-02-19 09:00:23 417
原创 动态头部:统一目标检测头部与注意力
摘要在目标检测中,定位与分类相结合的复杂性导致了各种方法的蓬勃发展。以前的工作试图提高在不同的目标检测头的性能,但未能呈现一个统一的视图。在本文中,我们提出了一种新的动态头部框架来统一目标检测头部和注意力。通过在尺度感知的特征层次之间、空间感知的空间位置之间以及任务感知的输出通道内连贯地组合多重自注意机制,该方法显著提高了目标检测头的表征能力,且不增加任何计算开销。进一步的实验证明了该方法在COCO基准上的有效性和有效性。使用标准的ResNeXt-101- DCN骨干网,我们大大提高了流行的目标检测器的
2024-02-18 16:41:34 1212
原创 pytorch chunk的使用举例
在上面的例子中,我们首先创建了一个大小为 (6, 8) 的张量 `tensor`。然后,我们使用 `chunk` 函数将 `tensor` 在第 1 维度上切分成两个块。`chunk` 函数的第一个参数是要切分的张量,第二个参数是要切分的块数,第三个参数 `dim` 是指定切分的维度。在 PyTorch 中,`chunk` 是一个用于将张量(tensor)按指定维度进行切片的函数。它可以将一个张量切分成多个块。`chunk` 函数在处理大型张量时非常有用,可以将其分割成更小的块,以便逐块处理或并行处理。
2024-02-18 10:50:09 677
原创 with ThreadPoolExecutor() as executor的使用举例
每个`executor.submit()`调用都将一个任务(即`task`函数)和其对应的参数传递给线程池执行器,以便在空闲的线程中并发地执行这些任务。使用`ThreadPoolExecutor`可以方便地进行并发编程,以提高程序的执行效率。在上面的例子中,我们首先定义了一个名为`task`的函数,它接受一个参数`name`,表示任务的名称。`ThreadPoolExecutor`是Python的concurrent.futures模块中的一个类,用于创建一个线程池执行器,可以并发地执行多个任务。
2024-02-17 21:56:51 442
原创 partial的使用举例
然后,我们使用`partial`函数创建了一个新的函数`double`,将`multiply`函数作为第一个参数,并固定第一个参数为2。通过使用`partial`函数,我们可以方便地创建新的函数,固定部分参数,以便在后续的代码中更方便地调用。`functools`模块中的`partial`函数用于部分应用(partial application)一个函数的参数,即固定函数的部分参数,从而返回一个新的函数。当我们调用`double(5)`时,实际上是调用了`multiply(2, 5)`,得到的结果是10。
2024-02-17 21:53:50 438
原创 sharded DDP什么意思
在传统的DDP中,数据被划分为多个小批次,并分配给不同的计算设备进行处理。每个设备计算其分配的批次的梯度,并与其他设备进行通信和同步以更新模型参数。然而,当数据集非常大时,传统的DDP可能面临内存容量不足的问题,因为每个设备需要存储整个模型的副本。在Sharded DDP中,数据仍然划分为多个小批次,并分配给不同的设备。每个设备计算其分配的批次的梯度,并与其他设备进行通信和同步。然而,由于模型参数被分片,通信和同步的开销相对较小,因为每个设备只需要传输和同步其所负责的参数子集。
2024-02-17 19:51:12 407
原创 ddp是什么意思
它是一种用于训练深度学习模型的并行计算策略。在深度学习中,模型训练通常需要处理大量的数据和复杂的计算任务。DDP的目标是通过将数据和计算任务分布到多个计算设备(例如多个GPU或多台计算机)上,并在这些设备之间进行通信和同步,以加速训练过程。通过使用DDP,可以将模型的输入数据划分为多个批次,并将每个批次分配给不同的计算设备进行处理。每个设备计算其分配的批次的梯度,并将梯度与其他设备进行通信和同步,以更新模型的参数。需要注意的是,DDP是一种特定的并行计算策略,用于分布式环境中的深度学习训练。
2024-02-17 19:49:09 450
原创 transformer的原理
在训练阶段,解码器可以通过自注意力机制和编码器-解码器注意力机制来对输入序列进行有效的信息提取和生成。为此,Transformer引入了位置编码,它是一个与输入向量维度相同的矩阵,用于表示序列中每个元素的位置信息。它在处理长序列数据时表现出色,并且相比于传统的循环神经网络(RNN)模型,能够并行计算,从而提高了训练和推理的效率。通过自注意力机制、多头注意力机制和编码器-解码器结构,Transformer能够有效地捕捉序列中的长距离依赖关系,并在许多自然语言处理任务中取得了出色的性能。
2024-02-16 16:13:07 542
原创 nlp中如何数据增强
在自然语言处理(NLP)中,数据增强是一种常用的技术,旨在通过对原始文本进行一系列变换和扩充,生成更多多样化的训练数据。5. 句子重组(Sentence Rearrangement):对输入文本进行句子重组或洗牌,改变句子的顺序和结构。这可以引入新的句法和语义变化,增加数据的多样性。3. 随机删除(Random Deletion):随机删除输入文本中的某些词,以模拟噪声或丢失信息的情况。4. 随机交换(Random Swap):随机选择输入文本中的两个词,并交换它们的位置。
2024-02-16 10:59:10 994
原创 gradient accumulate举例子解释
举个例子来解释梯度累积的概念。通常情况下,我们会将所有样本分成10个批次,每个批次包含100个样本,并使用每个批次的梯度来更新模型的参数。梯度累积(Gradient Accumulation)是一种优化技术,用于在训练神经网络时,将多个小批次的梯度累积起来,然后一次性更新模型的参数。1. 定义累积步数(Accumulation Steps):我们设定一个累积步数N,表示将N个小批次的梯度累积起来进行一次参数更新。通过梯度累积,我们可以在限制较大的批次大小的情况下,获得与更大批次大小相当的参数更新效果。
2024-02-16 10:44:51 384
原创 Layer Normalization
\(\sigma\) 是输入 \(x\) 在特征维度上的标准差,计算方式为:\(\sigma = \sqrt{\frac{1}{d} \sum_{i=1}^{d} (x_i - \mu)^2}\)。- \(\gamma\) 和 \(\beta\) 是可学习的参数向量,维度均为 \(d\)。这有助于减少不同样本之间的差异,提供更稳定的训练过程。- \(\mu\) 是输入 \(x\) 在特征维度上的均值,计算方式为:\(\mu = \frac{1}{d} \sum_{i=1}^{d} x_i\)。
2024-02-16 09:04:45 630
原创 交叉熵损失函数
交叉熵损失函数的目标是最小化模型预测的概率分布与真实标签的概率分布之间的差异。对于第i个样本,模型的输出为一个长度为K的概率向量,表示每个类别的预测概率。真实标签表示为一个长度为K的one-hot向量,只有真实类别对应的位置为1,其他位置为0。对于每个样本,交叉熵损失函数计算模型预测的概率分布与真实标签的概率分布之间的差异。其中,\(y_{ij}\)表示第i个样本的真实标签的第j个类别的值(0或1),\(p_{ij}\)表示模型预测的第i个样本的第j个类别的概率。
2024-02-16 09:03:51 400
原创 -1e9表示什么
1e9 表示科学记数法中的负一十亿,即 -1,000,000,000。它等于负十亿,或者简写为 -1,000,000,000。这是一个非常大的负数。
2024-02-15 21:23:03 373
原创 K.transpose(-1, -2)
举个例子,假设有一个形状为 `(3, 4, 5)` 的张量 `x`,其中第一个维度长度为 3,第二个维度长度为 4,第三个维度长度为 5。使用 `K.transpose(x, -1, -2)` 将会交换最后两个维度,得到一个形状为 `(3, 5, 4)` 的新张量。具体来说,`-1` 表示最后一个维度,而 `-2` 表示倒数第二个维度。使用这两个索引作为参数,`K.transpose(-1, -2)` 将会交换最后两个维度的顺序。在这个函数中,`-1` 和 `-2` 是维度索引,用于指定需要交换的维度。
2024-02-15 19:56:22 594
原创 GiB is reserved by PyTorch but unallocated
在PyTorch中,可以使用`torch.cuda.set_per_process_memory_fraction()`函数来设置`max_split_size_mb`的值。可以在代码运行之前设置`PYTORCH_CUDA_ALLOC_CONF`环境变量,以指定`max_split_size_mb`的值。在PyTorch中,可以通过设置`max_split_size_mb`参数来控制内存分割的粒度,从而减少内存碎片化。在上述示例中,`max_split_size_mb`设置为256 MB。
2024-02-03 21:29:55 950
原创 torch训练简单例子
model.eval() # 设置模型为评估模式。model.train() # 设置模型为训练模式。# 对输出进行处理...# 生成随机输入数据和目标数据。# 生成随机输入数据。# 反向传播和梯度更新。# 在评估阶段禁用梯度计算。# 定义随机数生成的样本数量。# 定义一个简单的模型。# 检查GPU是否可用。# 将模型移动到GPU。
2024-02-03 18:13:42 409
原创 解释对话对齐机制
对话对齐机制(Dialogue Alignment Mechanism)是指在多轮对话系统中,将用户的当前输入与对话历史中的相应上下文进行匹配和对应的方法。4. 上下文更新:对话对齐机制还需要将当前输入与对话历史进行整合,更新对话的状态或表示,以便模型能够基于最新的上下文生成回复。2. 对话历史匹配:当前用户的输入需要与对话历史中的相应上下文进行匹配。3. 上下文对齐:根据对话历史和当前输入的匹配结果,需要对齐上下文中的相应部分,以便模型能够理解上下文并生成连贯的回复。
2024-02-02 20:33:31 391
原创 解释SwiGLU激活函数
然后,GLU将输入信号与门控值相乘,以便选择性地放大或抑制输入。SwiGLU激活函数将GLU和Swish部分结合起来,通过门控机制选择性地应用Swish变换,以产生最终的激活输出。它的设计目的是在提供非线性表达能力的同时,保持一定的线性性质,从而提高神经网络的表示能力和学习能力。SwiGLU激活函数的主要思想是引入一个门控机制,用于控制输入信号在激活函数中的传递方式。总的来说,SwiGLU激活函数通过门控机制和非线性变换的组合,提供了一种灵活的非线性激活方式,有助于改善神经网络的性能和学习能力。
2024-02-02 20:26:13 986 1
原创 Qwen-1.8B 模型的架构细节
`序列长度`:模型可以处理的输入序列的最大长度。在这种情况下,Qwen-1.8B 可以处理最长为 8192 个标记的输入序列。- `d_model`:模型隐藏状态(也称为嵌入向量)的维度。- `词汇表大小`:词汇表的大小,即模型可以理解的唯一标记数量。Qwen-1.8B 的词汇表大小为 151,851。- `n_layers`:模型中的 Transformer 层的数量。这些超参数提供了关于 Qwen-1.8B 语言模型的规模、容量和功能的相关信息。| 词汇表大小 | 151,851 |
2024-02-02 20:17:53 514
原创 jupyter设置环境变量
例如,可以使用`os.environ['MY_VARIABLE']`来获取名为`MY_VARIABLE`的环境变量的值。请注意,如果你在终端或命令提示符窗口中设置了环境变量,但在Jupyter Notebook中仍然无法访问到它们,可能需要重新启动Jupyter Notebook,以使环境变量生效。- 在Notebook的代码单元格中,使用`%env`魔术命令来设置环境变量。将`MY_VARIABLE`替换为你想要设置的环境变量名称,将`my_value`替换为相应的值。- 使用文本编辑器打开配置文件。
2024-02-02 10:17:59 1195
原创 conda环境更改jupyter的环境
请注意,你需要确保在终端或命令提示符窗口中激活正确的Conda环境,并将其添加到Jupyter内核中,才能在Jupyter中使用该环境。3. 在激活的Conda环境中,安装`ipykernel`库,以便将环境添加到Jupyter中。6. 在Jupyter的界面中,点击右上角的"New"(新建)按钮,然后选择"Notebook"(笔记本)或其他适用的选项。7. 在"Notebook"下拉菜单中,你应该可以看到新创建的Conda环境名称。这将在Jupyter中创建一个新的内核,将其命名为你指定的环境名称。
2024-02-02 09:48:01 614
原创 Seq2SeqTrainer与Trainer的区别
综上所述,`Trainer`类适用于常见的单输入单输出任务,而`Seq2SeqTrainer`类则专门用于序列到序列任务。如果你的任务是序列到序列的任务,例如机器翻译或对话生成,那么使用`Seq2SeqTrainer`类可以更方便地处理相关的训练过程。- `Seq2SeqTrainer`类在`Trainer`类的基础上进行了扩展,专门处理序列到序列任务。- `Trainer`类假定输入数据是单个输入和单个输出,因此它期望输入数据以特定的格式(例如PyTorch的`DataLoader`)提供。
2024-02-01 22:57:40 722
原创 chatchat部署在ubuntu上的坑
2. 安装后把代理关闭,全局的代理改为手动,重新打开一个新的控制台。1. 安装前要开代理,注意要下载很多东西,流量大。
2024-02-01 19:30:31 622
原创 edge-tts简单例子
edge-tts --voice zh-CN-XiaoxiaoNeural --text "把鼻子放到最上面头部的圈中,把两个手尽可能与人像的手重合。您还可以通过拖动下面箭头设置参数" --write-media hello_in_arabic.mp3 --write-subtitles hello_in_arabic.vtt。
2024-01-22 20:05:20 455
原创 EfficientViT: Memory Efficient Vision Transformer withCascaded Group Attention论文阅读
高效的记忆视觉变压器与级联的群体注意摘要。视觉变压器由于其高模型能力而取得了巨大的成功。然而,它们卓越的性能伴随着沉重的计算成本,这使得它们不适合实时应用。在这篇论文中,我们提出了一个高速视觉变压器家族,名为EfficientViT。我们发现现有的变压器模型的速度通常受到内存低效操作的限制,特别是在MHSA中的张量重塑和单元函数。因此,我们设计了一种具有三明治布局的新构建块,即在高效FFN层之间使用单个内存绑定的MHSA,从而提高了内存效率,同时增强了信道通信。此外,我们发现注意图在头部之间具有很高
2024-01-17 13:12:05 1092
原创 羊驼2:开放的基础和微调聊天模型--Llama 2论文阅读
摘要在这项工作中,我们开发并发布了Llama 2,这是一个预训练和微调的大型语言模型(llm)的集合,范围从70亿到700亿个参数。我们的微调llm,称为Llama 2-Chat,针对对话用例进行了优化。我们的模型在我们测试的大多数基准测试中都优于开源聊天模型,并且基于我们对有用性和安全性的人工评估,可能是闭源模型的合适替代品。我们详细描述了我们对Llama 2-Chat进行微调和安全改进的方法,以使社区能够在我们的工作基础上为llm的负责任发展做出贡献。内容PAGE 21介绍PAGE
2024-01-11 20:26:12 817 2
原创 YOLOV5
以Yolov5s的结构为例,原始608*608*3的图像输入Focus结构,采用切片操作,先变成304*304*12的特征图,再经过一次32个卷积核的卷积操作,最终变成304*304*32的特征图。,代入上面(2)的计算公式中,可以得到Yolov5l的Focus结构中,卷积下采样操作的卷积核的数量为64个,而第二个卷积下采样的卷积核数量是128个。作者认为,在项目实际使用时,很多图片的长宽比不同,因此缩放填充后,两端的黑边大小都不同,而如果填充的比较多,则存在信息冗余,影响推理速度。
2024-01-11 16:14:26 889
原创 YOLOV8
提供了一个全新的 SOTA 模型,包括 P5 640 和 P6 1280 分辨率的目标检测网络和基于YOLACT的实例分割模型。和 YOLOv5 一样,基于缩放系数也提供了 N/S/M/L/X 尺度的不同大小模型,用于满足不同场景需求骨干网络和 Neck 部分可能参考了 YOLOv7 ELAN 设计思想,将 YOLOv5 的 C3 结构换成了梯度流更丰富的 C2f 结构,并对不同尺度模型调整了不同的通道数,属于对模型结构精心微调,不再是无脑一套参数应用所有模型,大幅提升了模型性能。
2024-01-11 12:48:43 878
原创 《Training language models to follow instructions》论文解读--训练语言模型遵循人类反馈的指令
使语言模型更大并不能使它们更好地遵循用户的意图。例如,大型语言模型可能生成不真实的、有害的或对用户没有帮助的输出。换句话说,这些模型与它们的用户并不一致。在本文中,我们展示了一种方法,通过对人类反馈进行微调,在广泛的任务中使语言模型与用户意图保持一致。从一组标注器编写的提示和通过OpenAI API提交的提示开始,我们收集了一个标注器演示所需模型行为的数据集,我们使用它来使用监督学习对GPT-3进行微调。然后我们收集模型输出排名的数据集,我们使用从人类反馈中使用强化学习来进一步微调这个监督模型。
2024-01-10 11:36:53 1136
原创 Actor-Model和Reward-Model
Actor-Model利用环境信息和Reward-Model的指导来选择动作,而Reward-Model根据智能体的行为结果提供奖励信号。这样,智能体可以通过与环境的交互,利用Actor-Model和Reward-Model的协作来学习并优化其策略,以获得更高的累积奖励。在训练过程中,Actor-Model通过与环境的交互来收集样本数据,包括当前状态、选择的动作和获得的奖励。在强化学习中,Actor-Model和Reward-Model是两个关键概念,它们在训练智能体(Agent)的过程中起着重要的作用。
2024-01-10 09:41:47 328
原创 chatgpt的基本技术及其原理
在微调过程中,模型会根据特定任务的目标进行优化,以便生成符合特定任务需求的响应。总结起来,ChatGPT的基本原理是通过大规模互联网文本的预训练来学习语言模式和语义表示,然后通过在特定任务上的微调来定制模型的行为。ChatGPT是一种基于生成式预训练的语言模型,它的基本技术包括预训练和微调。下面我将为你解释这些技术及其原理。通过预训练和微调的结合,ChatGPT能够生成具有语义一致性和上下文相关性的自然语言响应。微调的目的是让模型适应特定任务的上下文和要求,以便更好地回答用户的问题或参与对话。
2024-01-10 09:21:17 777
原创 解释文本向量化的原理
4. 特征向量标准化(Feature Vector Normalization):在某些情况下,可以对特征向量进行标准化处理,以消除不同文本长度和特征尺度之间的差异。首先,对于给定的文本样本,计算每个单词在文本中的出现次数(词频)。通过将文本转换为向量表示,我们可以将其输入到机器学习模型或其他算法中进行进一步的分析和处理,如文本分类、情感分析、信息检索等。然后,将文本样本中出现的单词对应的索引位置设置为 1。在自然语言处理(NLP)中,文本向量化是一种常用的技术,用于将文本表示为计算机可以处理的形式。
2024-01-09 22:29:44 497
原创 gradient_checkpointing
在训练深度神经网络时,反向传播算法需要在前向传播和反向传播之间存储中间计算结果,以便计算梯度并更新模型参数。需要注意的是,梯度检查点技术在减少内存消耗的同时,会导致额外的计算开销。因此,在决定使用梯度检查点时,需要权衡内存消耗和计算开销之间的折衷。梯度检查点技术通过在前向传播期间临时丢弃一些中间结果,仅保留必要的信息,以减少内存使用量。在反向传播过程中,只需要重新计算被丢弃的中间结果,而不需要存储所有的中间结果,从而节省内存空间。然后,在反向传播过程中,这些层将重新计算其所需的中间结果,以便计算梯度。
2024-01-09 21:54:21 771
原创 什么是OOM error
当程序尝试使用超过其可用内存的量时,操作系统会发送OOM信号,通知程序无法继续分配所需的内存。它通常发生在计算机程序执行过程中,当程序需要更多内存空间来执行操作,但系统没有足够的可用内存时,就会触发OOM错误。3. 调整程序的内存限制:对于某些应用程序,可以通过配置参数或设置环境变量来调整程序所允许使用的内存限制。1. 优化程序的内存使用:检查程序是否存在内存泄漏或不必要的大内存分配,确保及时释放不再使用的内存。4. 使用更高效的算法或数据结构:优化程序的算法和数据结构,以减少内存使用量。
2024-01-09 21:48:08 362
弱监督目标检测论文.rar
2020-05-29
中科院利用弱监督目标检测中的不稳定性.pdf
2020-05-29
商汤AAAI2020.pdf
2020-05-29
清华大学弱监督2019.pdf
2020-05-29
instance-aware弱监督目标检测CVPR2020.pdf
2020-05-29
ICCV2019.pdf
2020-05-29
cap2det谷歌结合文字信息进行弱监督检测.pdf
2020-05-29
poly-yolo.pdf
2020-05-29
dorefa-net
2018-07-10
vivado2018-1的license文件
2018-06-11
mnist数据集为keras
2018-06-04
类似于陌路人人的聊天源码
2017-07-28
原始MIT人脸库
2015-08-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人