自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 [集创赛海云捷讯杯]全国二等奖经验分享

笔者是研一在校生,从五月份开始和本科生一起卷集创赛,经历初赛,分赛区决赛,全国总决赛,认识了很多一起做比赛的朋友收获颇丰。今年海云杯初赛报名队伍340支左右,晋级分赛区决赛的队伍130支,晋级全国总决赛22支加上各赛区优秀组织队伍报送一共晋级全国总决赛26支队伍。在淘汰率方面可以说是各杯赛最卷的几个杯赛之一了。其中我在的东北赛区分赛区八组晋级一组总决赛,除了西南赛区各个赛区也基本上都是这个比例。

2023-08-29 21:47:58 618

原创 Centos7上安装vscode和ssh

在用linux环境编译项目的时候,比较习惯用ubuntu环境,而对centos环境的一些命令工具使用的比较少,所以开篇帖子记录下。

2023-04-15 16:13:11 806 1

原创 卷积神经网络加速器设计与优化实验(一)

本系列主要用高层次综合的方法复现了赛灵思和北京高能效研究所推出的神经网络加速器优化过程,并做了笔记和记录。神经网络加速器设计与优化实验课程录播领域专用架构设计(Domain-specific Architecture DSA)根据应用的计算,访存特性设计专用的硬件架构。提升性能能效。面向一类应用而不是某一个特定的应用(ASIC)。机器学习应用的神经网络加速器,图像处理GPU。DSA的优势更加合理高效的并行方案访存带宽的专门优化数值精度的合理选取领域专用的编程语言。

2023-03-27 14:43:03 445

原创 FPGA之以太网详解

以太网(Ethernet)是当今局域网采用的最通用的局域网标准。它规定了包括物理层的连线,电子信号和介质访问协议的内容。它具有成本低,通信速率快,抗干扰性强的特点。标准以太网:10Mbit/s快速以太网:100Mbit/s千兆以太网:1000Mbit/s以太网的接口主要有RJ45,RJ11,SC光纤接口等等。其中RJ45是我们最常见的网络设备接口。RJ45是布线系统中信息插座(即通信引出端)连接器的一种,连接器由插头(接头、水晶头)和插座(模块)组成,插头有8个凹槽和8个触点。

2023-03-21 16:57:02 2992

原创 ARM,DSP,FPGA三者比较

这三款不同类型的芯片,笔者在不同项目中都有不同的使用。本科做电赛的时候做个cortex-mo arm芯片的开发。毕业设计做过基于zynq7000 soc核的NVDLA软硬件系统移植。研究生阶段实习公司的算法一般开发在DSP平台上。三个嵌入式芯片可以说是各有千秋,分别能在不同场合下有所应用。ARM(Advanced RISC Machines)是微处理器行业的一家知名企业,设计了大量高性能、廉价、耗能低的RISC处理器、相关技术及软件。

2023-03-16 16:01:43 2154

原创 Python yield关键词的用法

读项目源码的时候感觉遇见yield这个关键词很陌生,所以写这篇博客记录一下。yield关键词和return相似但是又不同。当函数第一次遇见yield的时候不返回yield后的值而是返回一个迭代器对象,后面调用迭代器的next方法,开始产生返回值。输出值1.程序开始执行以后,因为foo函数中有yield关键字,所以foo函数并不会真的执行,而是先得到一个生成器对象。2.直到调用next方法,foo函数正式开始执行,先执行foo函数中的print方法,然后进入while循环。

2023-03-14 23:30:10 45

原创 Python和matlab列表切片的用法

:]与 [::] 语法是通用列表操作其中的两个。用 [:] 或[::]对多数序列类型(可变的或不可变的)(如字符串、列表等)序列中元素进行截取。matlab和python的用法是差不多的,但是却用一次忘记一次。

2023-03-14 23:05:31 518

原创 ARM64平台上安装PyQt5环境【包括error: Qt::ItemDataRole is not a class or namespace解决方案】

在嵌入式ARM64开发平台上,直接用pip安装pyqt5,会出现各种各样的编译错误。根据其他博客以及参考资料。在ubuntu操作系统上直接即可使用。但是由于python笔者也是编译安装的,环境中的python版本有多个。于是考虑到源码安装到对应的python版本中。

2022-12-27 16:37:43 2419 2

