自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(561)
  • 收藏
  • 关注

原创 基于 Transformers 实现问答

问答是一个经典的 NLP 任务,有多种实际应用的形式。答案选项的概率分布文档有关该文档的问题包含答案的文本范围两个概率分布开始位置结束位置一般来说提取式问答的模型需要非常庞大的数据来从头训练,但是使用强大的预训练基础模型开始可以将数据集大小减少多个数量级,并且能取得令人满意的效果。本文介绍的是在轻量级 BERT 模型上进行微调来完成简单的问答任务。

2025-06-18 14:36:19 412

原创 多种策略提升线上 tensorflow 模型推理速度

本文以最常见的模型为例,总结了在实际工作中能有效提升在CPU/GPU上的推理速度的若干方法,包括优化模型结构优化超参数,使用onnx 框架等。当然如果你有充足的 GPU ,结合以上方法提升推理速度的效果将更加震撼。

2025-06-18 14:35:42 254

原创 使用在线 qwen-turbo 模型构建多工具的智能 agent

本文以 chatchat 项目为框架,以线上大模型qwen-turbo的基础构建智能agent,在已有知识库的基础上,如果用户提问知识库相关的内容则调用知识库查询工具获取相关知识进行回复。如果用户提问其他的天气相关问题,则调用天气查询工具已有详细过程,此处不再赘述)来获取相关在线信息。

2025-06-17 09:34:33 1226

原创 Qwen-7B-Chat 通过 Agent 获取外部天气

本文使用 Qwen-7B-Chat 大模型,通过 Agent 调用自定义工具 weathercheck 来获取实时天气状况,还能给出出行穿戴的建议哦。

2025-06-17 09:33:58 514

原创 使用 chatglm3-6b 调用自定义 agent 计算两个地址的经纬度距离

本文介绍了如何使用ChatGLM3-6b模型结合自定义工具计算两地距离,包括:1) 安装CUDA 11.8和PyTorch 2.1环境;2) 创建conda虚拟环境并配置Python 3.10;3) 下载ChatGLM3项目及模型;4) 修改代码实现经纬度距离计算工具;5) 运行程序示例,结果显示两个地址距离为210.849米。整个过程展示了如何整合大语言模型与自定义工具完成特定任务(如地理距离计算)。

2025-06-16 09:10:49 544

原创 搭建 Langchain-Chatchat 详细过程

本文参考官网和其他多方教程,将搭建 Langchain-Chatchat 的详细步骤进行了整理,供大家参考。

2025-06-16 09:10:16 259

原创 arXiv 论文的多标签文本分类

本文构建了一个常见的深度学习模型,实现多标签文本分类,可以根据论文摘要的文本内容预测其所属的多个主题领域标签。

2025-06-13 15:14:07 483

原创 FNet 模型完成文本情感分类任务

本文主要介绍了使用 FNet 模型完成 IMDB 电影评论的情感分类任务,并且和传统的 Transformer 模型进行性能比较。FNet 模型的出现是为了解决传统的 Transformer 模型计算时间复杂度过高的问题。:相比于传统的自注意力机制,FNet 使用傅立叶变换来捕捉序列中的长距离依赖关系,从而提高了处理长序列的效率。:FNet 具有相对轻量级的结构,使其在处理大规模序列数据时更加高效,同时也减少了计算成本,时间复杂度从 O(n^2) 降低到了 O(nlogn)。

2025-06-13 15:12:45 606

原创 一维卷积完成文本情感分类任务

本文主要搭建经典的一维卷积神经网路模型,用于完成 IMDB 电影评论的情感分类预测任务,并在最后对模型进行了改造升级。

2025-06-11 16:28:03 280

原创 LSTM 模型“实现”整数相加运算

本文主要介绍了使用LSTM模型完成简单的两个整数相加的运算。

2025-06-11 16:27:33 236

原创 使用 BERT 完成文本问答的答案预测任务

本文主要介绍了文本问答的实现过程,简单来说就是输入“文本+问题”,返回“答案在文本的起始索引和终止索引”。

2025-06-10 09:09:05 284

原创 看家本领之扩散模型生成美女写真

平时都是在用 AI 工具生成美女写真,审美已经麻木疲劳了,翻来覆去就那么几样,所以我想下定决心自己亲手实现一次模型训练和生成过程,这样一旦我把整个工程的流程走通,我就可以按照自己的兴趣爱好,搜集相应的图片生成自己想要的内容了(嘻嘻懂得评论区打 666 ),所以才有了本文的内容。

2025-06-10 09:08:34 1085

原创 中秋元素之文搜图

