- 博客(53)
- 收藏
- 关注
原创 RetinaFace人脸检测关键点模型
是一种用于人脸识别的深度学习算法,它结合了传统的特征提取方法和现代的深度学习技术,旨在提高人脸识别的准确性和效率。
2024-10-12 15:37:08 229
原创 时间序列LSTM实现
这个代码参考了结合我之前所学的lstm-seq2seq里所学习到的知识对其进行预测test_data = true_data[-int(test_size * len(true_data)):]是在干什么这两行代码的作用是将数据集true_data划分为训练集train_data和测试集test_data。
2024-09-24 15:24:05 1129
原创 spark初步探索
今天我阅读了《基于spark下一代机器学习》这本书,里面spark与sql进行了结合,关于传统领域cv,nlp我认为使用大数据处理并不如python处理方便快捷。学习了里面的基础操作,之前学习的spl也可以进行相对的结合。在书中我会使用了XGBoost,LightGBM,等模型,并且学习了大数据经i行数据预处理的方法。
2024-09-24 13:15:15 374
原创 Informer:时间序列预测的新星
在时间序列预测的世界里,传统的模型如ARIMA和LSTM虽然经典,但在处理长序列数据时,往往会遇到效率和准确性的瓶颈。想象一下,如果你需要预测未来几个月甚至几年的数据,而这些数据又非常复杂,传统的模型可能会让你感到力不从心。这时,Informer 模型应运而生,它就像是一位高效的时间旅行者,能够快速而准确地预测未来。
2024-09-23 23:16:06 309
原创 时间序列预处理
我今天参考了这个1博客写下一些我的理解对缺失值进行填充,是对两个值之间的差进行平均但是时间序列也会有一些误差,比如季节的情况,容易影响,三次指数平滑可以优化这个问题三次指数平滑有累加和累乘两种方法,下面是累加的三次指数平滑pi=γ(xi-si)+(1-γ)pi-k 其中k为周期累加三次指数平滑的预测公式为: xi+h=si+hti+pi-k+(h mod k) 注意:数据之魅P88此处有错误,根据Wikipedia修正。
2024-09-23 23:12:36 425
原创 阅读medusa技术总结
在 LM Head 之后,添加多个解码头(如 Medusa Head 1, Medusa Head 2, ...),每个解码头都是一个用于预测不同位置后续词的前馈网络层(Feed-Forward Layer)。解码头的数量可以根据需要设定,通常为 3-5 个。MEDUSA不同于传统的transformer采取的自回归生成方法,采用了一种类似informer的策略,使用多个解码头来并行生成多个后续词的候选项,这样就不必严格按照逐词顺序生成。这样,通过并行处理,MEDUSA 大大减少了所需的解码步骤数量。
2024-09-22 17:50:09 198
原创 大模型微调
这是使用知乎评论进行模型微调,让模型输出更加通畅接近人的使用语言这次根据魔塔官方提供的框架学习到开源大模型训练微调全栈,后续我会继续完善模型。
2024-08-25 21:08:16 481
原创 bert训练的一些技巧(rand() < self.skipgram_prb)
是一个条件表达式,用来判断是否进行skip-gram掩码操作。这种掩码操作通常用于自然语言处理中的数据增强,通过概率决定是否应用skip-gram掩码。
2024-07-10 11:51:21 273
原创 n-gram 掩码
停止词(如 "the", "is", "in" 等)在很多文本处理任务中没有实际意义,因此可以通过掩码将这些停止词排除在 n-gram 之外。例如,对于句子 "The cat is on the mat",可以掩码掉 "the" 和 "is" 这样的停止词,只生成有意义的 n-gram,如 "cat on", "on the mat"。例如,对于句子 "I have 2 cats.",可以掩码掉数字 "2" 和标点符号 ".",只生成 "I have", "have cats" 这样的 n-gram。
2024-07-10 11:28:10 283
原创 from functools import partial有什么用
是 Python 的functools模块中的一个非常有用的函数,它用于部分应用一个函数。这意味着你可以创建一个新的函数,这个新函数是原函数的一个子集,即预先填充了原函数的一些参数,并返回这个新函数。这样,当你调用这个新函数时,你只需要提供那些未被预先填充的参数即可。使用:通过预先填充一些参数,你可以轻松地重用同一个函数的不同变体,而无需编写额外的包装函数。:虽然 Python 允许函数参数有默认值,但使用partial可以让你在运行时动态地设置这些默认值,而不是在函数定义时静态地设置。
2024-07-09 14:10:26 290
原创 _tie_or_clone_weights
这种权重共享或克隆在自然语言处理(NLP)模型中很常见,因为它有助于提升模型的效率和性能。预训练的语言模型(如 BERT)的嵌入层通常在各种下游任务中复用,通过共享权重可以有效地将预训练知识转移到新任务中。希望在训练过程中同时更新嵌入层和解码层的权重时,可以使用这种方法。
2024-07-09 10:00:07 289
原创 from transformers.models.bert.modeling_bert import load_tf_weights_in_bert, BertPooler, BertIntermed
导入BertPoolerBertOutput, 和是为了在自定义模型中使用或扩展 BERT 模型的特定组件。
2024-07-08 11:10:51 235
原创 from transformers.modeling_utils import PreTrainedModel
是用于导入 Hugging Face Transformers 库中的类。这个类是所有预训练模型的基类,提供了许多通用功能和方法,适用于不同类型的模型(如BERT、GPT、Transformer-XL等)。
2024-07-08 11:02:38 340
原创 实习周记总结
我还学习了大模型的源代码,尝试使用新的promote工程解决模型对长文本orc识别出错的问题。进行提示词的更新提升了模型对于文本理解的能力。尝试对模型参数进行微调,提升了模型的输出速度。我首先测试了公司多模态模型,针对业务场景提出了一些测试方向。比如在石油行业大模型orc能力如何,对工程图的分类如何,对于实物图特征提取能力如何。阅读了transformers关于llama的源代码,学习了llama的全流程工作。对llama进行了微调。这周有幸加入到北京科瑞金有限公司担任ai研发实习生的工作。
2024-07-07 22:06:48 168
原创 pandas中的loc函数
是一个列表、数组、Series或任何可以迭代的对象,其中包含DataFrame。中对应于这些标签的行或列(取决于。的内容是行标签还是列标签)。将返回DataFrame。的索引或列标签,那么。
2024-05-30 17:06:25 277 1
原创 normalization
bn 对批次大小的依赖: BN的效果在很大程度上依赖于批次大小(batch size)。当批次大小较小时,BN可能无法准确地估计每个批次的均值和方差,导致性能下降。 在某些情况下,如在线学习或内存受限的环境中,可能无法使用较大的批次大小,这限制了BN的应用。 不适用于RNNs: BN最初是为卷积神经网络(CNNs)设计的,而在循环神经网络(RNNs)中,由于数据之间存在时间依赖性,BN可能无法有效地工作。 尽管有一些尝试将BN应用于RNNs的变体(如Layer Normalization
2024-05-27 16:19:04 208
原创 map函数
在你提到的代码中,test_df['context'].map(cpc_texts) 中的 map() 函数将 DataFrame 中 'context' 列的每个元素传递给 cpc_texts 所代表的对象或函数,并返回一个包含了映射结果的迭代器或 Series 对象。这种用法可能是为了将 'context' 列的每个值映射到某个预先准备好的数据上,以便获取额外的信息或特征。在Python中,map() 函数是用于将一个函数应用到可迭代对象(如列表、元组等)的每个元素上,返回一个包含结果的迭代器。
2024-05-27 14:51:55 152
原创 bert_baseline
BERT (Bidirectional Encoder Representations from Transformers) 是一种基于 Transformer 架构的预训练语言模型,由 Google AI Language 团队在 2018 年提出。BERT 的主要贡献在于其双向的上下文编码能力和通过预训练-微调(pre-training-finetuning)范式来适配不同自然语言处理任务的能力。
2024-05-27 14:48:20 598
原创 FOCAL Loss
在实现FOCAL Loss时,需要注意选择合适的(\alpha)和(\gamma)值。一般来说,(\alpha)可以根据正负样本的比例进行调整,而(\gamma)则需要通过实验进行验证。其中,(p_t)是模型预测为真实类别的概率,(\alpha)是一个平衡因子,用于调整正负样本的权重,(\gamma)是一个调制因子,用于减少易分类样本的权重。FOCAL Loss的定义公式为:(FL(p_t) = -\alpha(1 - p_t)^\gamma \log(p_t))
2024-05-27 14:44:03 946
原创 倒排索引表的创建
倒排表的创建其实很简单,最简单的方法就是循环所有的单词一遍,然后记录每一个单词所出现的文档,然后把这些文档的ID保存成list即可。我们可以定义一个类似于hash_map, 比如 inverted_index = {}, 然后存放包含每一个关键词的文档出现在了什么位置,也就是,通过关键词的搜索首先来判断包含这些关键词的文档(比如出现至少一个),然后对于candidates问题做相似度比较。# 没在word_doc中的,建立一个空listi。# key:word,value:包含该词的句子序号的列表。
2024-05-27 14:39:03 200
原创 count计算单词出现的次数
例如: python Copy code my_list = [1, 2, 2, 3, 4, 2, 5] count_of_2 = my_list.count(2) print(count_of_2) # 输出:3 这段代码统计了列表 my_list 中元素 2 的出现次数,结果是 3。" count_of_o = my_string.count("o") print(count_of_o) # 输出:2 这段代码统计了字符串 my_string 中字符 "o" 的出现次数,结果是 2。
2024-05-27 13:32:49 198
原创 去重复单词
然而,文本数据中可能包含重复的单词,这可能会导致不准确的分析或计算。让我们详细讲解代码行 words = set(q.strip().split()) 的操作: q 是一个包含文本的字符串,假设它代表一个问题或句子。使用代码 `set(text.split())`,我们可以轻松地实现这一目标: ```python unique_words = set(text.split()) print(unique_words) 输出将是一个包含唯一单词的集合: arduino Copy code {'一个示例。
2024-05-27 13:31:34 431
原创 CBAM论文学习
CBAM(Convolutional Block Attention Module)论文是一篇关于深度学习领域注意力机制的研究论文,主要提出了一种新的卷积块注意力模块,旨在增强卷积神经网络(CNN)对图像特征的建模和表示能力。CBAM模块由两部分组成:通道注意力和空间注意力。
2024-05-27 12:49:39 332
原创 Squeeze-and-Excitation Networks
SENet的提出基于一种全新的“特征重标定”策略,通过学习的方式来自动获取到每个特征通道的重要程度,然后依照这个重要程度去提升有用的特征并抑制对当前任务用处不大的特征。在Squeeze步骤中,首先对每个特征通道进行全局平均池化(Global Average Pooling),将每个二维的特征通道变成一个实数,这个实数某种程度上具有全局的感受野,并且输出的维度和输入的特征通道数相匹配。这种重标定的方式可以根据任务的需要来自动地增强或抑制不同的特征通道,从而使得网络能够更好地适应不同的任务。
2024-05-24 14:37:19 278
原创 TensorBoardX学习
它是 PyTorch 官方库的一部分,用于替代 TensorBoardX)中的一个核心类,它提供了一个高级的API来在指定的目录中创建事件文件,并向其中添加摘要(summaries)和事件(events)。,你可以在训练神经网络时记录各种信息,例如损失值、准确率、梯度直方图、模型结构图、图像样本等,并通过 TensorBoard 可视化工具来查看这些信息。类以异步的方式更新文件内容,这意味着训练程序可以直接从训练循环中调用它的方法来添加数据到文件中,而不需要减慢训练的速度。
2024-05-21 19:21:06 366 1
原创 python多进程
Python中的多进程(Multiprocessing)是一种并发编程技术,它允许程序同时运行多个进程,每个进程都有其自己的内存空间和系统资源。这与多线程(Multithreading)不同,多线程是多个线程共享同一个进程的内存空间。在Python中,由于全局解释器锁(GIL)的存在,多线程在CPU密集型任务上并不能实现真正的并行执行,但对于I/O密集型任务或者需要利用多核CPU资源的场景,多进程是一个很好的选择。
2024-05-20 15:15:21 217 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人