原创 VGG16 keras框架 猫狗识别【使用预训练的卷积神经网络】

想要将深度学习应用在小型数据集,一种高效的方法是使用预训练的网络。预训练的网络是之前保存好的网络,之前大型数据集(通常是大规模图像分类任务)上训练好。如果这个原始数据集足够大且足够通用,那么预训练的网络学到的特征的空间层次结构,可以有效的作为视觉世界的通用模型,因此这些模型可以用于各种不同的计算机视觉问题。使用预训练网络有两种方法:特征提取和微调模型。

2022-12-26 20:32:33 941

原创 自己动手写cpu[解决流水线数据冲突问题]

自己动手写CPU【环境配置以及第一条ori指令】中实现的五级流水线结构很简单,如果按照简单即美的标准,流水线结构是美的,但是并不完美,现实往往是复杂的。流水线中经常有一些被称为“相关”的情况发生,它让指令序列中下一条指令无法按照设计的时钟周期执行,这些问题会降低流水线的性能,流水线中的相关问题分为以下三种类型。(1)结构相关:指的是在指令执行的过程中,由于硬件资源满足不了指令执行的要求,发生硬件资源冲突而产生的相关。

2022-12-26 16:42:42 1445

原创 使用keras框架进行猫狗分类

数据增强是从现有的训练样本中生成更多的训练数据,其方法是利用多种能生产可信图像的随机变换来增加数据内容,从而具有泛化能力。但是这里处理的是更大的图像,需要相应的增加网络,即再增加一个Conv2D+MaxPooling2D的组合,这可以增加网络尺寸,降低特征图大小,使其连接Flatten时候尺寸不会太大。它生成了150x150的RGB图像[形状为(20,150,150,3)]与二进制标签形状为【20,】组成的批量,生成器会不断生成这些批量,会不断循环目标文件夹的图像。创建数据集,验证集,和测试集。

2022-12-23 07:54:51 489

原创 自己动手写CPU【环境配置以及第一条ori指令】

自己动手写cpu这本书是雷思磊所著。通过这本书,作者将带着我们从一个最简单的或指令情况出发,逐步搭建处一个功能完整的五级流水线结构,兼容MIPS32 release1指令集。从2022年十一月份开始利用了课程闲暇时间,将处理器软核部分复现完成。这个系列的博客主要是复盘一下这个过程。我也在github上开源了相关代码,从第四章到第十一章,通过readme可以看见每个不同功能实现的具体代码。自己动手写cpu这本书通俗易懂,很容易复现。

2022-12-18 11:12:33 1712

原创 使用keras框架构建电影评论分类(二分类问题)

二分类问题可能是应用最广泛的机器学习问题。接下来这个例子就是将电影评论划分为正面和负面。

2022-12-16 10:55:14 217

原创 EAIDK610根文件扩容(ubuntu系统)

EAIDK 610刷机ubuntu16.04EAIDK610存储空间为16G,但是刷机软件只为根文件系统预留了3G左右内存,系统占有了2.5G左右。在开发过程中一定会遇到空间不够的情况,这篇文章将从刷机结束开始一步一步教你扩充根文件系统,并且解决期间遇到的bug。在刷机文件paramater.txt中(在路径下)定义刷机文件分区,规定,将根文件系统root设置为ext4模式,分区5。

2022-12-16 08:59:59 565 2

原创 基于Kera框架的手写数字识别

20行代码实现手写数字识别功能以及使用卷积神经网络对其进行优化

2022-12-14 09:53:18 240

原创 手把手教你在FPGA上移植NVDLA+Tengine并且跑通任意神经网络(4)

前一篇文章手把手教你在FPGA上移植NVDLA+Tengine并且跑通任意神经网络(3)截止上文已经实现了在ARM-FPGA中跑通一个demo历程。也恰恰说明了搭建的硬件和软件的正确性。那么如何转换设计的神经网络并且使用Tengine框架调用NVDLA后端呢?Tengine社区的example中给了我们最好的答案。首先将pytorch设计的模型转换为onnx模式然后再调用Tengine的model convert工具将模型转换为TMFILE。

2022-12-11 11:45:54 1107 1

原创 EAIDK 610刷机ubuntu16.04

