自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Verilog always语句详解:从组合逻辑到时序逻辑

Verilog always语句摘要 Verilog的always语句是描述硬件行为的关键结构,主要用于实现组合逻辑和时序逻辑电路。它有三种敏感事件形式:电平敏感(组合逻辑)、边沿敏感(时序逻辑)和混合敏感(异步控制)。组合逻辑应使用always @(*)和阻塞赋值(=),而时序逻辑需用always @(posedge clk)和非阻塞赋值(<=)。常见应用包括多路选择器、状态机和寄存器等。设计时需注意避免锁存器意外生成、确保敏感列表完整,并区分阻塞/非阻塞赋值的正确使用场景。SystemVerilo

2026-04-10 16:33:55 533

原创 锁存器与触发器

摘要: 锁存器与触发器是数字电路的核心存储元件,关键区别在于触发方式:锁存器电平敏感(使能期间透明传输),触发器边沿敏感(仅时钟边沿更新)。锁存器结构简单但时序分析复杂,适用于异步电路或低功耗ASIC;触发器抗干扰强且时序明确,主导同步设计。Verilog中不完整的组合逻辑会无意生成锁存器,需通过默认赋值避免。FPGA因架构差异优先使用触发器,锁存器会消耗更多LUT资源。设计黄金法则:同步系统首选触发器,ASIC低功耗场景可谨慎使用锁存器,但需严格管理时序风险。(150字)

2026-04-10 16:32:42 527

原创 跨时钟域信号处理的办法有哪些

理解这些方法的原理,是设计稳健的跨时钟域系统的关键。则是处理单比特控制信号(如复位、使能、中断)的。因其高效和通用性,是多比特数据传输的。处理方法的选择,主要取决于信号的。

2026-04-10 16:30:52 449

原创 详解亚稳态

导致输出在较长时间内无法稳定到逻辑“0”或逻辑“1”,而是停留在一个。,数据变化时刻相对时钟B的边沿完全随机,必然有时会落入采样窗口。设数据变化时刻为 t_change,时钟边沿为 t_clk。,理解它的产生原因,是设计可靠系统的前提。:每500个时钟周期就可能发生一次亚稳态!是指触发器在采样时刻,其输入数据处于。亚稳态是数字电路设计中。

2026-04-10 16:29:46 549

原创 混合位宽FIFO的数据拼接功能原理

混合位宽FIFO的数据拼接功能,其本质是实现一个“数据宽度转换器”。它允许数据以较窄的位宽顺序写入,再以较宽的位宽顺序读出(或反之),核心原理是在FIFO内部自动将多个连续的窄数据打包成一个宽数据,或将一个宽数据解包成多个连续的窄数据,同时严格保持数据的先后顺序。这是最常见的使用场景,例如将8位宽的ADC采样数据存入FIFO,然后由32位宽的处理器总线一次性读取处理。工作原理详解(以“窄写宽读”为例)

2026-04-10 16:27:39 260

原创 UART、SPI、IIC 总线核心特性对比表

要将 UART、SPI、IIC 三种总线的核心信息进行对比,需围绕等维度展开。

2026-04-01 14:32:18 286

原创 突发模式详解

将DRAM相对较慢的核心阵列访问速度,转化为高效的外部连续数据传输,是SDRAM乃至所有现代DDR内存能够实现高带宽的基石。理解并合理配置突发模式,是优化内存子系统性能的关键。读取或写入多个连续存储位置的数据,而无需控制器为每一个数据单元都发送新的列地址命令。一次访问从一个选定位置开始,并按预设的顺序持续进行预设数量的位置访问。是一种高效的数据传输机制。,灵活适配不同的访问需求,其本质是利用内部。这表明,对该芯片的所有读写访问都是以。突发模式的行为并非固定,而是通过。:SDRAM的突发模式是一种通过。

2026-04-01 14:30:52 348

原创 OV5640自动对焦照相模组应用指南