临近佳节,也要努力学习哦。大家都知道中秋有很多节日元素,像等,为了能够准确地找出语义相关的图片,本文构建了一个简易的双塔深度学习模型,使用自然语言来搜索相关的图像。该模型地主要架构思路是,将图像及其文本内容的表示投影到相同的嵌入空间中,使得文本嵌入在所描述的图像的嵌入附近,最后通过计算向量相似度返回topk个图片即可。

2025-06-06 09:16:50 730

原创 Transformer 实现图像标注

在本文中,我们使用的数据集是Flickr8k,它包含了 8000 张不同主题的图像,每张图像有 5 个不同的文本描述。

2025-06-06 09:15:53 479

原创 Pycharm 连接 WSL 中安装的 tensorflow-2.12.0

tensorflow > 2.10 的 cpu 和 gpu 版本不进行区分,里面既有 cpu 版本又有 gpu 和 tpu 版本,所以只需要简单装一个 tensorflow 即可,但是想在 window 中使用 tensorflow>2.10 的 gpu 版本必须要在 wsl 环境下进行环境的搭建,同时为了开发方便,使用 pycharm 专业版配置连接 wsl 环境中的虚拟环境即可。

2025-03-31 12:01:06 998

原创 单机多卡分布式训练策略——MirroredStrategy

训练开始前,该策略在 N 个 GPU 上各复制一份完整的模型备份;每次训练传入一个 batch 的数据,将数据分成 N 份,分别传入 N 个计算设备(即数据并行);N 个计算设备在自己的内存中分别计算自己所获得数据的模型梯度;使用分布式计算的All-reduce操作,在所有 GPU 间高效交换梯度数据并进行求和,使得最终每个设备都有了所有设备的梯度之和;使用梯度求和的结果更新各个 GPU 中的模型权重;因为该策略是同步的,所以只有当所有设备均更新模型后,才进入下一轮训练。

2025-03-31 11:32:10 569

原创 tensorflow 2.10 实现 AutoEncoder 生成图像

使用 tensorflow 2.10 实现 AutoEncoder 模型,还原生成 MNIST 图片。

2025-03-28 14:33:04 426

原创 使用 Transformer 完成 IMDB 情感分类任务

本文使用简单的 Transformer Block 实现对影评文本数据 IMDB 的情感分类任务。

2025-03-25 09:11:07 472

原创 使用一维卷积完成时序数据的分类

本文主要使用一维的卷积神经网络完成时序数据的分类任务,使用的数据主要来自于的 FordA 数据集。

2025-03-25 09:10:35 680

原创 LSTM 预测苹果公司收盘价并进行回测

最近学习量化交易,所以试着写一个回测脚本。本文使用的是苹果公司的历史股票数据,定义了一个简单的回测策略,先使用历史股票数据进行回测,然后再使用模型预测的股票数据进行回测。

2025-03-24 16:32:02 713

原创 使用 Pruning 技术对模型大小进行压缩

Sequential。

2025-03-24 16:30:57 1150

原创 mini GPT 实现文本生成

本文主要展示了如何实现微型的 GPT 模型完成文本生成任务,该模型只由 1 个 Transformer 块组成。

2025-03-21 15:02:04 1170

原创 MobileNet+Milvus 完成对街景图片的精确搜索(二)

书接上回,这次我对图像进行了复杂的变换操作,然后使用相关技术完成图片的精确搜素。

2025-03-19 09:00:12 976

原创 MobileNet+Milvus 完成对街景图片的精确搜索

最近遇到了一个需求,就是在一批街景图片数据中,输入一张图片进行比较精确的图片搜索。之前本来想使用孪生网络来解决这个问题,但是(上一篇文章写了这个,感兴趣的同学可以前往)需要同时输入一对图片,这是个缺陷(也可能是我的能力有限想偏了),好像不能解决我的问题。我的需求只能是输入一张图片,然后在图片库中进行搜索,所以经过试验,想到了使用tfhub中预训练的模型MobileNet对图片库中所有的街景图片先进行特征提取,然后将特征提取结果存入向量引擎Milvus。

2025-03-19 08:58:06 574

原创 tensorflow 孪生网络计算卫星图像的相似度

首先需要说明的是我自己将数据进行了处理,放到了 maps 目录之下,总共有 6582 张图像,每张图像会通过随机旋转得到两个不同的图像(这里只是为了实现简单的任务,只是对原图像进行了旋转,如果是比较复杂的任务,需要将图像经过反转、放缩、仿射、裁切等操作),并且这三个图像的名字是三个相连的数字,也就是说文件夹中每 3 个相连的图片是有关系的一组图片。索引为 9 的验证集数据和预测标签如下,可以看出这两个图片与预测值是对的,很明显这两个是相关的图像,右边的图像是左边图像经过向左旋转得到的。

