
python
文章平均质量分 90
Python是一种高级的、动态类型的编程语言,它简单易学、易于阅读,并具有强大的标准库和丰富的第三方库。Python的设计哲学强调代码的可读性,并允许程序员用少量代码表达想法。Python的语法清晰、简洁,使得它易于学习,并且适用于多种应用。
109702008
数字人-幺洞勾拐洞两洞洞八
展开
-
使用 librosa 测量《忘尘谷》节拍速度
本文介绍了如何使用Python音频分析库librosa测量刘珂矣演唱的《忘尘谷》的节拍速度(BPM)。通过多个函数示例,展示了不同方法的效果。基础测量函数使用librosa.beat.beat_track检测节拍速度,结果为101.8BPM。优化测量函数通过预设参数和裁剪音频片段提高准确性,结果为101.3BPM。增强型测量函数利用带通滤波聚焦低频节奏,结果为101.3BPM。稳定节拍检测函数通过调整分析粒度提高稳定性,结果为100.4BPM。不同方法的结果在100.4-101.8BPM之间,与实际值有一定原创 2025-05-21 00:15:00 · 294 阅读 · 0 评论 -
在Windows 11和Debian操作系统上使用C语言编写界面程序并调用Python接口的指南
通过上述步骤,我们成功实现了在Windows 11和Debian操作系统上使用C语言编写图形界面程序,并调用了Python编写的接口函数。具体实现方法包括:1. 在Debian和Windows 11系统上安装并配置GTK+和Python开发环境。2. 编写Python接口函数并将其保存在脚本文件中。3. 编写C代码,使用GTK+创建图形界面,并通过Python的C API调用Python函数。4. 通过适当的编译链接,生成可执行文件并运行,最终实现功能。原创 2024-12-08 01:00:00 · 206 阅读 · 0 评论 -
学习 Python 的途径
总的来说,`sys.getsizeof` 返回的值是在特定环境下Python对象的实际内存占用情况,不同的因素如操作系统、Python版本等会影响具体结果。sys.getsizeof 给出的结果包含了对象的基础内存占用和一些额外的开销,因此不同的运行环境(例如不同的操作系统、Python 版本等)会导致结果有所不同。需要注意的是,`getsizeof` 返回的是对象本身的大小,而不是它可能引用的其他对象的大小。例如,对于一个列表,它只返回列表对象本身的大小,不会包括列表中元素的大小。原创 2024-10-15 09:24:14 · 417 阅读 · 0 评论 -
Python 网络爬虫
Python网络爬虫是一个非常强大的工具,可以帮助你从互联网上获取大量数据。通过使用requests和等库,你可以轻松地编写简单的爬虫。对于更复杂的任务,可以考虑使用Scrapy等框架。Python 网络爬虫是一种自动化程序,用于从互联网上抓取特定的信息。一、工作原理发送请求:通过 Python 的网络请求库(如 requests)向目标网站发送 HTTP 请求,获取网页内容。原创 2024-10-13 02:00:00 · 775 阅读 · 0 评论 -
抓取股票数据
获取API Key首先,在[Alpha Vantage官网]()注册并获取API Key。安装库:pip install alpha_vantage示例:Alpha Vantage。原创 2024-09-25 20:14:13 · 1001 阅读 · 0 评论 -
【python】LogStart分析
因为`DefConf`方法创建了一个默认记录器`self.logger=logging.getLogger('Default')`,并不是`PMS` Logger,所以会导致日志记录器没有工作,无法输出日志信息。- 在`__init__方法中,如果提供了配置文件路径(即cfgfile`不是`None`),则会调用`loadconf(cfgfile)`加载配置。- 如果`cfgfile`为`None`,将使用`DefConf`方法提供的默认配置,日志将写入`Default.log`。原创 2024-09-17 07:16:42 · 225 阅读 · 0 评论 -
samba下载的文件内容保存到内存缓存区
首先,我们定义了一个结构体 MemoryStruct 来存储下载的文件内容。上述两个示例分别展示了如何使用 libsmbclient 和 libcurl 来从Samba服务器下载文件,并将文件内容保存到内存缓存区中。其中:- libsmbclient 是一个更底层的库,直接用于与Samba服务器交互。- libcurl 是一个更通用的库,支持多种协议,包括 SMB/CIFS。可以使用Linux的libcurl库来实现Samba下载的文件内容保存到内存缓存区。if(!fp) {原创 2024-09-10 07:52:42 · 491 阅读 · 0 评论 -
【python】中秋主题案例程序
这个程序通过简单的文字描述和用户输入,模拟了一个寻找月饼的小故事。一个简单的Python程序示例,它使用了Python的基本功能来创建一个中秋节的问候程序。这个程序会模拟一个中秋节猜灯谜的活动,用户可以输入答案,程序会判断答案是否正确,并给出相应的提示。该程序能够展示中秋节的传统故事、习俗,并允许用户输入祝福语,最后以特殊的中秋节风格打印出来。程序将显示中秋节的介绍和习俗,然后提示用户输入祝福语,最后将装饰后的祝福语打印出来。这个程序将会是一个简单的互动式故事,关于一个寻找月饼的旅程。原创 2024-09-09 06:32:41 · 595 阅读 · 0 评论 -
如何本地搭建Whisper语音识别模型
Whisper作为一个强大的语音识别工具,可以在本地环境中高效运行。从硬件配置到依赖安装,再到CUDA加速,以上指南涵盖了搭建Whisper语音识别模型的各个步骤。通过本地运行,您可以获得更高的数据隐私和更低的延迟,使其在各种应用场景中表现出色。要在本地搭建Whisper语音识别模型,可以按照以下步骤进行操作:1. 安装依赖:首先,确保你的计算机上已经安装了Python和相关依赖库。原创 2024-08-29 05:29:35 · 1081 阅读 · 1 评论 -
Transformer模型:Postion Embedding实现
Transformer模型中的位置编码(Position Embedding)是一个关键组件,它帮助模型理解序列中单词的位置信息。在 Transformer 模型中,位置编码(Position Embedding)的作用是为模型提供输入序列中各个位置的信息,因为 Transformer 本身并不像循环神经网络(RNN)那样天然地包含位置顺序信息。Transformer模型中的Position Embedding是用于将序列中的每个单词的位置信息嵌入到词嵌入向量中,以便模型能够理解单词之间的相对位置关系。原创 2024-08-22 08:41:40 · 377 阅读 · 0 评论 -
Pip换源
通过以上步骤,你应该能够成功更换pip的下载源,加快安装包的速度。Pip换源是指将Python的包管理工具pip的默认源(通常是Python Package Index,简称PyPI)更改为其他源,以提高下载速度、使用特定的镜像源或避免访问被阻止的源。Pip换源指的是将Python包管理工具pip下载Python包的默认源地址更换为另一个地址,这通常是为了加快安装包时的下载速度,因为默认的源服务器可能位于国外,速度较慢。通过以上方法,你可以轻松地将pip的源切换到国内的镜像源,从而提高包的下载速度。原创 2024-08-08 07:46:09 · 541 阅读 · 0 评论 -
线性队列缓冲
线性队列缓冲主要涉及线性队列(队列的一种实现方式)在缓冲区管理中的应用。线性队列,作为一种先进先出(FIFO)的线性表,允许在一端进行插入操作(队尾),在另一端进行删除操作(队头)。线性队列是一种先进先出(FIFO)的数据结构,其中元素只能从队列的一端(队尾)进入,而从另一端(队头)出去。通过合理地应用线性队列缓冲技术,可以优化系统的性能,提高数据的处理效率,并降低数据丢失的风险。通过使用线性队列缓冲,可以实现高效、安全地管理数据的存储和访问,确保数据按照产生的顺序进行处理,避免数据丢失或错乱的问题。原创 2024-08-04 09:48:56 · 273 阅读 · 0 评论 -
环形缓冲区
环形缓冲区是一种高效的数据结构,广泛应用于处理流数据和实现数据缓存等场景。存储和管理数据:通过环形结构,环形缓冲区可以有效地存储和管理数据,避免数据溢出或浪费。提高数据处理的效率:在处理音频、视频、网络数据流等连续数据时,环形缓冲区可以作为一个缓存,存储即将处理的数据,保证数据的连续性和实时性。解决生产者-消费者问题:在多线程编程中,环形缓冲区可以作为一个共享缓存,解决生产者和消费者之间的数据同步问题。通过控制缓冲区的大小和数据的读写速度,可以有效地解决生产者和消费者之间的速度不匹配问题。原创 2024-08-03 21:33:00 · 352 阅读 · 1 评论 -
基于gunicorn+flask+docker模型高并发部署
通过以上步骤,你已经成功地使用Gunicorn、Flask和Docker实现了一个高并发的部署方案。你可以根据实际需求调整Gunicorn的配置和Nginx的负载均衡策略,以达到最佳性能。原创 2024-08-02 08:40:09 · 646 阅读 · 0 评论 -
python画蜡烛图
根据蜡烛图的数据(开盘价、收盘价、最高价、最低价),使用Matplotlib的plot方法和fill_between方法绘制线条和柱状图来表示蜡烛图的不同部分。4. 使用`mplfinance.plot`函数绘制蜡烛图,其中可以指定一些参数来定制图表,比如图的类型、样式、标题、Y轴标签以及是否显示成交量。请注意,上述示例只是一个简单的框架,实际上绘制蜡烛图可能涉及到更复杂的数据处理和绘图逻辑。在Python中,绘制蜡烛图(也称为OHLC图,即开盘价、最高价、最低价和收盘价图)是金融数据可视化中的常见需求。原创 2024-07-28 10:29:21 · 1319 阅读 · 0 评论 -
agenthub\codeact_agent\codeact_agent.py
_get_messages(self, state: State) -> list[dict[str, str]]: 根据当前状态构建消息列表,发送给LLM模型,提示它执行下一步操作。CodeActAgent 作为一个简化的执行代码操作的智能代理系统,通过整合多种插件和工具,提供了强大的任务执行能力。- get_system_message(): 获取系统消息,包含一些环境配置说明和插件系统的帮助信息。- get_action_message(action: Action): 将操作转换为消息字典。原创 2024-07-22 08:13:12 · 1238 阅读 · 0 评论 -
poetry 使用
Poetry是一个Python包管理和依赖声明工具,旨在让Python项目的打包和依赖管理变得更加简单。它要求Python版本为2.7或3.5+(来源:CSDN博客)。原创 2024-07-20 00:10:46 · 1122 阅读 · 0 评论 -
从零开始!Jupyter Notebook的安装教程
通过以上步骤,你应该已经成功安装并启动了Jupyter Notebook。如果在安装过程中遇到任何问题,欢迎随时提问!希望这个教程对你有所帮助。原创 2024-07-17 05:56:41 · 4087 阅读 · 2 评论 -
agenthub\codeact_agent\action_parser.py
这段代码实现了一个灵活的动作解析系统,能够根据不同的动作标签解析并执行相应的动作。通过使用多个子解析器和一个默认解析器,系统能够处理多种类型的动作,并确保在解析过程中的一致性和正确性。原创 2024-07-17 05:31:38 · 852 阅读 · 1 评论 -
列表 (list)、元组 (tuple)、集合(set)、字典(Dict)
集合运算:集合支持许多标准的数学运算,例如并集(`|` 或 union())、交集(`& 或 intersection()`)、差集(`- 或 difference()`)、对称差集(`^ 或 symmetric_difference()`)等。集合使用花括号 {} 或 set() 函数来表示,但需要注意的是,空集合必须使用 set() 创建,而不是 {},因为后者会被解释为空字典。- 元组(tuple):因为是不可变的,提供的方法相对较少,大多是用于查询的,如 count() 和 index()。原创 2024-07-15 07:02:37 · 2207 阅读 · 2 评论 -
IPython的使用技巧整理
在文件中可以自定义配置,如自动调用自动重新加载模块等。原创 2024-07-14 01:44:17 · 812 阅读 · 2 评论 -
昇思25天学习打卡营|MQ(mindquantum)编程实践
Pix2Pix是基于条件生成对抗网络(cGAN, Condition Generative Adversarial Networks )实现的一种深度学习图像转换模型,该模型是由Phillip Isola等作者在2017年CVPR上提出的,可以实现语义/标签到真实图片、灰度图到彩色图、航空图到地图、白天到黑夜、线稿图到实物图的转换。生成器和判别器。传统上,尽管此类任务的目标都是相同的从像素预测像素,但每项都是用单独的专用机器来处理的。原创 2024-07-14 00:11:33 · 1196 阅读 · 0 评论 -
昇思25天学习打卡营第23天|K近邻算法实现红酒聚类
K近邻算法(K-Nearest-Neighbor, KNN)是一种用于分类和回归的非参数统计方法,最初由 Cover和Hart于1968年提出(Cover等人,1967),是机器学习最基础的算法之一。它正是基于以上思想:要确定一个样本的类别,可以计算它与所有训练样本的距离,然后找出和该样本最接近的k个样本,统计出这些样本的类别并进行投票,票数最多的那个类就是分类的结果。KNN的三个基本要素:K值,一个样本的分类是由K个邻居的“多数表决”确定的。K值越小,容易受噪声影响,反之,会使类别之间的界限变得模糊。原创 2024-07-11 12:18:33 · 1055 阅读 · 2 评论 -
python自动化内存管理
引用计数通过跟踪对象的引用情况来决定内存的释放,循环引用检测则解决了循环引用带来的内存泄漏问题。当垃圾回收器发现一个对象的引用计数为0,但它包含一个循环引用时,它会使用循环引用检测算法来判断这个对象是否仍然可以访问到。每个对象都有一个引用计数,当有新的引用指向该对象时,计数增加;Python 使用引用计数作为主要的垃圾回收机制,意味着对象被创建时会有一个引用计数器,当新的引用指向该对象时,计数器增加;引用计数的优势在于它是一种轻量级的内存管理机制,对于很多短暂的对象,只有引用计数的方式已经足够高效。原创 2024-07-01 06:05:40 · 3002 阅读 · 2 评论 -
昇思25天学习打卡营第12天|文本解码原理--以MindNLP为例
Beam search通过在每个时间步保留最可能的 num_beams 个词,并从中最终选择出概率最高的序列来降低丢失潜在的高概率序列的风险。Top-K Sampling和Top-P Sampling:进一步优化采样过程,分别限制采样空间至最高概率的K个词或累计概率达到P的词集合,平衡生成的可控性和创新性。示例:以生成序列"The nice woman"为例,虽然每个步骤都选择了局部最优,但可能错过了整体概率更高的序列("The","dog","has")。增加高概率单词的似然并降低低概率单词的似然。原创 2024-06-30 00:08:11 · 915 阅读 · 0 评论 -
昇思25天学习打卡营第11天|基于MindSpore通过GPT实现情感分类
【代码】基于MindSpore通过GPT实现情感分类。原创 2024-06-29 11:33:55 · 1325 阅读 · 1 评论 -
SyntaxWarning警告
为什么conda环境运行hipcc vector_add.cpp -o vector_add -v会出现:"))而退出conda环境hipcc vector_add.cpp -o vector_add -v就不会出现上面的SyntaxWarningconda环境的python版本是3.12,退出conda环境python版本是3.10。原创 2024-06-23 10:12:14 · 2751 阅读 · 2 评论 -
大语言模型系列-Transformer
自动生成文章或新闻的摘要。原创 2024-06-22 03:35:52 · 1613 阅读 · 1 评论 -
在AMD GPUs上构建解码器Transformer模型
在这篇博客中,我们展示了如何使用PyTorch 2.0和ROCm在单个节点上的单个和多个AMD GPU上运行。我们使用莎士比亚的作品来训练我们的模型,然后进行推理,看看我们的模型是否能生成类似莎士比亚的文本。GPT模型的核心是仅解码器的Transformer架构。这种架构一次生成一个输出令牌(在我们的例子中是字符),以自回归的方式,意命着每个生成的令牌都依赖于之前生成的令牌。为了更深入地了解这个模型的工作方式,我们强烈推荐回顾:• Andrej Karpathy的视频《• 论文《原创 2024-06-18 01:36:07 · 1872 阅读 · 1 评论 -
大型语言模型在AMD GPU上的推理优化
在这篇博客中,我们介绍了几种软件优化技术,用于在AMD CDNA2 GPUs上部署最先进的大型语言模型(LLMs)。这些包括PyTorch 2编译、Flash Attention v2、`paged_attention`、PyTorch TunableOp以及多GPU推理。这些优化技术已经被AI社区广泛采纳。使用这些优化,根据批量大小和输入序列长度,你可以享受高达三倍的即开即用加速。原创 2024-06-18 01:33:56 · 1503 阅读 · 0 评论 -
LoRA用于高效微调的基本原理
用于解决微调大型语言模型(LLMs)的挑战。GPT和Llama等拥有数十亿参数的模型,特定任务或领域的微调通常成本高昂。LoRA保留了预训练模型权重,并在每个模型块内添加可训练层。这显著减少了需要微调的参数数量,并大幅减少了GPU内存需求。LoRA的关键优势在于它大大减少了可训练参数的数量——有时高达10000倍——从而显著减少了GPU资源的需求。原创 2024-06-17 07:15:38 · 1296 阅读 · 1 评论 -
增强大型语言模型(LLM)可访问性:深入探究在单块AMD GPU上通过QLoRA微调Llama 2的过程
基于之前的博客的内容,我们深入研究了一种称为量化低秩调整(QLoRA)的参数高效微调(PEFT)方法。本次重点是利用QLoRA技术在单块AMD GPU上,使用ROCm微调Llama-2 7B模型。通过使用QLoRA,可以解决内存和计算能力限制方面的挑战。本次探索旨在展示如何利用QLoRA来增强对开源大型语言模型的可访问性。原创 2024-06-16 16:33:57 · 1672 阅读 · 8 评论 -
用LoRA微调 Llama 2:定制大型语言模型进行问答
在生成性AI(GenAI)的动态领域中,微调LLMs(如Llama 2)带来了与大量计算和内存需求相关的独特挑战。LoRA提出了一个引人注目的解决方案,允许快速且经济高效地对最先进的LLMs进行微调。这种突破性的能力不仅加快了调整过程,也降低了相关成本。为了探索LoRA的好处,我们将提供一个关于使用LoRA对Llama 2进行微调的全面教程,该教程特别适用于AMD GPU上的问答(QA)任务。原创 2024-06-16 15:13:37 · 1444 阅读 · 0 评论 -
FLAN-T5模型的文本摘要任务
FLAN-T5是谷歌发布的一个开源大型语言模型,相较于之前的T5模型有所增强。它是一个已经在指令数据集上进行预训练的编码器-解码器模型,这意味着该模型具备执行诸如摘要、分类和翻译等特定任务的能力。有关FLAN-T5的更多详情,请参考[原始论文](要查看模型相对于之前的T5模型的完整改进细节,请参考[这个模型卡片](原创 2024-06-15 07:34:28 · 817 阅读 · 0 评论 -
在AMD GPU上加速大型语言模型的Flash Attention
Flash Attention是一种快速且内存效率高的自注意力实现方式,精确且对硬件有意识。在本文中,我们演示了如何安装支持ROCm的Flash Attention,并以两种方式对其性能进行了基凌测试:1. 作为一个独立模块,来测量Flash Attention算法相对于SDPA的速度提升。2. 在Hugging Face中对多个LLMs的端到端预填充延迟进行评估,来衡量Flash Attention对模型整体预填充延迟的影响。原创 2024-06-09 08:54:10 · 1527 阅读 · 1 评论 -
解决cannot import name ‘prepare_model_for_int8_training‘ from ‘peft‘ 错误
出现“cannot import name ‘prepare_model_for_int8_training‘ from ‘peft‘”错误通常表示你尝试从 Python 包 peft 导入一个不存在的函数 prepare_model_for_int8_training。如果在尝试上述建议后问题仍未解决,你可能需要提供更详织的信息,例如 peft 包的版本号、安装方式或是你尝试导入该函数的代码片段,以便能够提供更具体的帮助。请检查你是否安装了正确的包,并检查你的环境路径是否包含了该包。原创 2024-05-30 18:55:10 · 3155 阅读 · 3 评论 -
情感分析及数据集代码解析
11. 最后定义了一个函数`load_data_imdb`,它下载数据集、读取数据、分词、建立词汇表、处理文本为固定长度的序列,并返回训练和测试的数据迭代器以及词汇表供后续的神经网络模型使用。标签为'neg'表示消极的评论,使用0表示。7. 准备数据迭代器:数据被截断或填充至指定的序列长度(这里是500个单词),然后使用`d2l.load_array`函数将处理后的数据和标签封装成小批量的数据迭代器。1. 导入所需的包和模块,如`os`、`torch`、`nn`以及一个定制的深度学习库`d2l`。原创 2024-05-28 11:52:29 · 858 阅读 · 2 评论 -
使用LoRA进行高效微调:基本原理
选择一个预训练的神经网络模型,例如ResNet、Transformer等。为了简单起见,您可以选择一个轻量级的卷积神经网络(CNN)。原创 2024-05-26 07:25:33 · 7496 阅读 · 6 评论 -
ROCm上来自Transformers的双向编码器表示(BERT)
需要注意的是,这个代码片段作为一个解析,但实际中运行它需要额外的上下文(例如 MaskLM 类的实现)和适当的数据准备和预处理步骤。9. 模型实例化后,通过随机生成的 tokens 和 segments 调用其 forward 方法,得到编码后的向量 encoded_X,同时执行MLM和NSP任务,输出预测结果。6. MaskLM 类未在代码中定义,通常用来实现BERT的掩码语言模型任务,它在一定比例的输入词元上应用掩码,并训练模型来预测这些被掩码的词元。原创 2024-05-26 07:24:28 · 1002 阅读 · 0 评论 -
ROCm上情感分析:使用循环神经网络
LSTM层(`encoder`)设定为双向,输出经过全连接层(`decoder`)得到最终的分类结果。整体来看,这段代码主要是利用循环神经网络对电影评论的情感进行分类,它通过加载预训练好的词向量,构建一个双向LSTM网络,并在IMDB评论数据集上进行训练和测试。加载IMDB电影评论数据集,并用迭代器`train_iter`和`test_iter`进行训练和测试。`vocab`是数据集的词汇表。这里导入了PyTorch库、神经网络模块`nn`和基于PyTorch的深度学习库`d2l`(深度学习的一本书)。原创 2024-05-25 05:45:19 · 550 阅读 · 4 评论