[集创赛海云捷讯杯]全国二等奖经验分享 笔者是研一在校生,从五月份开始和本科生一起卷集创赛,经历初赛,分赛区决赛,全国总决赛,认识了很多一起做比赛的朋友收获颇丰。今年海云杯初赛报名队伍340支左右,晋级分赛区决赛的队伍130支,晋级全国总决赛22支加上各赛区优秀组织队伍报送一共晋级全国总决赛26支队伍。在淘汰率方面可以说是各杯赛最卷的几个杯赛之一了。其中我在的东北赛区分赛区八组晋级一组总决赛,除了西南赛区各个赛区也基本上都是这个比例。
卷积神经网络加速器设计与优化实验(一) 本系列主要用高层次综合的方法复现了赛灵思和北京高能效研究所推出的神经网络加速器优化过程,并做了笔记和记录。神经网络加速器设计与优化实验课程录播领域专用架构设计(Domain-specific Architecture DSA)根据应用的计算,访存特性设计专用的硬件架构。提升性能能效。面向一类应用而不是某一个特定的应用(ASIC)。机器学习应用的神经网络加速器,图像处理GPU。DSA的优势更加合理高效的并行方案访存带宽的专门优化数值精度的合理选取领域专用的编程语言。
FPGA之以太网详解 以太网(Ethernet)是当今局域网采用的最通用的局域网标准。它规定了包括物理层的连线,电子信号和介质访问协议的内容。它具有成本低,通信速率快,抗干扰性强的特点。标准以太网:10Mbit/s快速以太网:100Mbit/s千兆以太网:1000Mbit/s以太网的接口主要有RJ45,RJ11,SC光纤接口等等。其中RJ45是我们最常见的网络设备接口。RJ45是布线系统中信息插座(即通信引出端)连接器的一种,连接器由插头(接头、水晶头)和插座(模块)组成,插头有8个凹槽和8个触点。
ARM,DSP,FPGA三者比较 这三款不同类型的芯片,笔者在不同项目中都有不同的使用。本科做电赛的时候做个cortex-mo arm芯片的开发。毕业设计做过基于zynq7000 soc核的NVDLA软硬件系统移植。研究生阶段实习公司的算法一般开发在DSP平台上。三个嵌入式芯片可以说是各有千秋,分别能在不同场合下有所应用。ARM(Advanced RISC Machines)是微处理器行业的一家知名企业,设计了大量高性能、廉价、耗能低的RISC处理器、相关技术及软件。
Python yield关键词的用法 读项目源码的时候感觉遇见yield这个关键词很陌生,所以写这篇博客记录一下。yield关键词和return相似但是又不同。当函数第一次遇见yield的时候不返回yield后的值而是返回一个迭代器对象,后面调用迭代器的next方法,开始产生返回值。输出值1.程序开始执行以后,因为foo函数中有yield关键字,所以foo函数并不会真的执行,而是先得到一个生成器对象。2.直到调用next方法,foo函数正式开始执行,先执行foo函数中的print方法,然后进入while循环。
Python和matlab列表切片的用法 :]与 [::] 语法是通用列表操作其中的两个。用 [:] 或[::]对多数序列类型(可变的或不可变的)(如字符串、列表等)序列中元素进行截取。matlab和python的用法是差不多的,但是却用一次忘记一次。
ARM64平台上安装PyQt5环境【包括error: Qt::ItemDataRole is not a class or namespace解决方案】 在嵌入式ARM64开发平台上,直接用pip安装pyqt5,会出现各种各样的编译错误。根据其他博客以及参考资料。在ubuntu操作系统上直接即可使用。但是由于python笔者也是编译安装的,环境中的python版本有多个。于是考虑到源码安装到对应的python版本中。
VGG16 keras框架 猫狗识别【使用预训练的卷积神经网络】 想要将深度学习应用在小型数据集,一种高效的方法是使用预训练的网络。预训练的网络是之前保存好的网络,之前大型数据集(通常是大规模图像分类任务)上训练好。如果这个原始数据集足够大且足够通用,那么预训练的网络学到的特征的空间层次结构,可以有效的作为视觉世界的通用模型,因此这些模型可以用于各种不同的计算机视觉问题。使用预训练网络有两种方法:特征提取和微调模型。
自己动手写cpu[解决流水线数据冲突问题] 自己动手写CPU【环境配置以及第一条ori指令】中实现的五级流水线结构很简单,如果按照简单即美的标准,流水线结构是美的,但是并不完美,现实往往是复杂的。流水线中经常有一些被称为“相关”的情况发生,它让指令序列中下一条指令无法按照设计的时钟周期执行,这些问题会降低流水线的性能,流水线中的相关问题分为以下三种类型。(1)结构相关:指的是在指令执行的过程中,由于硬件资源满足不了指令执行的要求,发生硬件资源冲突而产生的相关。
使用keras框架进行猫狗分类 数据增强是从现有的训练样本中生成更多的训练数据,其方法是利用多种能生产可信图像的随机变换来增加数据内容,从而具有泛化能力。但是这里处理的是更大的图像,需要相应的增加网络,即再增加一个Conv2D+MaxPooling2D的组合,这可以增加网络尺寸,降低特征图大小,使其连接Flatten时候尺寸不会太大。它生成了150x150的RGB图像[形状为(20,150,150,3)]与二进制标签形状为【20,】组成的批量,生成器会不断生成这些批量,会不断循环目标文件夹的图像。创建数据集,验证集,和测试集。
自己动手写CPU【环境配置以及第一条ori指令】 自己动手写cpu这本书是雷思磊所著。通过这本书,作者将带着我们从一个最简单的或指令情况出发,逐步搭建处一个功能完整的五级流水线结构,兼容MIPS32 release1指令集。从2022年十一月份开始利用了课程闲暇时间,将处理器软核部分复现完成。这个系列的博客主要是复盘一下这个过程。我也在github上开源了相关代码,从第四章到第十一章,通过readme可以看见每个不同功能实现的具体代码。自己动手写cpu这本书通俗易懂,很容易复现。
EAIDK610根文件扩容(ubuntu系统) EAIDK 610刷机ubuntu16.04EAIDK610存储空间为16G,但是刷机软件只为根文件系统预留了3G左右内存,系统占有了2.5G左右。在开发过程中一定会遇到空间不够的情况,这篇文章将从刷机结束开始一步一步教你扩充根文件系统,并且解决期间遇到的bug。在刷机文件paramater.txt中(在路径下)定义刷机文件分区,规定,将根文件系统root设置为ext4模式,分区5。
手把手教你在FPGA上移植NVDLA+Tengine并且跑通任意神经网络(4) 前一篇文章手把手教你在FPGA上移植NVDLA+Tengine并且跑通任意神经网络(3)截止上文已经实现了在ARM-FPGA中跑通一个demo历程。也恰恰说明了搭建的硬件和软件的正确性。那么如何转换设计的神经网络并且使用Tengine框架调用NVDLA后端呢?Tengine社区的example中给了我们最好的答案。首先将pytorch设计的模型转换为onnx模式然后再调用Tengine的model convert工具将模型转换为TMFILE。
EAIDK 610刷机ubuntu16.04 EAIDK-610 预装 Fedora 28 及轻量级桌面系统 LXDE。缺省登录账号为 openailab,密码为 oal20200230。在项目开发中本人多用ubuntu操作系统较多,所以把根文件系统替换为ubuntu16.04。文末有刷机软件,驱动,和根文件系统。
VIVADO下载过程以及【卡在optimize disk usage】的解决办法 首先说明的是vivado下载并不难,只是因为它的软件包过于庞大,多达40多个G,耗时较长。因为官网对软件包的下载限制(需要注册账号,有些学校上了管控名单,下载不易)。解决了这两个问题,其他部分跟着引导步骤走就不会有问题了。本文给出VIVADO一个通用的下载步骤,和针对卡在optimize disk usage的问题提出解决方案。右键以管理器员身份运行。然后一路next。点击continue。全选。next。勾选。更改路径,因为文件较大,自行存放到非C盘。下面开始漫长的等待。这时
python将txt文件转换为xls文件(过滤空格,制表符) 应用场景 txt中每个数据直接有个空格的间隙,想要把每个数据转换到excle表中。转换后:terminal下安装库:运行代码,注意路径因为读取信息的格式是utf-8,空格的ASCII码是32,十六进制格式是\x20。如果是过滤空格替换为\t