2025-03-18 08:35:31 1077

原创 tensorflow 实现图像搜索引擎

获取相似的图像是当下搜索引擎的一个重要功能,在本次任务中,我使用 LSH 算法,在预训练图像分类模型 Bit 基础上,实现简单的图像搜索功能。实现过程比较简单,容易理解,是个值得上手练习的案例。

2025-03-18 08:32:24 586

原创 leetcode 2353. Design a Food Rating System(python)

时间复杂度主要消耗在 c2f 中的 SortedSet 的排序上,时间复杂度为 O(NlogN)。先分析 highestRated 函数,它的主要功能是返回 cuisine 菜系中评分最高同时字典顺序最小的菜名,我们为了便于取菜系对应的菜,肯定要用到字典,但是菜系对应的菜要根据分数和名字排序,我们可以借用 SortedSet 的数据结构来解决,我们定义为 c2f ,这样就可以直接调用结果值,时间复杂度为 O(1)。整个解法的时间复杂度为 O(NlogN) ,空间复杂度为 O(N)。

2024-12-12 11:05:32 536

原创 leetcode 2354. Number of Excellent Pairs(python)

从上面可以发现其实题目中要求的运算可以转化为两个数字的二进制表示中出现的 1 的个数之和。我们先将 set(nums) 中的每种数字算出其自身的二进制表示的 1 的个数,然后我们对其进行计数为 counter ,counter 中的 key 是可能出现的 1 的个数,value 表示的是能出现二进制中 1 的个数为 key 的不同十进制数字的个数。返回不同的优秀数字对的数量。函数 c 的时间复杂度基本是常数级别,主要的时间耗在了双重循环上面,时间复杂度为 O(N^2) ,空间复杂度为 O(N)。

2024-12-12 11:05:00 355

原创 leetcode 2357. Make Array Zero by Subtracting Equal Amounts(python)

在写代码的时候有些细节需要注意,时间复杂度为 O(NlogN) ,空间复杂度为 O(1)。根据题意,给定一个非负整数数组 nums。返回使 nums 中的每个元素都等于 0 的最小操作数。您的支持是我最大的动力。

2024-12-09 09:09:24 428

原创 leetcode 2358. Maximum Number of Groups Entering a Competition(python)

上面的写法比较啰嗦,我们可以换一个更简单的思路,我们已经知道了想要构成 n 组,就需要 n(n+1)//2 个人的成绩才行,而我们手上只有 N 个成绩,所以我们先构造出一个数组 L , L[i] 就是构造 i 个组需要的成绩数量,然后我们使用手上的 N 找到 L 中大于等于 N 的数字的索引 i ,如果 L[i] 刚好等于 N 说明刚好能组成 i 组直接返回即可,如果 L[i] 大于 N 说明不能组成 i 组返回 i-1 即可。时间复杂度为 O(NlogN),空间复杂度为 O(N)。

2024-12-09 09:08:51 763

原创 leetcode 2359. Find Closest Node to Given Two Nodes(python)

返回从 node1 和 node2 都可以到达的节点的索引,使得从 node1 到该节点的距离与从 node2 到该节点的距离之间的最大值最小化。如果有多个答案,则返回索引最小的节点,如果不存在可能的答案,则返回 -1。如果没有出边,则 edges[i] == -1。我们定义 BFS 函数,分别找出 node1 和 node2 到可达节点的距离列表 L1 和 L2 ,如果不存在可达距离则为 inf ,这两个列表长度一样,所以直接遍历对应的元素,找出最小的最大值的索引,这个索引就是题目中要找的节点索引。

2024-11-29 16:15:08 1127

原创 leetcode 2360. Longest Cycle in a Graph(python)

该图用给定的大小为 n 的 0 索引数组 edges 来表示,表示从节点 i 到节点 edges[i] 有一条有向边。该图用给定的大小为 n 的 0 索引数组 edges 表示,表示从节点 i 到节点 edges[i] 有一条有向边。我们先用字典 d 找出路每个节点的下一个节点,定义 memo 来记录已经遍历过的节点,然后使用 BFS 来依次从 0 节点开始找可能存在的环的长度,并不断更新最后的结果 result ,遍历完所有的节点之后返回 result 即可。如果不存在循环,则返回-1。

2024-11-29 16:14:33 388

原创 leetcode 2363. Merge Similar Items(python)