摘要:OV5640摄像模组硬件设计规范 本章规定了OV5640模组的硬件设计要点,包括原理图、接口、供电和镜头选型要求。 原理图设计: 关键引脚处理:PWND(高电平节电)、RESETB(低电平复位),不使用时需外接固定电平。 电源要求:AVDD(2.8V)、DVDD(1.5V)、DOVDD(1.8V),需严格去耦,地线分开布局。 数据输出模式:支持10-bit RGB或8-bit YCbCr/RGB,需匹配主机接口电压。 供电方案: 1.8V I/O:主机与传感器直接连接,无需电平转换。 2.8V I/O

2026-04-01 14:29:09 692

原创 IIC和SCCB对比

两者高度兼容,但SCCB在规则上更严格、更简单,牺牲了部分灵活性以追求可靠性和简易性。

2026-04-01 14:27:05 345

原创 OmniVision 串行摄像头控制总线 (SCCB) 功能规范

OmniVision的串行摄像头控制总线(SCCB)规范定义了3线和2线两种接口模式,用于控制CAMERACHIP™系列产品。3线模式使用SCCB_E(片选)、SIO_C(时钟)和SIO_D(数据)信号,支持多从设备连接;2线模式则省略SCCB_E信号,仅保留SIO_C和SIO_D,适用于引脚受限的封装。文档详细说明了总线时序要求,包括传输开始/结束时的信号时序参数(tPRC、tPRA、tPSC等),以及数据线上冲突保护的必要性。主从设备引脚功能定义清晰,特别强调SIO_D在空闲时需保持高阻态。该规范为SC

2026-04-01 14:25:01 368

原创 Avalon® 接口规范知识文档(v2018.09.26)

Avalon Conduit接口是协议家族中一个特殊而重要的成员,它提供了最大的灵活性,用于处理那些无法被归类到其他标准接口(如Avalon-MM, Avalon-ST)的通用信号。接口规范》文档第48-50页的“7. Avalon三态管道接口”章节(注:第51页为附录A“已弃用的信号”,将在本节末一并说明)进行完整解读。在完整保留原文信息的基础上,增加了对核心概念的解释、设计哲学的分析以及各部分逻辑关联的阐述,以构建一个易于学习和理解的系统性知识框架。,针对不同的数据传输和控制需求进行了优化。

2026-03-26 15:08:24 473

原创 《HY57V561620F(L)T(P) Series》完整数据手册详解

海力士HY57V561620F(L)T(P)系列256Mb SDRAM数据手册摘要: 该芯片是16M×16位同步DRAM,采用4个存储体架构,总容量32MB。关键特性包括3.3V LVTTL接口、可编程CAS延迟(2/3)和突发长度(1/2/4/8/整页)、自动预充电功能。修订历史显示重要参数调整,如自刷新电流降低至2/1mA。引脚配置包含独立电源VDDQ/VSSQ用于输出缓冲器隔离噪声。工作电压3.0-3.6V,支持166MHz(-6)和133MHz(-H)两种速度等级,提供标准/低功耗版本及有铅/无铅封

2026-03-26 10:21:34 447

原创 第Y8周:yolov8.yaml文件解读

共享计算:在YOLO中,backbone对于输入图像只计算一次,生成的特征图被多个检测头(head)共享,这些检测头负责最终的边界框预测、类别预测和置信度预测。这种设计减少了重复计算,提高了检测效率。降维和抽象:Backbone通过连续的卷积层逐步减少特征图的尺寸(即空间维度),同时增加特征图的深度(即通道数),从而实现对输入图像的降维和抽象。鲁棒性:Backbone的设计通常包含多种卷积层和池化层,这些层可以提高网络对图像变换(如缩放、旋转和平移)的鲁棒性,使得模型能够在不同的环境和条件下稳定地工作。

2024-11-28 21:35:28 1953 2

原创 第Y7周:用Yolov8训练自己的数据集

这次任务和Y2很像,也算是一种复习,把这一个步骤来过。对与召回率较低的,要进行数据增强来改善结果。

2024-11-22 16:42:55 605

原创 第Y6周:模型改进

