自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 神经网络线性量化方法简介

大多数网络模型都采用32位浮点数(FP32)来存储网络参数。如果改用较低精度的16位浮点数(FP16)来存储网络参数,那么网络模型就可以减小一半。常用的低精度表示方法有16位定点数(INT16)、8位定点数(INT8)、4位定点数(INT4)、二进制(INT1)等。其中,使用INT1量化的网络称为二元神经网络(Binary Neural Network, BNN)。根据网络参数到特定位宽定点数的映射类型,可将量化策略可分为线性量化和非线性量化两种。

2024-03-05 14:13:05 1224

原创 HLS的硬件加速器设计

减少循环过渡时的条件判断和计数器更新次数,可以减少循环的延迟,从而提高性能,循环展平的基本原理也是如此。一般地,软件程序中的函数最终会综合成为相应的电路模块实体,而程序中的控制流和数据流则由HLS工具中的调度和绑定程序(Scheduling and Binding Processes)映射到硬件电路当中。综合结束后,一种情况是HLS会在下方的控制台中输出报错信息,此时说明所添加的制导语句不能被实现,需要删除之。默认情况下,若代码中存在多个循环,则在生成的RTL电路中,这些循环对应的电路也将顺序执行。

2024-03-04 20:04:30 947

原创 经典目标检测网络Yolo——原理部分

YOLO(You Only Look Once)是一种基于深度神经网络的目标对象识别和定位算法,其特点是运行速度快、实时性高。在本实验中,我们将使用Tiny YOLOv2版本的YOLO算法。YOLO算法创造性地将R-CNN目标检测中的选择候选区和识别候选区对象两个阶段合二为一,这也是YOLO名字的来由(只需看一眼就知道图片的哪些位置有什么对象)。在检测目标时,YOLO首先将图片划分为7×7=49的网格,并允许在每个网格中预测出2个可能包含目标对象的候选边框(Bounding Box)。

2024-03-03 21:06:20 996

原创 通过MNIST手写数字识别任务快速入门深度学习(事无巨细版)

深度学习(DL, Deep Learning)是机器学习(ML, Machine Learning)领域中一个研究方向。深度学习通过对样本数据的内在规律和特征的提取与抽象,在不同维度和层次上进行处理,让机器能够像人一样具有分析学习能力,能够识别文字、图像和声音等数据。相比于初期的机器学习,深度学习是更加复杂的算法,但是同时因为深度学习算法的普适性,以及在语音和图像识别方面取得的惊人效果,他的发展速度远远超过先前相关技术。

2024-03-03 20:57:12 1153

原创 阿姆达尔定律(Amdahl’s law)

S11−ppNS1−pNp​1​当p0p=0p0时,即只有串行没有并行,无论N为多少,加速比SSS均为1。当N→∞N→∞,当并行核心数无限增多时,极限加速比S11−pS=1/(1-p)S1/1−p。例如若并行代码为75%,极限加速比不能超过4。也就是说,在并行系统中一味的增加运算资源,并不能永远成倍地提升系统整体性能。

2024-03-02 21:54:23 1036

原创 以目标检测和分类任务为例理解One-Hot Code

在目标检测和分类任务中,每一个类别都需要一个编码来表示,同时,这个编码会用来计算网络的loss。比如有猫,狗,猪三种动物,这三种动物相互独立,在分类中,将其中任意一种分类为其他都同等的错误。在这种情况下,我们比如将猫为0,狗为1,猪为2。就会出现一个问题,三者之间两两距离不同。这在参与损失计算的时候是完全不能接受的:互相独立的标签之间,竟然出现了不对等的情况。因此,需要有一种表示方法,将互相独立的标签表示为互相独立的数字,并且数字之间的距离也相等。

2024-03-02 21:41:21 1311

原创 C++质数的寻找和判断方式(代码)

根据质数的定义,可以知道,如果一个数所有小于他的质数都不是他的因数,那么他就是质数#include<iostream>#include<vector>using namespace std;//key是要判断的数字,a是vector类的元素,其中保存了所有比key小的质数bool check(int key,vector<int>& a) { for (int i = 0; i < a.size(); i++) { if (key % a[

2021-07-31 09:14:02 1561

原创 出现安全性报错,解决办法(只想用报错的那个函数)

在报错文件的最开始写上#define _CRT_SECURE_NO_WARNINGS就可以运行

2021-07-31 08:57:25 299

原创 C++数字类型(int,float,double)转化为字符串类型(string)

文章目录函数(C++11之后)一些条件下可能不满足要求借助字符串流函数(C++11之后)to_string(类型,数字)一些条件下可能不满足要求浮点数可能有精度损失一些老的OJ系统不能使用借助字符串流点击查看原文标准库定义了三种类型字符串流:istringstream,ostringstream,stringstream,看名字就知道这几种类型和iostream中的几个非常类似,分别可以读、写以及读和写string类型,它们也确实是从iostream类型派生而来的。要使用它们需要包含sst

