
学习Python
文章平均质量分 63
学习Python笔记
Ankie(资深技术项目经理)
AI First!20年资深WiFi/BT/UWB技术专家。
合作咨询:[email protected]
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Transformer模型-用jupyter演示逐步计算attention
学习transformer模型-用jupyter演示如何计算attention,不含multi-head attention,但包括权重矩阵W。原创 2024-03-30 00:20:05 · 911 阅读 · 0 评论 -
学习人工智能-3条Python命令,从零开始搭建GPT,minGPT by Andrej karpathy
3条Python命令,从零开始搭建GPT,minGPT by Andrej karpathy。如果你不是深度学习领域的专业人士,只是想感受一下它的魔力并初步尝试,那么最快速的入门方式就是在莎士比亚的作品上训练一个字符级别的GPT模型。首先,我们需要将其下载为一个单独(1MB)的文件,并将原始文本转换为一串大的整数流。生成结果 by CPU。生成结果 by GPU。原创 2024-03-10 00:30:00 · 1367 阅读 · 0 评论 -
python技巧:控制转台的2个坑。
买了一个转台,踩了2个坑:1,一上来就发现 控制app或者 直接串口控制不了。跟厂家联系了,说是串口驱动不对。我一直以为串口驱动都是通用的,结果这次踩了坑,一定要装指定的驱动。终于串口可以控制了。2,搞清楚回0,转±15度 的指令,然后启用AI大法,控制转台旋转。原创 2025-08-12 20:30:00 · 150 阅读 · 0 评论 -
python技巧:Write a function to find the frequency of each word in a string in Python
【代码】python技巧:Write a function to find the frequency of each word in a string in Python。原创 2025-08-05 20:30:00 · 212 阅读 · 0 评论 -
Python技巧:每隔3个,去掉第三个元素,不要用新的数组。
Python技巧:每隔3个,去掉第三个元素,不要用新的数组。原创 2025-07-29 20:53:52 · 272 阅读 · 0 评论 -
python技巧:使用pyvisa控制仪器;安装NI-VISA等visa库;导入pyvisa并创建资源管理器;打开和使用仪器
摘要: PyVISA是一个Python库,用于控制测试仪器(如GPIB、USB等接口设备)。它通过调用VISA(Virtual Instrument Software Architecture)标准库实现仪器通信,支持NI-VISA、Keysight等驱动,也提供纯Python实现的PyVISA-Py后端。使用步骤包括:1) 安装VISA驱动(如NI-VISA)并配置仪器;2) 在Python中创建资源管理器(ResourceManager)列出设备;3) 通过open_resource连接仪器,用quer原创 2025-07-15 20:30:00 · 1188 阅读 · 0 评论 -
python技巧:pyvisa打开hislip设备;IEEE 488.2
python技巧:pyvisa打开hislip设备;IEEE 488.2。有时候print("Available resources:", rm.list_resources()) 没有打印出想要的设备,如果inst0连不上,可以尝试hislip0。原创 2025-06-05 20:58:35 · 607 阅读 · 0 评论 -
Python技巧:TX串口输入十六进制字符串,并获取输出,RX获取输出;循环1000次,通过分析RX输出,计算丢包率。
TX串口输入十六进制字符串,并获取输出,RX获取输出;循环1000次,通过分析RX输出,计算丢包率。原创 2025-05-06 19:41:38 · 297 阅读 · 0 评论 -
python技巧:在一个文件夹中,按照文件名自然排序,以二进制方式 int16,读取每一个文件,用2个矩阵,matrix_real存放奇数行数据,matrix_img存放偶数行数据;最后存入xls文件
python技巧:在一个文件夹中,按照文件名自然排序,以二进制方式 int16,读取每一个文件,用2个矩阵,matrix_real存放奇数行数据,matrix_img存放偶数行数据;最后存入xls文件原创 2025-04-15 20:15:00 · 200 阅读 · 0 评论 -
python技巧:持续向串口输入命令并获取结果。
最近拉距测试灵敏度,随着距离的变化,要不停的在串口输入指令:cmd 并观察接收性能PER。于是我就写了一个小程序,避免频繁的手动输入命令。原创 2025-04-15 20:30:00 · 237 阅读 · 0 评论 -
Python技巧:二维列表 和 二维矩阵 的区别
二维列表是 Python 原生的数据结构,灵活但效率较低。二维矩阵是 NumPy 的ndarray,适合高效的数值计算。np.vstack可以处理两者,但输入为二维矩阵时性能更高。原创 2025-04-08 20:15:00 · 825 阅读 · 0 评论 -
python技巧:自动控制高低温箱,通过串口输入命令,生成16进制字符串,并计算CRC16。
最近有个临时紧急的需求,要每隔5摄氏度测试高低温,因此必须使用脚本实现自动控制温箱。温箱厂商提供了一个控制APP,是通过串口发命令控制温度,但是我们需要cmd实现自动化。因此,我们通过串口监控抓取了设置温度的字符串,参考了温箱设计文档。在AI的帮助下,快速实现了这个控制脚本。原创 2025-04-01 22:13:32 · 408 阅读 · 0 评论 -
python技巧:使用lock解决Matplotlib plot在多线程中随机画图,乱画。
在多线程环境中,Matplotlib plot画图会随机画图,乱花图。所以在线程中使用plot,需要加上lock,确保画图安全。原创 2024-12-10 20:15:00 · 357 阅读 · 0 评论 -
python技巧:threading多线程操作,简单示例
python技巧:threading多线程操作,简单示例原创 2024-12-10 20:00:00 · 463 阅读 · 0 评论 -
python技巧:if else,逻辑判断要写完整。
最近发现了一个bug,在一个循环中,做if判断 x和y等,突然间y的值变了,但结果result总是1。当时的判断条件很多,以为是判断条件的问题,后来才发现,if根本没进去,result没有重置为0。经过加入else,确保result初始为0。所以逻辑判断还是要完整。原创 2024-12-04 22:00:00 · 426 阅读 · 0 评论 -
Python技巧:路径前面一定要加 r!!!
经过一通操作猛如虎,才发现原来是\a被转义了!为了防止转义,路径一定要加上r。最初报错并不是 文件找不到,而是其他错误,因此没想到是文件路径问题。print(f"发生了一个错误:{e}")原创 2024-12-04 21:45:00 · 614 阅读 · 0 评论 -
python技巧:Matplotlib plot画图并保存图片;使用plt.pause() 打开live模式,持续画图,方便展示数据
python技巧:Matplotlib plot画图并保存图片;使用plt.pause() 打开live模式,持续画图,方便展示数据原创 2024-11-27 21:00:00 · 711 阅读 · 0 评论 -
Python技巧:pyserial,串口readline() 函数的设计是等待换行符 \n 或超时事件timeout的发生,否则它将持续等待,这就解释了为何程序会“卡住”。
最近在使用pyserial库时,我遇到了一个不寻常的问题:在别人封装后的readline()函数调用中,读取串口数据时程序会停滞不前,无法继续执行。经过一系列深入研究后,我发现问题的根源在于最新的固件版本中,串口输出的最后一行不再包含换行符\n。由于readline()函数的设计是等待换行符\n或超时事件timeout的发生,否则它将持续等待,这就解释了为何程序会“卡住”。原创 2024-11-27 21:00:00 · 527 阅读 · 0 评论 -
Python技巧:气死了,死活找不到模块:ImportError: DLL load failed while importing _cext: 找不到指定的模块。
试了各种办法,重新安装python, pip,matplotlib,kiwisolver都不管用。气死了,死活找不到模块,最终重新安装Microsoft Visual C++ Redistributable,终于解决问题!ImportError: DLL load failed while importing _cext: 找不到指定的模块。原创 2024-11-19 20:00:00 · 1629 阅读 · 0 评论 -
Python技巧:print;格式化输出%(有多少个占位符%,就要有多少个变量与占位符%一一对应);推荐使用f-string(Python ver>=3.6),简洁,不需要重复。
Python技巧:格式化输出% 和f-string原创 2024-11-13 23:08:05 · 396 阅读 · 0 评论 -
Python技巧:查询模块的版本号的方法
Python技巧:查询模块的版本号的方法原创 2024-11-13 22:32:38 · 602 阅读 · 0 评论 -
Python技巧:如何在 PyCharm 中导入上级目录(或称为父目录)的模块或包:以项目project的方式打开目录,pycharm会自动导入。
最主要的一步是:以项目project的方式打开目录,pycharm会自动导入。原创 2024-09-10 20:30:00 · 2210 阅读 · 0 评论 -
Python技巧:if __name__ == ‘__main__‘: 是一个常见的代码结构,用于判断当前模块是否作为主程序运行,还是被其他模块导入。
if __name__ == '__main__':这行代码在Python中用于控制哪些代码块应该在文件被直接运行时执行,哪些代码块应该在文件被导入为模块时保持静默。这是一种非常有用的模式,因为它允许你将模块的功能与测试或执行代码分开,使得模块既可以被重用,也可以被直接运行进行测试。原创 2024-08-20 11:00:00 · 252 阅读 · 0 评论 -
Python技巧:路径前面一定要加字母‘r‘,防止反斜杠转义。
Python技巧:路径前面的字母'r'是非常常见的,被称为原始字符串,防止反斜杠转义。使用 r 可以使代码更简洁、易读,减少转义字符带来的错误。在处理路径等字符串时,建议使用原始字符串来表示。原创 2024-08-14 20:00:00 · 1292 阅读 · 0 评论 -
学习python笔记:10,requests,enumerate,numpy.array
requests库,用于发送 HTTP 请求的 Python 库。numpy.array是 NumPy(Numerical Python 的简称)库中的一个核心函数,用于创建一个多维数组对象。NumPy 是 Python 中用于数值计算的一个扩展库,它提供了大量的数学函数来对数组和矩阵进行运算。使用numpy.array,你可以将 Python 中的列表、元组或其他序列类型的数据转换为 NumPy 数组,从而可以利用 NumPy 提供的各种高效和方便的数值计算功能。原创 2024-06-28 03:45:00 · 1207 阅读 · 0 评论 -
Transformer模型-decoder解码器,target mask目标掩码的简明介绍
解码器层是对前面文章中提到的子层的包装器。它接受位置嵌入的目标序列,并将它们通过带掩码的多头注意力机制传递。使用掩码是为了防止解码器查看序列中的下一个标记。它迫使模型仅使用之前的标记作为上下文来预测下一个标记。然后,它再通过另一个多头注意力机制,该机制将编码器层的输出作为额外的输入。最后,它通过位置全连接前馈网络。在这些子层中的每一个之后,它都会执行残差相加和层归一化。原创 2024-04-10 00:15:00 · 2175 阅读 · 0 评论 -
Transformer模型-encoder编码器,padding填充,source mask填充掩码的简明介绍
encoder编码器层是对之前文章中提到的子层的封装。它接收位置嵌入的序列,并将其通过多头注意力机制和位置感知前馈网络。在每个子层之后,它执行残差连接和层归一化。因为要循环n次,所以封装到一起就比较方便。为了充分利用多头注意力子层的优势,输入标记会先通过一堆编码器层,然后再传递给解码器。这在文章开头的图片中用Nx表示,而上面的图片展示了这些堆叠的编码器如何将其输出传递给解码器层,这将在下一篇文章中讨论。原创 2024-04-09 00:15:00 · 2606 阅读 · 0 评论 -
Transformer模型-Feed Forward前馈网络,MLP和Relu激活函数的简明介绍:即2个线性层,中间通过Relu()连接。
位置感知Position-Wise前馈网络(FFN)由两个全连接层(fully connected dense layers,就是线性层(Linear Layer),或密集层(Dense Layer))组成,或者也可以称为多层感知机(MLP:multi-layer perceptron)。在层与层之间,使用ReLU激活函数,即max(0, X)。任何大于0的值保持不变,而任何小于或等于0的值都将变为0。它引入了非线性,有助于防止梯度消失。原创 2024-04-08 00:15:00 · 3659 阅读 · 0 评论 -
Transformer模型-add & norm(残差连接&归一化)的简明介绍:残差连接,增加深度,不丢失初始的特征;归一化,避免梯度消失,减少运算
add&norm在transformer的每个子层都出现:add增加残差连接,可以增加深度,不丢失初始的特征。norm归一化,因为把原始的特征加回来,避免梯度消失,减少运算,进行归一化处理。原创 2024-04-07 00:15:00 · 3685 阅读 · 0 评论 -
Transformer模型-Normalization归一化的简明介绍:将特征转换为可比较尺度的过程,一般是[0,1] or [-1,1]之间
一般而言,Normalization归一化是将特征转换为可比较尺度的过程。有许多方法可以对特征进行归一化。在机器学习中,对特征进行归一化是因为具有不同尺度的特征的模型需要更长的训练时间;这是因为梯度下降需要更多时间来收敛。根据Pinecone的说法,不进行归一化可能导致大的误差梯度最终爆炸,从而使模型不稳定。因此,在许多情况下,在将数据插入模型之前应该进行归一化。原创 2024-04-06 00:15:00 · 2935 阅读 · 0 评论 -
Transformer模型-数据预处理,训练,推理(预测)的简明介绍
Transformer模型-数据预处理,训练,推理(预测)的简明介绍。在继续探讨之前,假定已经对各个模块的功能有了充分的了解,我们从头梳理一遍流程。原创 2024-04-11 00:15:00 · 2599 阅读 · 0 评论 -
Transformer模型-Multi-Head Attention多头注意力的简明介绍
今天介绍transformer模型的Multi-Head Attention多头注意力。通过之前文章,假定我们已经理解了attention;今天我们按顺序来梳理一下整合之后的顺序。原创 2024-04-05 00:30:00 · 1943 阅读 · 0 评论 -
Transformer模型-线性层(Linear Layer),全连接层(Fully Connected Layer)或密集层(Dense Layer)的简明介绍:通过训练得出最佳拟合线
线性层(Linear Layer)是神经网络中的一种基本层,也被称为全连接层(Fully Connected Layer)或密集层(Dense Layer)。线性层在神经网络中起到的作用是对输入数据进行线性变换。线性层的基本操作可以表示为:(y) 是输出向量。(W) 是权重矩阵,其中的每个元素都是可学习的参数。(x) 是输入向量。(b) 是偏置向量,也是一个可学习的参数。线性层会对输入数据 (x) 进行线性组合,并通过加上偏置 (b) 得到输出 (y)。原创 2024-04-04 00:30:00 · 13216 阅读 · 0 评论 -
Transformer模型-broadcast广播的简明介绍:拉伸张量
广播发生在将较小的张量“拉伸”以具有与较大张量兼容的形状,以便执行操作时。广播是一种有效执行张量操作而不创建重复数据的方式。原创 2024-04-02 00:15:00 · 313 阅读 · 0 评论 -
Transformer模型-softmax的简明介绍:转为概率分布,马太效应
softmax:常用于神经网络的输出层,以将原始的输出值转化为概率分布,从而使得每个类别的概率值在0到1之间,并且所有类别的概率之和为1。这使得Softmax函数特别适用于多类分类问题,其中模型需要预测输入样本属于多个可能类别中的哪一个。原创 2024-04-03 00:07:12 · 3209 阅读 · 0 评论 -
Transformer模型-Positional Encoding位置编码的简明介绍
位置编码用于为序列中的每个标记或单词提供一个相对位置。在阅读句子时,每个单词都依赖于其周围的单词。例如,有些单词在不同的上下文中具有不同的含义,因此模型应该能够理解这些变化以及每个单词所依赖的上下文。一个例子是单词“trunk”。在一种情况下,它可以用来指大象用鼻子喝水;在另一种情况下,它可能指的是被闪电击中的树干。由于模型使用长度为d_model的嵌入向量来表示每个单词,因此任何位置编码都必须与之兼容。使用整数来表示位置似乎很自然,比如第一个标记为0,第二个标记为1,以此类推。然而,这个数字很快就会增长,原创 2024-04-01 00:30:00 · 1174 阅读 · 0 评论 -
Transformer模型-Dropout的简明介绍:丢掉一些元素,防止过度拟合
Dropout 是一种神经网络正则化技术,它在训练时以指定的概率丢弃一个单元(以及连接)p。这个想法是为了防止神经网络变得过于依赖特定连接的共同适应,因为这可能是过度拟合的症状。直观上,dropout 可以被认为是创建一个隐式的神经网络集合。原创 2024-04-01 00:30:00 · 3208 阅读 · 0 评论 -
Transformer模型-Input Embedding 嵌入层的简明介绍
今天介绍transformer模型的Input Embedding 嵌入层。嵌入序列需要分词器tokenizer、词汇表和索引,以及词汇表中每个单词的三维嵌入。Embedding a sequence requires a tokenizer, a vocabulary of words and their indices, and a three-dimensional embedding for each word in the vocabulary.分词器将序列分割为其标记tokens。创建分原创 2024-03-31 00:45:56 · 1266 阅读 · 0 评论 -
Transformer模型-权重矩阵Wq,Wk,Wv的简明介绍
学习transformer模型的时候,权重矩阵Wq,Wk,Wv给我造成了很大的困扰:1,为啥要加W*?2,这个W*是从哪里来的?搜索了各种信息,消化理解如下:1,W*权重矩阵就是训练的目的,就是要找到合适的W*(weights)。2,W* 是函数nn.Linear初始化的,默认为随机数。经过不断地训练,更新,最终获得比较好的结果原创 2024-03-31 00:15:00 · 6244 阅读 · 2 评论 -
人工智能:Pytorch,TensorFlow,MXNET,PaddlePaddle 啥区别?
学习人工智能的时候碰到各种深度神经网络框架:pytorch,TensorFlow,MXNET,PaddlePaddle,他们有什么区别?PyTorch、TensorFlow、MXNet和PaddlePaddle都是深度学习领域的开源框架,它们各自具有不同的特点和优势。原创 2024-03-30 00:21:53 · 3096 阅读 · 0 评论