在yolov5s.yaml中,在backbone把索引为4的层从C3 * 2修改为C2 * 2 ,在yolov5s.yaml中指出depth_multiple为0.33,0.33 * 6 约等于 2,所以第4层为:[-1, 6, C2, [256]]刚开始修改的时候我以为这样就结束了,但是后来想到牵一发而动全身,肯定还有其他地方被影响了,于是上网搜查,再返回以前的进行理解,才意识到还要改一下head文件的配置。这里要根据Y5的经验进行修改,把C3的concat后的Conv去掉就好了。

2024-11-15 09:33:04 462

原创 第Y5周:yolo.py文件解读

在YOLOv5中,YOLO.py文件扮演着核心角色,主要负责搭建和定义YOLOv5的网络模型。以下是关于YOLO.py文件概述YOLO.py位于YOLOv5项目的models目录下。该文件是YOLOv5网络模型构建的关键文件之一。如果想要改进YOLOv5模型,通常需要修改这个文件。主要功能模型解析和构建YOLO.py中的parsemodel函数负责解析模型文件(通常是字典形式),并据此构建网络结构。类定义:文件中定义了Detect类和Model类,这些类是实现YOLOv5模型的核心部分。

2024-10-30 09:55:19 1309

原创 第Y4周:common.py文件解读

将yolov5s网络模型中C3模块中的结构按照如下方式修改,并跑通YOLOv5。在YOLOv5中,common.py文件是一个关键组件,它包含了实现YOLO算法中各个模块的代码。以下是对common.py文件位置和作用common.py位于./models目录下。该文件定义了YOLOv5网络结构中的多个基础模块,如果需要修改某一模块(例如C3模块),就需要修改这个文件中对应模块的定义。导入的包和基本配置:文件开始部分导入了多个Python模块,如mathcopypathlibnumpypandas。

2024-10-22 21:58:18 1241

原创 第Y3周:yolov5s.yaml文件解读

YOLOv5中的C3模块是一种神经网络模块,它是Cross Stage Partial networks(CSPNet)的一个变体,旨在提高网络的效率和性能。C3模块的核心思想是通过将输入特征图分成两部分,然后分别进行处理,最后再将这两部分的特征图合并,以此来实现更丰富的特征融合和更有效的信息传递。

2024-10-18 19:29:26 1662 1

原创 第Y2周:训练自己的数据集

在上一次体验yolov5s的为基础上,这次将训练自己的数据集。在YOLO目标检测算法中常用的三种标签格式:voc(xml)、coco(json)和yolo(txt)。

2024-10-07 22:01:54 558

原创 第Y1周:调用官方权重进行检测

当然,你也可以手动添加对应的环境变量;从本周开始YOLO的学习啦。教案选择的是YOLOv5s。然后再自己找个视频(如果你是训练营的就用提供的视频)放到路径下。然后就会逐帧加测,等很久很久过后就能出现一个满是检测框的视频啦。如果中途出现这种黄色的warning,其实不用管就行了。在上面文件路径行输入cmd就会直接跳转到cmd啦。等安装好后输入这段代码,等出现下面的结果就好啦。打开网页之后下载zip包解压到自己想要的路径。再输入图片展示的命令行将环境依赖安装好。GITHUB的开源地址如下。

2024-09-25 08:52:45 301

原创 第R3/4周:天气预测

这周的任务添加了探索式数据分析(EDA),什么是探索式数据分析呢?探索性数据分析(Exploratory Data Analysis,简称EDA)是一种数据处理方法,用于在数据建模之前对数据进行初步的观察和分析。通过可视化、总结统计量和数据变换等技术,探索性数据分析帮助研究者理解数据的特征、分布和潜在的关系,为后续的数据分析和建模提供指导。

2024-09-18 18:44:11 1456

原创 第R2周:LSTM-火灾温度预测

