自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 资源 (8)
  • 收藏
  • 关注

原创 python einops张量操作工具包

eniops是python提供的一个对张量维度进行随心所欲操作的包,具有十分强大的功能,下面就让我们来见识一下eniops的强大表达能力。rearrange具有交换张量维度的功能,下面的例子将C,H,W方式存储的图片转化为H,W,C的存储方式import torchfrom einops import rearrangex=torch.rand((10,3,224,224))print(x.size())x = rearrange(x, 'b c h w ->b h w c'

2021-08-30 22:49:44 2104 4

原创 ZYNQ及HLS开发中遇到的问题记录

一.数组字节对齐问题可通过__attribute__((aligned(#)))进行数组首地址的#字节对齐,这在某些情况下是非常有用且必要的。比如,当PL端位宽为128bit时,那么PS端被读取的数组的首地址必须是16字节对齐的,否则会发生读取的错位,从而造成错误。二.malloc指针的字节对齐问题同一,只是对齐使用的方法不同,这里使用的是memalign函数三.HLS m_axi接口的burst length问题在对接口进行pragma设置时,需要加上max_read(wri.

2021-08-25 23:32:57 1227

原创 C语言中的字节对齐

在硬件开发中,有时为了提高系统性能,需要数组等数据结构按照指定字节对齐,在这里对字节对齐作一个简单总结:1.__declspec(align(#))该方法可以指定定义的数据按照#字节对齐,#必须是2的幂,例如__declspec(align(32)) char p1[1000];cout<<((int64_t)p1)%32<<endl;上面的数组p1,其起始地址就是32字节对齐的,可以预见,打印结果应为02._aligned_malloc(或者memalign

2021-08-20 20:11:26 1054

原创 基于pytorch的花卉识别小程序

通过迁移学习,以VGG16为基础,对有5种类型的花卉数据进行训练,训练完后,保存模型参数,然后用Pyqt5简单实现了一个小程序。代码:predict.py(加载模型参数,对输入的图片进行预测,给出类别和概率)import torchimport numpy as npimport matplotlib.pyplot as pltimport torchvision.models as modelsimport torch.nn.functional as Fdef imshow(imag

2021-08-12 19:53:28 1919 2

原创 Pytorch迁移学习---训练花卉数据集

什么是迁移学习(Transfer Learning)迁移学习,简单的理解就是使用一些已经训练好的模型迁移到类似的新的问题进行使用,而不必对新问题重新建模,从头训练和优化参数。这些训练好的模型同时包含了优化好的参数,在使用的时候只需要做一些简单的调整就可以应用到新问题中了,可以说,迁移学习在某种程度上是站在了巨人的肩膀上。本文使用已经训练完成的VGG16模型,固定特征提取层的参数,对分类层稍作修改,然后进行训练,训练过程仅更新分类层参数,采用的数据集则是有5个类别的花卉数据集,下图是花卉数据集的目录:

2021-08-12 15:39:37 1435 1

原创 Pytorch数据集加载---DataLoader和Dataset

DataLoader 和 Dataset神经网络训练的第一步往往是数据集的加载和处理,当然,我们可以自己手动完成,但这也往往给我们带来了诸多的不便,尤其是当数据集比较大的时候,比如shuffle操作,batch操作等等,甚至更加高级的图片预处理操作。幸运的是,pytorch为我们提供了用于数据加载和处理的DataLoader和Dataset类,Dataset是一个包装类,用来将数据包装为Dataset类,然后传入DataLoader中,我们再使用DataLoader这个类来更加快捷的对数据进行操作。Da

2021-08-12 12:18:38 707

原创 pytorch中requires_grad=false却还能训练的问题

在pytorch中,requires_grad用于指示该张量是否参与梯度的计算,我们可以通过如下方式来修改一个张量的该属性:tensor.requires_grad_() //True or False然而,本人在写代码的过程中发现,在搭建完一个网络之后,打印所有参数的requires_grad属性,结果显示全为false,但训练时loss损失函数却能下降,令人百思不得其解,代码和打印输出的结果如下:class Net(nn.Module): def __init__(self):..

2021-08-12 00:26:28 8781 6

原创 Vivado HLS中多端口数组的RTL建模

在加速器的设计中,由于FPGA片上存储资源(BRAM)有限,因此我们需要对输入数据进行分片,每次加载一块数据到片上缓存,然后进行计算,在使用HLS进行设计的时候,这三个缓存往往具有以下形式:输入特征缓存InBuffer[Tn][R][C],并且为了能在一个时钟周期内访问多个数据,我们还会对数组的第一个维度进行array_partition操作,对应到实际的电路,其实就是多个BRAM,从而提供多个数据读写的端口。权重缓存WeightBuffer[Tm][Tn][K][K],同样,为了能在一个时钟周期内

2021-08-05 22:50:35 804

基于HLS的全流水FFT代码

1. 支持4,8,16点FFT运算 2. 采用蝶形运算单元,以全流水的方式运行 3. 基于Xilinx HLS语言开发

2023-02-09

纯c++实现对bmp图片的sobel边缘检测

纯c++实现对bmp图片的sobel边缘检测

2022-12-02

FIR滤波器的Verilog实现

FIR滤波器的Verilog实现

2022-07-13

基于FPGA的HLS CNN加速器

一个HLS设计的卷积神经网络加速器,并在zynq7020开发板上部署成功。数据集采用的是MNIST手写体,加速的网络为一个拥有4层卷积,2层池化和1层全连接层的自定义小网络,适合初学者学习。

2022-03-26

Win7 上安装 synopsys 工具

用于安装FPGA开发的Synplify,其综合速度优于vivado和quartus自带的综合器,可以大大加速FPGA开发速度

2021-02-05

pingpang_block_mm.rar

基于system verilog的矩阵乘法代码 ,进行了分块计算,并且对块矩阵的载入和写回进行了乒乓操作,大大掩盖了数据传输时间,且代码中的乒乓操作写法具有通用性,可供借鉴。

2020-11-18

动态分支预测MIPS.rar

用verilog实现的五级流水线CPU,通过旁路技术解决了数据冒险,通过BTB动态分支预测来解决控制冒险

2020-09-13

tt.py,一个轻量级卷积神经网络,基于numpy

本程序基于numpy,自己动手实现了一个简单的卷积神经网络,共两个卷积层,两个池化层以及两个全连接层,并达到了97%的准确率

2020-03-17

i2c_eeprom.rar

在fpga平台上用verilog通过iic总线实现对eeprom的读写

2019-11-10

空空如也

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

TA关注的人

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