2021-07-30 18:39:32 1627

原创 Mathematica使用查找手册

文章目录几点常识与须知一些常量的符号因式分解导数不定积分计算矩阵特征值绘制函数图像交互式操作几点常识与须知内置函数名多采用自然输入法,函数名就是英文单词,首字母要大写函数的变量或运算内容用 [ ]列表,变量的范围用 { }运行函数用 Shift + Enter 一些常量的符号圆周率 Pi自然常数 E因式分解Factor[ ]导数D[ ] 不定积分Integrate[ ]计算矩阵特征值A = { { },{

2021-07-28 10:05:16 455

原创 数制与码制——二进制和原码 补码 反码

数制与码制数制基数(Radix)位权值(Weight)二进制(Binary Number System)二进制 八进制 和 十六进制的转化码制数据的表示方法真值法和机器数符号位和数值位(机器数的表示)原码(存在+0和-0,不能变减法为加法带符号位计算)反码(存在+0和-0)补码模补码表示法三者对应表格为何补码可以带符号位计算数制基数(Radix)指表示计数进制所用的字符或数码的个数,是每一个数位可能出现的所有符号;并写为数的下标用来表示数字采用什么进制十进制: 0~9 十个阿拉伯数字二进制: 0

2021-07-27 16:17:32 1903

原创 C++数学操作

文章目录包含的头文件开方和乘方包含的头文件#include<math.h>开方和乘方double pow(double x, double y)//其中 x是底数,y 是指数pow(3,1.0/3)//意思是3的1/3次方pow(2,2.0)//意思是2的平方

2021-07-27 09:22:41 63

原创 C++函数

占位参数直观了解void fun(int a, int){//其中int(不带变量名),为占位参数cout<<"this is func"<<endl;}//调用函数的时候,如果没有默认参数,必须将占位参数填补才能调用fun(2,10);//10不能省(占位参数必须填补)占位参数可以有默认参数void fun(int a, int=10){//占位参数int 设定初值为10cout<<"this is func"<<endl;}占位

2021-04-09 23:34:57 191

原创 C++标准库STL学习(更新中)

文章目录迭代器的理解STL中的顺序表——vector使用示例定义迭代器vector类中的方法begin、end、front、back方法的区别迭代器的理解1)迭代器不是指针,是类模板,只是使用起来和指针有很多相似。2)迭代器返回的是对象引用而不是对象的值,所以使用值时要使用取内容操作符“*”3)迭代器的类成员就是指针4)迭代器指向的对象是容器STL中的顺序表——vectorvector:向量内部使用数组来实现的类模板顺序表原理详见《数据结构与算法》使用示例#include<ios

2021-03-08 20:44:27 215

原创 try-catch-throw异常处理入门

文章目录C++的异常处理机制语法结构能够捕获任何异常的 catch 语句C++的异常处理机制相关原文连接C++ 引入了异常处理机制。其基本思想是:函数 A 在执行过程中发现异常时可以不加处理,而只是“拋出一个异常”给 A 的调用者,假定为函数 B。拋出异常而不加处理会导致函数 A 立即中止,在这种情况下,函数 B 可以选择捕获 A 拋出的异常进行处理,也可以选择置之不理。如果置之不理,这个异常就会被拋给 B 的调用者,以此类推。如果一层层的函数都不处理异常,异常最终会被拋给最外层的 main 函数

2021-03-06 11:14:32 192

原创 template 模板类入门

2021-03-03 16:36:33 411

原创 C++格式化输出相关

添加头文件iomanip1.控制输出格式的函数setprecision(int n) //设置实数精度为n位setw(int n) //设置字段宽度为n位setfill(char x) //设置填充字符为xsetiosflags() //设置输出格式状态resetiosflags() //终止已设置的输出格式状态注意:setprecision(n)函数,控制输出浮点数的数字个数,而且进行四舍五入,而且若尾数均为0,则不输出0若先用ios::fixed进行输出格式限定.

2021-03-03 16:07:09 99 1

原创 输入任意长度字符串并可以进行字符操作的方法

一种方法:输入到字符串类型中,然后用string.length()进行构造出对应字符数组#include<iostream>#include<cstring>using namespace std;int main() { string str; int ASCIIn[128] = { 0 }; cin >> str; const int len = str.length(); char* s = new char[len]; for (int i =

2021-03-02 08:23:38 1348

原创 Python学习笔记

1.进制前缀二进制 0b八进制 0o十六进制 0x

2021-01-21 22:20:13 281 1

原创 C/C++练习题目总结

统计所有字母的个数题目:从键盘输入一行或几行字符串,行数由键盘输入,一行字符串用字符数组存储。请统计所输入的字符串中26个字母(不区分大小写)出现的次数,并将出现次数非零的字母统计结果输出到屏幕上,格式参见样例。如果没有字母,请输出字符串中无字母。出错的代码如下:#include<iostream>using namespace std;int main() { int hang,log=0; char a[26] = { 0 }; char ch[10000]; c.