这道题其实就是考察字典的常规统计应用,我们分别遍历 items1 和 items2 中的 value 和 weight ,是用字典 d 对 value 的 weight 进行统计,然后将得到的 d 中的键值对变化为列表存到 result 中,最后对 result 进行生序排序返回即可。返回一个二维整数数组 ret,其中 ret[i] = [valuei, weighti],其中 weighti 是所有值为 valuei 的项目的权重之和。时间复杂度为 O(N) ,空间复杂度为 O(N)。

2024-11-28 16:36:38 407

原创 leetcode 2364. Count Number of Bad Pairs(python)

所以总的对数就是 N * (N-1) // 2 ,然后我们计算正确的对数,根据公式我们知道 nums[i] - i == nums[j] - j 即可,其实 i 就是 j ,我们去计算每个元素减去其索引的结果 nums[i] - i 即为 k ,k 出现的次数为 v ,然后使用计数器统计找出出现次数大于 1 说明有能组成 v*(v-1)//2 个正确对,我们将出现不同 k 的所有的正确对数计算出来,再使用总的对数减去所有正确的对数就能算出来错误的对数有多少。返回以 nums 为单位的错误对的总数。

2024-11-28 16:35:59 293

原创 AutoDL.com 使用教程

#AutoDL #GPU #租显卡

2024-11-12 11:10:20 632

原创 leetcode 2365. Task Scheduler II(python)

根据题意,给定一个 0 索引的正整数数组 tasks ,表示需要按顺序完成的任务,其中 tasks[i] 表示第 i 个任务的类型。另外还给到一个正整数 space ,它表示在完成某一项任务后必须休息的最少天数,然后才能执行另一项相同类型的任务。其实这道题我们直接按照题意进行模拟过程即可。时间复杂度为 O(N) ,空间复杂度为 O(N)。返回完成所有任务所需的最少天数。您的支持是我最大的动力。

2024-10-16 09:39:54 510 1

原创 leetcode 2366. Minimum Replacements to Sort the Array(python)

其实这道题就是考察贪心,我们想要最后的结果是非递减顺序,那就只需要从前往后进行变化,并且使得变化后的最小数字最大即可。根据题意,给你一个 0 索引的整数数组 nums。在一个操作中,您可以将数组中的任何元素替换为任何两个相加的元素。返回以非递减顺序排序的数组的最小操作数。时间复杂度为 O(N) ,空间复杂度为 O(1)。您的支持是我最大的动力。

2024-10-16 09:36:47 638

原创 leetcode 2367. Number of Arithmetic Triplets(python)

其实这道题目说过 nums 元素严格递增,这里面已经暗示了所有的 nums 元素都是不同的,然后我们只需要遍历 nums 中的每个元素 x ,如果 x-diff 存在于 nums 中并且 x+diff 存在于 nums 中,那就说明这个三元组是唯一的,结果 result 加一即可,遍历结束返回 result。当然了,因为我们知道了 nums 中的元素都不同,为了提高速度,我们可以把 nums 变成集合,这样我们在查找元素的时候时间复杂度为 O(1) ,整体的时间复杂度变成了 O(N)。

2024-10-15 10:35:16 504

原创 leetcode 2368. Reachable Nodes With Restrictions(python)

其实这道题考察的就是 BFS ,我们首先要遍历所有的 edges ,将节点之间的边保存到字典 d 中,然后我们定义一个集合来保存可以访问的节点集合 result ,然后我们使用 BFS 的思路从节点 0 开始不断去访问非 restricted 的节点,并不断保存入 result 中,遍历结束我们返回 result 得长度即可。根据题意,有一棵无向树,其 n 个节点标记为从 0 到 n - 1 和并且有 n - 1 条边。返回可以从节点 0 开始可以到达的所有节点数,而无需访问受限节点。

2024-10-15 10:34:45 502

原创 leetcode 2369. Check if There is a Valid Partition For The Array(python)

这道题其实就是考察动态规划,我们可以定义 dp ,dp[i] 表示前 i+1 个字符是否能分割合法,然后我们先使用上述的三条规则对 dp 前三个元素进行判断,然后我们再从 nums 的第四个元素开始不断遍历,并且回顾并判断 dp[i-1]、dp[i-2]、dp[i-3] 和 nums[i-2]、nums[i-1]、nums[i] 之间的关系是否合法来更新 dp[i]。根据题意,给定一个 0 索引的整数数组 nums。如果 nums 经过划分后的所有子数组符合上面条件返回 true。

2024-10-14 09:17:03 888

空空如也

空空如也

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

TA关注的人

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