长短时记忆网络(Long Short-Term Memory, LSTM)的本质是一种特殊的循环神经网络(Recurrent Neural Network, RNN),它被设计来解决标准RNN在处理长序列数据时遇到的梯度消失或梯度爆炸问题,这些问题限制了RNN在处理长距离依赖关系时的能力。LSTM的核心创新在于它引入了所谓的“门控机制”(gates),这些门控机制允许网络学习何时让信息进入或离开网络,以及何时保留或更新长期状态。遗忘门(Forget Gate)

2024-09-05 20:13:23 1340

原创 第R1周: RNN-心脏病预测

RNN(Recurrent Neural Network)是一种特殊的神经网络,它能够处理序列数据,如时间序列、文本序列等。RNN与传统神经网络的主要区别在于其结构特点和计算机制。结构特点RNN由一系列相互连接的节点组成,每个节点代表一个状态。这些节点通过反馈回路连接在一起,使得网络能够记住之前的状态信息。计算机制RNN在计算当前状态时,不仅考虑当前输入,还考虑上一个状态的信息。这种机制使得RNN能够捕捉到数据的长期依赖性,适用于处理时间序列数据。应用场景。

2024-08-29 13:35:54 975

原创 第N8周:图解NLP中的注意力机制

Seq2seq(Sequence to Sequence)模型是一种经典的编码器-解码器(Encoder-Decoder)架构,广泛用于处理序列到序列的映射问题,如机器翻译、对话系统等。在这种情况下,解码器在每个时间步的输入是目标序列中的下一个单词。注意力机制是一种模拟人类大脑注意力分配方式的计算模型,它能够在处理大量信息时,聚焦于重要的部分,而忽略不重要的信息。将其形状调整为三维张量,其中第一维是批次大小(这里为1,因为是单个输入),第二维是序列长度(也是1,因为是单个时间步),第三维是嵌入向量的维度。

2024-07-26 17:32:01 1332

原创 第N7周:seq2seq翻译实战-pytorch复现-小白版

在序列生成的任务中,如机器翻译或文本生成,解码器(decoder)的输入通常是由解码器自己生成的预测结果,即前一个时间步的输出。GRU是一种RNN(循环神经网络)的变体,它将传统的RNN的三个门(输入门、遗忘门和输出门)合并为两个门(更新门和重置门)。GRU是一种RNN(循环神经网络)的变体,它将传统的RNN的三个门(输入门、遗忘门和输出门)合并为两个门(更新门和重置门)。GRU是一种RNN(循环神经网络)的变体,它将传统的RNN的三个门(输入门、遗忘门和输出门)合并为两个门(更新门和重置门)。

2024-07-11 22:24:33 1456 1

原创 第N6周:使用Word2vec实现文本分类

这里其他的东西都耳熟能详了,其中梯度裁剪可以领出来讲一讲。在深度学习中,梯度裁剪是一种常见的技术,用于防止梯度爆炸,这是神经网络训练过程中可能出现的问题之一。当梯度变得非常大时,它们可能会导致权重更新变得不稳定,甚至可能导致模型训练失败。是 PyTorch 中的一个函数,用于限制梯度的范数(大小)在训练过程中。: 返回模型中所有可学习的参数(权重和偏置)的列表。这些参数将在训练过程中通过反向传播计算梯度。0.1: 这是梯度裁剪的上限,也称为裁剪阈值。

2024-07-01 16:51:24 1315

原创 第N5周:调用Gensim库训练Word2Vec模型

Word2Vec是一种计算模型,它将词汇表中的每个词映射到一个固定大小的向量。这种技术是自然语言处理(NLP)领域的一个重要突破,由Google在2013年左右推出。Word2Vec模型能够捕捉词汇表中词之间的语义和语法关系,这些关系被编码在词向量(word embeddings)中。连续词袋(CBOW)和Skip-Gram。CBOW:适用于大规模数据集和频繁词的向量表示,训练速度较快。Skip-Gram:适用于处理稀有词和复杂的语言模式,训练速度较慢。

2024-06-26 19:02:58 2108

原创 第N4周:中文文本分类