2021-01-07 16:39:29 772

原创 C/C++理论知识补充

1.预处理比如#include<iostream>实际上就是将iostream文件中所有内容拷贝到这个文件中2.operator实际上是种函数比如cout<<"hello world"<<"\n";其实就是cout.print("hello world").print("\n");

2021-01-06 17:07:51 162 1

原创 大一上C++复习笔记

大小写转换方法1:用ASCII码关系,小写字母-32为大写字母,大写字母+32为小写字母方法2:使用toupper和tolower函数,但是要注意,这两个函数的返回值为int型,如果使用要显示转换为char型。//========例子=========//#include<iostream>using namespace std;int main() { char a = 'a'; char b = 'B'; cout <<(char) toupper(a) .

2020-12-17 19:40:31 1404

原创 如何判断输入的是浮点型还是整型

因为输入浮点数一定存在小数点所以,在此使用字符数组,记下输入的数字,若其中存在该字符,则为浮点型,否则为整型。代码示例:char str[15]={0};bool n=false;//是否为浮点数cin>>str;for (i = 0; str[i]; i++){ if (str[i] == '.')//若出现小数点 n=true;//为真 break; }...

2020-12-11 18:54:51 2690

原创 C++学习笔记:指向数组的指针(例题)

指向元素的指针:int a[10]={0,1,2,3,4,5};int *p=a;则数组p是指向int型元素的指针;*(p+i)是数组a的第i+1个元素指向一位数组的指针int b[][3]={1,2,3,3,4,5};//定义一个二维数组int (*p)[3];//创立一个指向一维数组的指针p=b;//因为b的元素可看为一维数组,所以p指向第一个一位数组b[0]题目int[][3]={10,20,30,40,50,60};int(*p)[3];p=n;cout<<

2020-12-03 17:30:25 695

原创 计算文本中空格个数(学习一些判断文件结束的语句)

自己初次代码#include<iostream>#include<fstream>using namespace std;char hold[1000] = {0};//建立暂时存放字符数组int spanum = 0, cnum = 0;int count(char a,int n) { ifstream Inf("e:\\youth.txt"); while (!Inf.eof()) { Inf.getline(hold, 1000, '\n'); i

2020-11-24 00:25:46 325

原创 C++学习笔记:fstream,ifstream和oftream的区别

fstream不会覆盖文件中原本的内容,会沿着内容最后一位继续写ofstream打卡文件后就将文件清空,再进行输入例子(1)ftream#include<iostream>#include<string>#include<fstream>#include<iomanip>using namespace std;struct student { int num; string name; float Mscore; float

2020-11-14 23:49:16 1737

原创 C++学习笔记:rand函数

rand函数生成0~RAND_MAX之间的数,RAND_MAX至少为32767,二进制为1111111111111111(16个)rand()%32;//产生[0,32)的伪随机数rand()%32+1;//产生[1,33)的伪随机数srand((unsigned)time(NULL));rand();//产生真正的随机数...

2020-11-07 20:42:43 154

原创 getline基本应用,C++学习笔记

在istream中的getline()函数有两种重载形式:istream& getline (char* s, streamsize n );istream& getline (char* s, streamsize n, char delim );作用是: 从istream中读取至多n个字符(包含结束标记符)保存在s对应的数组(用于数组)中。即使还没读够n个字符,如果遇到delim 或 字数达到限制,则读取终止,delim都不会被保存进s对应的数组中。...

2020-10-31 10:30:01 54

原创 C++学习记录:数组清空

1、memset函数格式memset(&Address,0,sizeof(Address))e.g.memset(ch,'\0',sizeof(ch));将ch数组清空为‘\0’2、strcpy函数格式strcpy(name,"");

2020-10-31 10:09:13 5463

原创 C++学习记录:循环语句中unsigned int死循环问题

C++学习:循环语句中unsigned int死循环问题代码for (unsigned int count = 9; count >= 0; --count) cout << count << " ";程序陷入死循环原因,当count=0时,二进制补码存储为全0,再减一,变为全1,在unsigned int中为2^32-1,陷入死循环...

2020-10-30 10:19:42 577

池塘生态系统(大鱼吃小鱼)大作业C++ 完整项目

北邮 大一C++大作业 池塘生态系统 大鱼吃小鱼

2022-05-11

池塘生态系统大一C++期末大作业

在BUPT的第一个C++程序作业,VSstudio制作。可参考,请勿直接Ctrl+C/V

2021-04-09

C++池塘生态系统分享

有相关问题的解决思路,不是很详细,可能有帮助,是用来课上报告的(不知道这个摘要为啥一定要五十个字以上,打的我好累)

2020-12-07

空空如也

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

TA关注的人

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