EAIDK-610 预装 Fedora 28 及轻量级桌面系统 LXDE。缺省登录账号为 openailab,密码为 oal20200230。在项目开发中本人多用ubuntu操作系统较多,所以把根文件系统替换为ubuntu16.04。文末有刷机软件,驱动,和根文件系统。

2022-12-11 10:16:34 1035 3

原创 Nexys A7 上手历程 【流水灯】

nexys 流水灯 快速上手 测试板卡功能

2022-12-09 17:56:22 3447 1

原创 VIVADO下载过程以及【卡在optimize disk usage】的解决办法

首先说明的是vivado下载并不难,只是因为它的软件包过于庞大,多达40多个G,耗时较长。因为官网对软件包的下载限制(需要注册账号,有些学校上了管控名单,下载不易)。解决了这两个问题,其他部分跟着引导步骤走就不会有问题了。本文给出VIVADO一个通用的下载步骤,和针对卡在optimize disk usage的问题提出解决方案。右键以管理器员身份运行。然后一路next。点击continue。全选。next。勾选。更改路径,因为文件较大,自行存放到非C盘。下面开始漫长的等待。这时

2022-12-07 09:44:46 6005 1

原创 python将txt文件转换为xls文件(过滤空格,制表符)

应用场景 txt中每个数据直接有个空格的间隙,想要把每个数据转换到excle表中。转换后:terminal下安装库:运行代码,注意路径因为读取信息的格式是utf-8,空格的ASCII码是32,十六进制格式是\x20。如果是过滤空格替换为\t

2022-12-06 07:44:58 687

原创 cmake从入门到精通(附完整代码)

纸上学来终觉浅,觉知此时要躬行。学习一项技术最好的武器就是去实践和复盘。接触cmake有一年多了,但是真正学会cmake也是在用cmake编译项目的过程中,逐渐掌握了这门技术。本文想带着读者从一个小的点开始逐渐完善,最后做出一个涵盖绝大部分功能和满足日常需求的cmake demo工程。作者将在github中新建一个新的仓库,然后逐渐向上提交代码。最后作者会开源本项目的github网址,读者可以自行根据commit版本提示找到每一部分的源码。在这里我要安利一下,前些天写的这篇github教程。涵盖从进课题组开

2022-12-04 20:32:03 1024

原创 四个指令玩转github

所以本文不是一个大而全 Git 命令的使用手册,而是根据实际工作中最常见问题,提供小而美的解决方案,仅仅涉及四个命令:add,commit,reset,checkout。远程仓库涉及的三个命令:fetch,pull,clone

2022-12-04 10:53:28 274 2

原创 手把手教你在FPGA上移植NVDLA+Tengine并且跑通任意神经网络(3)

前一篇文章手把手教你在FPGA上移植NVDLA+Tengine并且跑通任意神经网络(2)已经说明了如何在ZYNQ上移植操作系统并且将跟文件系统替换为ubuntu16.04。到这里NVDLA的硬件和软件平台都已经搭建好了。这篇博客将带着大家在嵌入式平台上编译NVDLA/SW+Tengine。并且运行demo网络。然后笔者会从自己用pytorch搭建的网络模型开始,模型转换量化,并且用NVDLA后端调度。

2022-12-02 21:56:14 1514 3

原创 手把手教你在FPGA上移植NVDLA+Tengine并且跑通任意神经网络(2)

手把手教你在FPGA上移植NVDLA+Tengine并且跑通任意神经网络(1)这一篇将主要讲述如何移植ubunt16.04根文件系统+linux4.19内。并且在ZC706 FPGA上正确的加载驱动。经过上文在VIVADO SDK中的验证我们已经可以确定NVDLA模块的功能正确性。但是在日常应用中,需要拥有人机交互和自动配置的需求,官方开源了整套的SW软件栈。那么移植OS操作系统并且移植KMD是我们绕不开的一步了。

2022-11-28 09:14:15 1348 2

原创 手把手教你在ubuntu16.04上调试linux0.11代码

目前在跟着李治军老师的操作系统32讲学习操作系统原理。在完成操作系统的lab过程中常常会遇到一些奇奇怪怪的错误这样就需要打断点进行调试。但是linux0.11依赖于很多古老的编译工具链调试起来不是很友好。于是笔者发现了这样一个神奇的开源项目。可以利用现代工具链在qemu模拟器上编译并且单步调试linux0.11源码。