model.train() # 切换为训练模式# grad属性归零loss = criterion(predicted_label, label) # 计算网络输出和真实值之间的差距,label为真实值# 反向传播torch.nn.utils.clip_grad_norm(model.parameters(), 0.1) # 梯度裁剪optimizer.step() # 每一步自动更新# 记录acc与lossmodel.eval() # 切换为测试模式。

2024-06-19 19:19:18 1511 1

原创 第N3周:pytorch文本分类入门

文本偏移量(offsets)在处理文本数据时是用来记录每个样本的文本在批量数据中的起始位置。这种做法通常用于处理序列数据,如文本数据,当文本长度不一致时。在文本分类任务中,每个样本可能包含不同数量的文本,这意味着在将文本数据传递给模型之前,需要对它们进行适当的重组。文本偏移量的作用是在批量数据中正确地对齐每个样本的文本。具体来说,偏移量是一个列表,其中每个元素代表批量数据中对应样本的文本开始位置。样本1: “here is”样本2: “an example”

2024-06-13 10:09:22 814

原创 第N2周:Embeddingbag和Embedding详解

在机器学习和深度学习中,嵌入层(embedding layer)是一种特殊的神经网络层,它的作用是将离散的输入数据(如单词、物品、用户ID等)映射到连续的向量表示。这种映射是通过一个可训练的权重矩阵实现的,该矩阵的行数等于输入数据的类别数(例如,词汇表中的单词数),列数等于嵌入向量的维度。在二维空间中,任何向量都可以通过平面上的一个点来表示,向量的大小(长度或范数)和方向由该点的位置决定。在这样的高维空间中,直接进行数据的可视化变得非常困难,甚至不可能,因为我们的直觉和视觉感知是在三维空间中形成的。

2024-05-27 21:00:49 1455

原创 第N1周:one-hot独热编码

独热编码(One-Hot Encoding)是一种将分类数据转换为二进制向量的方法,其中每个类别对应一个唯一的二进制向量。在独热编码中,每个类别都由一个长度为n的向量表示,其中n是所有可能类别的数量。向量中的每个位置对应一个可能的类别,该位置上的值是1或0,表示该实例是否属于该类别。这段代码的目的是将给定的文本数据集转换为独热编码(One-Hot Encoding)。(注意斜杠的方向,如果安装了代码自动补全的会自动把斜杠补对,这个还挺好的)库是一个流行的中文分词工具,它使用了一种基于前缀词典的分词算法。

2024-05-22 19:42:43 1493

原创 第P1周:手写数字识别

更具体地说,损失函数loss是由模型的所有权重w经过一系列运算得到的,若某个w的requires_grads为True,则w的所有上层参数(后面层的权重w)的.grad_fn属性中就保存了对应的运算,然后在使用loss.backward()后,会一层层的反向传播计算每个w的梯度值,并保存到该w的.grad属性中。是 NumPy 库中的一个函数,它的作用是从数组的形状中移除单维的条目,即维度大小为 1 的轴。这个函数的目的是为了减少数组的维度,使得数组的形状更加紧凑,便于进行某些操作或计算。

2024-05-20 10:12:56 955

原创 第G9周:ACGAN理论与实战

这段代码是生成对抗网络(GAN)的训练过程的一部分,它包括生成器、判别器、数据加载器、优化器以及一个保存生成图像的函数。代码首先定义了生成器和判别器,然后设置GPU支持,初始化权重,配置数据加载器,创建优化器,并定义了一个保存生成图像的函数。这段代码是生成对抗网络(GAN)的训练过程,其中包含了多个循环,用于迭代地训练生成器和判别器。判别器网络是生成对抗网络(GAN)的另一部分,它的目标是区分输入的图像是否是真实图像。生成器网络是生成对抗网络(GAN)的一部分,它学习如何从随机噪声生成真实的图像。

2024-05-08 21:09:25 877 3

原创 第G8周:ACGAN任务

