- 博客(415)
- 问答 (6)
- 收藏
- 关注
原创 python的format易混淆的细节
之前使用format特性将提示词模板进行了优化,但是优化后总是有字符串解析错误。我是通过固定模板,大模型回复成json格式的字符串,之后进行处理。加上了format后,大模型回复的就是单引号形式,而json处理要求双引号形式。在python中,会将双引号包裹的自动转为单引号。
2025-08-09 10:03:11
76
原创 大模型部署、nvidia-smi、token数
而且,GPU在处理稀疏张量等任务时,部分计算可能属于无效或填充操作,这些操作会被计入利用率,但当任务量增加后,这些无用计算可转化为有效计算,从而在利用率不变的情况下提升实际性能。在调用大模型时,存在系统提示词和用户提示词,一般提示词token是两者的相加,系统提示词和用户提示词的开始和结束以特殊分隔符进行分隔。这个是模型上下文窗口的最大长度限制,即模型能处理的最大输入和输出token数量,是模型或服务层的静态配置。最终发现,没有加其他设置,显存拉满,gpu在跑上面的推理时的利用率为百分之七十多。
2025-08-04 21:02:31
833
原创 pytorch深度学习全流程:以简易数据、模型介绍
在更新模型参数之前并不是等待处理整个数据集,而是会处理较小批量的数据,一次处理一个批次。但是在评估过程中,不希望模型的输出具有随机性,即希望所有的神经元参与计算。训练过程中,Dropout层会按照概率随机将一部分神经元的输出置为0,BatchNorm层会使用当前mini-batch的均值和方差来对数据进行归一化。测试集在模型训练和调参的整个过程中都应被严格隔离,只在最后评估时使用一次,以确保评估结果的公正性和无偏性。推荐的方法是将模型训练后的参数进行保存,部署时将参数进行加载。则会学到非最优的模型参数。
2025-08-03 19:25:26
1260
原创 pytorch的 Size[3] 和 Size[3,1] 区别
今天参考d2l-zh-pytorch做循环神经网络中第一个练习时,没有导入d2l库(之前遇到到跟本地numpy冲突),部分需要d2l库的部分采用手搓,发现损失总是不收敛,跟预期极大。经过不断排查,发现是。在张量中,维度是用来表示数据结构的多维性。标量(scalar)是一个具有单一值的张量。这个上面的x是二维张量(向量),单个x元素是一维张量,维度为1。这个上面的x是一维张量(向量),单个x元素是标量,没有维度。这是由于我没有考虑到张量和标量的区别。这里的x就是为标量,它没有维度,所以是。
2025-08-02 16:00:51
231
原创 python中高效构建提示词
在做大模型应用项目时,经常需要处理system_prompt和user_prompt这两个提示词,对于样例、用户输入的query等需要填入。用最普通的拼接虽然很快,但是后期迭代会有些心智负担。f-string也可以用来表示,但是对于提示词构建来说不如format好使,毕竟少个啥没有被动态填充难以直观看出来(包裹的当作字符串,而不是要填充的内容,这个时候可以用。,xxx表示用其他变量动态填充到xxx这里。有非常多的使用方法,可以自行搜索了解。方法,将内容动态填充到字符串中。在提示词构建中,通常用的是。
2025-07-31 23:33:46
157
原创 python的异步、并发开发
它是一种逻辑上的“同时”,通过任务切换和调度实现,例如在单核处理器上通过时间片轮转技术让多个任务交替运行。Master进程管理这worker进程,如果worker进程挂了,Master会再产生相应的worker进行。在传统的同步模型中,当发起请求后,程序会立刻停下来,阻塞在这里,什么也不做,直到下载完成。这个对象本身不执行任何代码,它更像是一个“任务蓝图”或“一个可以稍后执行的任务”。修饰的函数,它定义的不是一个普通的函数,而是一个。异步和并发,之前没有搞过,属于是现学,记录一下。来部署,以支持并发处理。
2025-07-30 21:56:25
326
原创 python中的 @dataclass
但是将配置以特定字段顺序打印却很繁琐,要么需要实现类,要么以Dict+大量硬编码实现,同时也伴随着需求的不断变化。的东西,原来是简单的字符串formatter格式,现在要转为json格式,同时要传入不同字段并以特定顺序进行打印。传统上,定义一个只用来存储数据的类时,需要手动实现。是Python3.7引入的标准库功能,位于模块。装饰器要求必须字段必须在可选字段的前面。方法进行处理,极大的简化了开发效率。今天写日志模块时,需求需要将常见的。中,是用来简化数据类定义的装饰器。能自动生成这些方法。
2025-07-29 22:57:08
288
原创 python导包机制-更优方式
在app.py中可以使用来进行导入。之前我导入时是形如.modules.b这种形式(前面有),但是当导入的是上上级目录中的文件时异常难以导入。经过不断了解,才发现之前我导入的方式不够好。上述导包方式使得用python开发更像是在进行主流的前后端开发,心智负担很小,开发更加便捷。本文对上述导包方式进行记录,防止之后再犯蠢。包是存放多个模块的目录。在python3.3之前需要显示声明文件,之后版本不强制要求声明。
2025-07-28 22:16:31
567
原创 网页jupyter如何显示jpipvenv虚拟环境
但是发现pipvenv虚拟环境解释器在jupyter中只有一个Python3:ipykernel版本,没有venv和conda的虚拟环境。因此在网上搜寻资料,作为备份记录。今天使用社区版pycharm编辑。文件时,发现pycharm编辑。文件中可以切换到虚拟环境了。以windows为例。
2025-05-12 22:03:06
337
原创 numpy的随机数生成器
是 NumPy 1.17.0 引入的默认随机数生成器,它基于。更灵活,支持更先进的随机数生成方法,并允许更方便地切换不同的。,提供更快、更安全的随机数生成方式。来创建随机数生成器。设置种子可以保证可复现性。
2025-03-03 13:42:31
285
原创 机器学习:强化学习的epsilon贪心算法
强化学习(Reinforcement Learning, RL)是一种机器学习方法,旨在通过与环境交互,使智能体(Agent)学习如何采取最优行动,以最大化某种累积奖励。它与监督学习和无监督学习不同,强调试错探索(Exploration-Exploitation)以及基于奖励信号的学习。强化学习任务通常用马尔可夫决策过程来描述:机器处于环境E中,状态空间X,其中每个状态x∈X是机器感知到的环境的描述,机器能采取的动作构成了动作空间A,若某个动作a∈A作用在当前状态x。
2025-02-27 16:15:42
1632
原创 数据结构:树的概念
树的概念:树是n个结点的有限集合,有且仅有一个被称为根的结点。当n1时,其余结点可分为互不相交的有限集合,其中每个集合本身又是一颗树。有序树:树中结点各子树从左到右是有次序的,不能交换。无序树:~森林是m棵互不相交的树的集合。。
2025-02-27 10:29:48
955
原创 大语言模型概念科普
这些模型可以通过大量的数据和参数进行训练,以生成人类类似的文本或回答自然语言的问题。在AI大模型中,Prompt的作用主要是给AI模型提示输入信息的上下文和输入模型的参数信息。在使用大语言模型时,总会看到token一词,调用大模型api是根据token的使用数进行付费。与当前的人工智能(AI)相比,AGI 不是专门针对某个任务(如语言生成、图像识别),而是具备。大模型(Large Model)是指具有大规模参数和复杂计算结构的机器学习模型。文字、图片、音频、视频等多种内容的人工智能系统。
2025-02-26 17:13:52
1204
原创 Python对象引用及global、nonlocal关键字使用
对象的生命周期由引用计数机制管理。当一个对象的引用计数变为零时,该对象会被垃圾回收。在使用python做算法题时,有时会遇到一些问题,如:有的需要。当创建一个变量并赋值时,实际上是在创建一个指向该值的引用。关键字可以使局部空间中与全局变量名一致的变量更改为全局变量。指向的对象引用没有改变,而只是对象进行扩展。限定变量,有时却不需要。就是对象引用,所以会不一样。的对象引用赋值给局部变量。中打印的是原来的全局变量。,那么得到的会不一样。所指向的引用对象,所以。的引用赋值给全局变量。内当作新的局部空间。
2025-02-18 09:08:26
330
原创 Python 中的 configparser 模块详解
在 Python 开发中,我们经常需要使用配置文件来存储配置信息,例如数据库连接、日志级别或 API 密钥等。模块是 Python 标准库的一部分,它提供了对。格式配置文件的读取和写入支持。创建新的配置文件或修改已有配置。
2025-02-17 09:41:35
298
原创 机器学习:k近邻
K 邻近算法(K-Nearest Neighbors,简称 KNN)是一种经典的机器学习算法,主要用于分类和回归任务。它的核心思想是:给定一个新的数据点,通过查找训练数据中最接近的 K 个邻居,并根据这些邻居的标签来预测新数据点的标签。KNN 是一种(Instance-based learning)算法。在训练阶段,它并不构建显式的模型,而是将训练数据存储起来,在预测阶段计算待预测点与训练集中所有点的距离,然后选择 K 个最近的邻居,根据邻居的标签进行投票或平均来做出预测。KNN 的优点在于其。
2025-02-16 16:34:35
720
原创 机器学习PCA和LDA
主成分分析(PCA, Principal Component Analysis)和线性判别分析(LDA, Linear Discriminant Analysis)是两种常用的降维方法,它们虽然都用于数据降维,但核心思想和应用场景不同。
2025-02-16 13:28:27
848
原创 机器学习:k均值
在“无监督学习”中,训练样本的标记信息是未知的,目标是通过对无标记训练样本的学习来揭示数据的内在性质及规律,为进一步的数据分析提供基础,较为经典的是聚类。**聚类试图将数据集中的样本划分为若干个通常是不相交的子集,每个子集称为一个“簇”。**聚类既能作为一个单独过程,用于找寻数据内在的分布结构,也可以作为分类等其他学习任务的前驱过程。距离计算:pu1∑n∣xiu−xju∣p无序属性:VDM(Value Difference Metric)i1∑k。
2025-02-15 14:55:02
972
2
原创 面试准备-排序部分:快速排序、堆排序
堆排序是一种基于比较的排序算法,利用了堆这种数据结构(通常是二叉堆)来完成排序。快速排序是一种基于**分治思想(Divide and Conquer)**的排序算法。:如果每次选择的基准导致极端不均匀划分(如已排序数组选择最左/最右元素),递归深度达到。**原地排序版本(Hoare 版)**的快速排序只需要。递归调用栈的空间复杂度为。:每次都能将数组均匀划分,递归深度为。,可能会改变相同元素的相对顺序。:随机选取基准时,通常能保证。,可以减少栈的使用深度。快排的时间复杂度取决于。
2025-02-10 20:50:08
423
原创 机器学习:朴素贝叶斯分类器
贝叶斯决策论是概率框架下实施决策的基本方法,对分类任务来说,在所有相关概率都已知的理想情形下,贝叶斯决策论考虑如何基于这些概率和误判损失来选择最优的类别标记。贝叶斯决策论通过结合先验知识和观测数据,使用贝叶斯定理计算后验概率,从而做出最优决策。但是对于类条件概率P(x|c)来说,涉及了关于x所有属性的联合概率,因此很难进行估计。,当训练集包含充足的独立同分布样本时,P©可以通过各类样本所占的比例来进行估计。贝叶斯定理是贝叶斯决策论的基础,描述了如何根据新的证据更新先验概率,
2025-02-09 17:02:43
1344
原创 集合的 子集枚举
个元素选出不同的集合。可以发现,对于单个元素来说,只有选和不选,即一共有。当当前子集状况整个遍历完成之后,就得到了一共子集集合。可以对数组进行排序。由于只有两种情况,当。如果元素有重复,那么要怎么做呢?个元素相同,则也不应该被选择。这一题中的元素是不重复的。的元素没有被选择,而第。
2025-02-05 09:39:59
265
原创 python的ruff简单使用
Ruff 是一个用 Rust 编写的高性能 Python 静态分析工具和代码格式化工具。它旨在提供快速的代码检查和格式化功能,同时支持丰富的配置选项和与现有工具的兼容性。是用rust实现的python Linter&Formatter。它可以作为代码检查工具和代码格式化工具使用。代码格式化采用单引号、缩进使用。
2025-02-03 21:50:51
1033
原创 python的pre-commit库的使用
pre-commit 是一个强大的工具,它可以帮助我们在提交代码到版本控制系统(如 Git)之前自动运行一系列的代码检查和格式化操作。通过这种方式,我们可以确保每次提交的代码都是干净的、格式化的并且符合项目的编码标准。例如,在 Git 中,你可以设置一个 hook 在提交前运行。pre-commit 利用了 Git 的这一特性,允许用户定义一组钩子(hook),这些钩子会在提交之前自动执行。如果之后有修改,不需要再次安装,会自动采用最新的yaml或者自定义hooks来运行。安装完成之后,首先在根目录创建。
2025-02-03 21:40:42
601
原创 pandas的melt方法使用
方法用于将宽格式(wide format)的 DataFrame 转换为长格式(long format)的 DataFrame。这种转换在数据处理和可视化中非常有用,尤其是在处理多列数据时。表,查询每个产品在不同商店的价格,使得输出的格式变为。如果这一产品在商店里没有出售,则不输出这一行。宽格式 vs 长格式。
2025-02-03 14:45:57
399
原创 pandas的rank方法使用
降序(method=‘dense’)得到排名,之后按照分数由高到低排序并返回即可。方法用于对数据进行排名,它可以根据指定的规则为每个元素分配一个排名值。方法非常灵活,支持多种排名方法,适用于处理数值型数据。编写一个解决方案来查询分数的排名。,所以小值在前,大值在后。同时,排序方式也是默认的。指定排名顺序,默认升序。,所以看到的不是整数。
2025-02-03 10:43:07
538
原创 pandas中的关系型连接操作
其中左连接和右连接是等价的,由于它们的结果中的键是被一侧的表确定的,因此常常用于有方向性地添加到目标表。内外连接两侧的表,经常是地位类似的(左右表位置的交换不引起结果的变化),想取出键的交集或者并集,具体的操作还需要根据业务的需求来判断。的关键特性是它会将每个分组的最大值广播回原始 DataFrame 的形状。也就是说,每个分组中的每一行都会被赋予该分组的最大值。在某些时候出现重复元素是麻烦的,例如两位同学来自不同的班级,但是姓名相同,这种时候就要指定。如果两个表中想要连接的列不具备相同的列名,可以通过。
2025-02-03 10:02:07
1148
原创 pandas中的str使用方法
操作,使其能够像 Python 的字符串方法一样被调用,但支持对整个列或。编写解决方案,修复名字,使得只有第一个字符是大写的,其余都是小写的。如果不在每次字符串操作前显式使用。访问器,就会导致后续的方法调用失败。访问器用于对 Series。只能用于包含字符串类型的。在 Pandas 中,则不正确,因为它缺少。
2025-02-01 20:03:26
439
原创 pandas中的apply方法使用
是逐行或逐列操作的,因此在处理大规模数据时可能较慢。在处理大规模数据时,需注意性能问题,尽量使用向量化操作。用于对 DataFrame 或 Series 中的数据进行逐行或逐列的操作。编写解决方案,计算每个雇员的奖金。函数或自定义函数),并将该函数应用到每一行或每一列上。,表示将每一行或每一列作为 NumPy 数组传递给函数。,将每一行或每一列作为 Series 传递给函数。函数、自定义函数或内置函数。默认是0,将函数应用到每一列。,那么他的奖金是他工资的。表示将函数应用到每一行。
2025-02-01 19:29:25
340
原创 pandas基础学习:常用基本函数
索引排序的用法和值排序完全一致,**只不过元素的值在索引中,此时需要指定索引层的名字或者层号,用参数。方法把年级和姓名两列作为索引,多级索引的内容和索引设置的方法将在第三章进行详细讲解。上面这些所有的函数,由于操作后返回的是标量,所以又称为聚合函数,它们有一个公共参数。排序共有两种方式,其一为值排序,其二为索引排序,对应的函数是。,它们分别返回的是分位数、非缺失值个数、最大值对应的索引。一般而言,替换操作是针对某一个列进行的,因此下面的例子都以。的功能类似,但前者返回了是否为唯一值的布尔列表,其。
2025-01-24 16:05:29
1124
原创 pandas基础:基本数据结构
类型,而选择多列时返回的是 DataFrame 类型。这种行为是设计上的选择,目的是为了提供更灵活的数据操作方式。中,当你从DataFrame中选择列时,选择的方式会影响返回的数据类型。具体来说,选择单列时返回的是。的基础上增加了列索引,一个数据框可以由二维的。其中,索引也可以指定它的名字,默认为空。,在这两种结构上定义了很多的属性和方法。中具有两种基本的数据存储结构,存储一维。一般由四个部分组成,分别是序列的值。代表了一种混合类型。
2025-01-23 21:48:19
272
原创 pandas基础:文件的读取和写入
参数可以是一个整数列表(列的索引位置)、一个字符串列表(列名)或一个布尔值。参数可以是一个整数(列的索引位置)、一个字符串(列名)、一个整数列表或字符串列表。默认不将任何列作为索引。参数可以是一个整数列表(列的索引位置)、一个字符串列表(列名)或一个函数。参数用于指定分隔符(分隔列的字符)。parse_dates:将某些列解析为日期时间格式。参数是一个整数,表示读取的行数。index_col:将某列或多列作为索引列。usecols:指定读取哪些列。nrows:指定读取的行数。sep:自定义分隔符。
2025-01-23 21:12:52
783
原创 机器学习:支持向量机
支持向量机(Support Vector Machine)是一种二类分类模型,其基本模型定义为特征空间上的间隔最大的广义线性分类器,其学习策略便是间隔最大化,最终可转化为一个凸二次规划问题的求解。假设两类数据可以被H=x:wTx+b≥cH = {x:w^Tx + b \ge c}H=x:wTx+b≥c分离,垂直于法向量www,移动HHH直到碰到某个训练点,可以得到两个超平面H1H_1H1和H2H_2H2,两个平面称为支撑超平面,题目分别支撑两类数据。而位于H1H_1H1和H2H_2H2正中间的超平面
2025-01-22 14:36:26
2643
原创 python内置的调试工具-pdb
最近写python代码,当代码逻辑复杂时,总是要检查是否正确运行。但是光用print显得较为麻烦,在网上找到了内置的调试工具pdb,使用起来比print要舒服,因此特来总结一下pdb的使用。pdb有两种使用方法:侵入式(在调试代码中添加一行代码,之后在正常运行)当命令行前面出现(pdb)时,就表示调试工具pdb启动成功。当前所在位置会用->进行标注,表示。
2025-01-22 10:41:13
1583
蓝桥杯常用函数algorithm
2023-04-10
Python Turtle 绘图基础知识
2023-04-10
基于python Streamlit库的机器学习可视化展示
2023-04-10
C语言大作业,ktv点歌系统
2023-04-10
基于公交车环境的密接人员排查系统的设计与实现
2023-04-10
C语言多项式加减乘除实验
2023-04-10
C语言大作业,贪吃蛇项目
2023-04-10
C语言大作业,简易KTV点歌系统
2023-04-10
C语言大作业,模拟KTV点歌系统
2023-04-10
vscode如何插入winmm.lib
2022-06-03
C语言用mmsystem播放音乐
2022-06-02
在vscode上如何用C创建项目
2022-05-28
动态规划 lcs 打印序列
2022-02-08
运行结果及报错内容,如何解决?
2022-01-07
动态二维数组与循环问题
2022-01-02
TA创建的收藏夹 TA关注的收藏夹
TA关注的人