2022-11-27 22:46:45 916 1

原创 手把手教你在FPGA上移植NVDLA+Tengine并且跑通任意神经网络(1)

在FPGA上移植AI加速器,跑通任意神经网络模型

2022-11-26 12:38:44 4577 2

原创 一篇文章带你告别 Could not find a version that satisfies the requirement XXX

使用python构建项目,运行项目的过程中。困扰我们最多的有时不是代码本身而是,python复杂的包版本。python的包找不到出现的Import error Module的错误。python的包内找不到对应的函数。因为python包的版本不对使用pip命令下载不到对应的包,python版本和pip版本不对使用pip时下载速度慢,影响项目开发心情。选择的下载源不对。了解这么几个问题。接下来文章将手把手教会你如果使用Anaconda和pip命令实现软件环境的高效配置和封装。

2022-11-23 14:26:11 403

原创 如何编译并调试NVDLA编译器源码

NVDLA简单来说就是英伟达公司开源的AI处理器框架。NVDLA处理器主要包括Convolution Core,SDP,CDP,PDP等几个部分,分别进行卷积,线性运算,池化运算等等。可以单个模块工作,也可以多个模块协同工作。比如说Convlotion卷积得到的结果可以作为SDP的输入进行relu计算。为了让NVDLA的硬件可以更高效的配置,官方还开源了配套的软件工具链。compiler 编译器runtime 运行时kmd 内核驱动程序。

2022-11-20 09:04:06 1135

原创 NVIDIA Jetson AGX Xavier冰壶的跟踪与识别

冰壶场地中,一般只有两种颜色的冰壶。使用yolov5+deepsort算法完成冰壶的跟踪与识别。本文将主要介绍硬件选取,软件环境配置,和可能遇到的问题等等。NVIDIA Jetson AGX Xavier的GPU有512个核,是Jetson TX2的两倍,并且搭载了深度学习加速器,以及视觉加速器。Xavier的CPU表现也有了提升,从原来的6核提升到了8核,速度变为原来的两倍,Xavier的内存也由原来的8GB提升为16GB。这些提升对于我们的机器人来讲是至关重要的,因为机器人不仅仅需要板载深度学习运算,还

2022-11-15 10:07:50 1475 2

原创 ssh(个人PC机连接远程终端)

Secure Shell(SSH) 是由 IETF(The Internet Engineering Task Force) 制定的建立在应用层基础上的安全网络协议。它是专为远程登录会话(甚至可以用Windows远程登录Linux服务器进行文件互传)和其他网络服务提供安全性的协议,可有效弥补网络中的漏洞。通过SSH,可以把所有传输的数据进行加密,也能够防止DNS欺骗和IP欺骗。还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。目前已经成为Linux系统的标准配置。

2022-09-26 10:15:22 1020

原创 NVIDIA Jetson TX2 环境配置

NVIDIA Jetson TX2是NVIDIA 基于NVIDIA Pascal 架构,开发适用于各种边缘计算领域的超级计算机。具体性能指标和NVIDIA相关系列产品的对比图如下:更加形象的来说,在lenet-7层模型进行mnist数据集测试训练迭代过程中,TX2设备计算时间是传统i5处理器的2.88倍。GTX1080Ti是cpu i5的29倍Quadro P4000 cpui5的25.4倍3.Tesla P100是cpu i5的19倍。

2022-09-25 19:28:21 2429

原创 ZC706+petalinux+vivado最小系统建立实践

1.首先搭建硬件环境(导出hdf文件)1)进入vivado工程选择合适的板子型号,题主的板卡是zc706,芯片型号如下:2)创建IPdesign3)本文硬件上,将在ZYNQ Processing system里启用TTC、UART、SD以及之后可能用到的USB、Ethernet(网口0在bank1,bank1电压要选1.8V,否则报错)4)然后automation自动连接外设5)generate output products选择global...

2021-11-16 21:25:17 5466

原创 面向ZC706移植的NVDLA移植

1.sw/umd/utils/calibdata/calib_txt_to_json.py 这个是转换为json的脚本

2021-11-06 11:20:13 848 1

原创 docker的使用

1.docker 的基本概念Docker 包括三个基本概念:镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。 容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。 仓库(Reposit..

2021-11-03 18:24:44 386

空空如也

空空如也

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

TA关注的人

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