从知乎博主“张宏伦”老师的文章里我们可以清晰的看到ACGAN和其他GAN的区别,下面引用文章里的一张图片。原文链接放到下面17 CGAN和ACGAN(下):来自知乎作者张宏伦条件生成对抗网络ACGAN最直观的功能便是既可以生成图像又可以进行分类。它是一种深度学习模型,由Ian Goodfellow等人在2014年提出生成对抗网络(GAN)的基础上进一步发展而来。ACGAN在原始GAN的基础上加入了条件控制,使得生成过程可以受到额外信息的指导,从而能够生成具有特定属性或者风格的数据。

2024-04-30 18:49:44 1499

原创 NLP发展及其详解

RNN(循环神经网络)的结构特点在于其循环单元的设计,这种设计允许网络在处理序列数据时保持对之前信息的记忆。然而,传统的RNN存在一些问题,比如在训练过程中可能出现的梯度消失或梯度爆炸问题,这使得它们难以学习长距离依赖。为了解决这个问题,研究者们提出了更复杂的循环单元结构,如LSTM(长短时记忆网络)和GRU(门控循环单元),这些结构通过引入门控机制来更好地捕捉长距离依赖。总的来说,RNN的结构使其成为处理序列数据的强大工具,而其变体如LSTM和GRU则进一步增强了其在复杂序列建模任务中的能力。

2024-04-28 21:06:35 1521

原创 模型训练常见超参数的讲解

在模型训练中,潜在空间(latent space)是指嵌入在模型内部的一种低维、通常连续的表示空间,尤其是在无监督学习或生成模型(如自编码器、变分自编码器VAEs、生成对抗网络GANs)中。潜在空间的维度(latent dimensionality)是指这个空间的维数,即潜在变量的数量。

2024-04-28 20:12:33 3575

原创 第G7周:Semi-Supervised GAN 理论与实战

SGAN(Spectral Generative Adversarial Networks)是一种生成对抗网络(GAN)的变体,它在训练过程中引入了谱正则化(spectral normalization)技术。GAN是一种深度学习模型,由生成器(Generator)和判别器(Discriminator)组成,它们通过相互对抗的方式训练,生成器试图生成逼真的样本,而判别器试图区分真实样本和生成样本。在传统的GAN中,生成器和判别器的训练过程可能会遇到梯度消失或梯度爆炸的问题,导致训练不稳定。

2024-04-26 12:13:52 823 2

原创 Pytorch重点概念笔记:都是本人学习中真实遇到的(一)

是PyTorch中的一个函数,用于减少张量的维数,具体来说,它会移除所有维数为1的维度。这个操作通常用于处理那些在特定操作(如卷积或池化)后可能产生不必要的单维度张量。在某些情况下,张量操作会生成形状中包含单维度的张量。例如,一个形状为的张量可能是在某个卷积操作后产生的,其中B是批量大小,C是通道数,而最后两个维度是1。在这些情况下,单维度并没有携带任何有用的空间信息,只是增加了张量的维数。的作用就是移除这些不必要的单维度,从而简化张量的形状。inputdim下面是一些在上面的例子中,第一个。

2024-04-22 15:48:47 1274

原创 Darknet框架优化介绍

Darknet是一个完全使用C语言编写的人工智能框架,可以使用CUDA的开源框架。主要应用于图像识别领域。具体的安装使用教程在阿里云社区有详细的介绍。

2024-04-19 21:25:54 791 2

原创 第G6周:CycleGAN实践

CycleGAN(循环生成对抗网络)是一种生成对抗网络(GAN),它能够在没有成对训练样本的情况下,将一个域(比如照片中的马)转换成另一个域(比如照片中的斑马)。生成器的作用是在两个域之间进行转换,而判别器则用于判断输入的图像是真实的还是由生成器生成的。生成器的目标是学习如何将输入图像转换成目标域中的图像,同时欺骗判别器,使其认为生成的图像是真实的。这段代码的主要目的是通过训练生成器来学习从源域(A)到目标域(B)的映射,并从目标域(B)到源域(A)的映射。当调用 parse_args()

2024-04-18 19:50:17 2706 1

空空如也

空空如也

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

TA关注的人

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