自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 android 编译与运行环境配置

一 解压aosp-latest.tar adroid源码包 tar -xvf aosp-latest.tar(选其一解压) tar xf aosp-latest.tar cd aosp python3.6 ~/bin/repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-11.0.0_r25 --config二 配置repomkdir ~/bin # 在home下创建bin文件夹P

2021-12-06 19:48:15 2106

原创 将float类型的.pb模型量化成uint8类型的.tflite模型

一、 转化命令bazel run -c opt \ //tensorflow/lite/toco:toco -- \ --input_file=/home/yunji.he/code/tensorflow/tensorflow-1.15.5/pb_files/one_conver.pb \ --output_file=/home/yunji.he/code/tensorflow/tensorflow-1.15.5/pb_files/tflite_files/one_conver.tflit

2021-12-06 19:42:29 562

原创 安卓 NN参考文档

1 Android 9的神经网络API:https://blog.csdn.net/u011686167/article/details/81639320?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-2.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLI

2021-12-06 19:36:46 2070

原创 MNN参考文档

1 前端推理框架MNN代码架构阅读笔记:https://www.jianshu.com/p/d28047445c282 MNN推理过程源码分析笔记(一)主流程:https://zhuanlan.zhihu.com/p/1368098813 https://www.zhihu.com/people/huang-su(这是一个用户,里面有几篇很好的文章)4 MNN session创建详解:https://zhuanlan.zhihu.com/p/3987604545 MNN session创建详解(二)

2021-12-06 19:35:21 775

原创 tensorflow模型安装与测试

一 tensorflow安装(安装过的跳过)pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple/ tensorflow==2.0.0b1二 下载所需文件 elephant-299.jpg classify_image_graph_def-with_shapes.pb imagenet_2012_challenge_label_map_proto.pbtxt imagenet_synset_to_human_label_map.txt

2021-11-18 18:25:17 741

原创 android nn 笔记

一 笔记1.1reinterpret_castreinterpret_cast<类型说明符>(表达式)将表达式强制转换成类型说明符的类型1.2 模型由数学运算和通过训练学习到的常量值构成的计算图。创建成功后可以在线程和编译期间复用1.3 LOAD_FUNCTION根据共享对象HANDLE中找到所引用的运行时地址命名为NAME的符号,也就是说根据要调用的函数名找到函数的实体。1.4 NNAPINNAPI是 Android 8.1(API等级27)以后提供的专门处理机械学习的 Na

2021-10-29 09:59:53 1440

原创 MNN笔记

一 MNN相关的笔记1.1 getApprociateType 函数功能:确定了banckend的类型1.2 _scheduleUnit函数功能:确定了pipeline info 的信息1.3 generateScheduleGraph函数功能:用于寻找output的计算路径,因为图并不是所有结点都需要计算的,所以只需要找到和计算生成output的节点依赖就可以了1.4 梳理PipelineInfo里op的input/output遍历Pipeline里的所有op,找到Pipeline中的in

2021-09-18 15:50:48 896

原创 TFLite 模型官方代码分析

import osdef extract(path): import tarfile if path.endswith("tgz") or path.endswith("gz"):#获取当前的绝对路径 dir_path = os.path.dirname(path) tar = tarfile.open(path)# 使用生成器函数而非列表来提取一个 tar 归档的子集: tar.extractall(path=dir

2021-09-14 10:03:20 384

原创 C++ 偏特化

一、偏特化一部分参数#include <iostream>using namespace std;template<typename T1, typename T2>class people{public: void func(T1 a, T2 b) { cout << "func(T1 a, T2 b) " << endl; }};template<typename T1>class people<T1,

2021-08-25 16:12:42 330

原创 深度学习编译器及TVM 介绍

一、现有的框架有哪些(1)Google的TensorFlow(2)FaceBook的Pytorch(3)亚马逊的MxNet(4)百度的Paddle(5)旷视的MegEngine(6)华为的Mindspore(7)一流科技的OneFlow二、怎么解决编译器对多种语言的适配问题(1)解决方法:把编译器抽象的分为编译器前端,编译器中端,编译器后端,并引入•编译器前端:接收C/C++/Java等不同语言,进行代码生成,吐出IR•编译器中端:接收IR,进行不同编译器后端可以共享的优化,如常量替换

2021-08-24 16:57:59 1692 2

原创 C++ 全特化

一、概念(1)全特化:特化原模版的所有模板类型为具体类型(2)偏特化:有叫局部特化,特化原模版的部分类型二、全特化编程实战

2021-08-24 09:49:10 294

原创 模板特化编程

一、add函数库#include <iostream>using namespace std;template<typename T>bool GreaterThan(T a,T b){ if (a > b) return true; else return false;}int main(void){// double a = 6.4, b = 6.2; string a = "linux", b = "harmonyOS"; cou

2021-08-23 15:31:02 80

原创 类的静态成员

#include <iostream>using namespace std;class person{public: int age; static int height; static void printf(void) { cout << "printf" << endl; }};//静态成员函数有两种方法,一种是直接在类里面定义,一种是在类外面定义/*void person::printf(void){ cout <&

2021-08-09 18:04:09 59

原创 c++运算符重载

#include <iostream>using namespace std;class coordinate{public: int x; int y; coordinate(); coordinate(int x0, int y0); void printf(void); //定义类的时候,提供一个运算符重载相应的解析函数函数 coordinate operator+(const coordinate& other);};coordinate c

2021-08-09 17:06:22 69

原创 C++的const和mutable

一、canst可以实现常函数(1)常函数,就是class的成员函数承诺不会在函数内部修改class中的任何成员变量。(2)C++为什么设计常函数?这是为了class的设计者和使用者更好的协调,避免错误使用类库。二、编程实战三、...

2021-08-06 15:51:03 354

原创 C++有访问权限后编程的变化

一、只写或只读变量(1)如果class中需要一个变量,但是只能读不能写或者只能写不能读(2)分析:硬件、os、编程语言都未提供这样的RO或WO的机制,只能间接实现。(3)解决方案:利用访问权限,将成员变量设计为private,然后通过封装成员的方法实现。(4)如果只提供read方法就是只读,如果只提供write方法就是只写,如果两个都提供就是可读可写。(5)这样的成员经常被称为属性,C#等高级编程语言就支持这中编程思想。二、编程实战/*person.hpp*/#ifndef __PERSON

2021-08-06 14:19:40 85

原创 C++访问权限问题

一、public访问权限是全局的(1)pubilc的成员变量,在类的方法中可以直接访问(2)public的成员变量,在任何外部代码中可以通过类的对象直接访问。(3)public的成员方法,在类内其他成员可以直接调用。(4)pubilc的成员方法,在任何外部代码中可以通过类的对象来直接访问。二、private访问权限(1)private的成员变量,在内部可以直接访问。(2)private的成员变量,在类的外部不能通过对象访问。(3)private的成员方法,在内部可以直接访问(4)priva

2021-08-06 11:08:34 654

原创 C++浅拷贝和深拷贝

一、浅拷贝缺陷(1)普通成员变量初始化的拷贝构造函数就是浅拷贝。(2)如过没写浅拷贝构造函数,C++会自动提供一个浅拷贝构造函数。(3)浅拷贝在遇到动态内存分配时就会出现调用两次析构函数的问题。二、...

2021-08-06 09:43:49 76

原创 拷贝构造函数

一、用对象来初始化对象(1)简单变量定义时,可以直接初始化,也可以用另一个同类型的变量初始化。(2)用class定义一对象时,可以直接初始化,也可以用另一个对象来初始化二、为什么可以用(1)变量的直接初始化就是在变量分配内存后直接用初始化的值对分配的内存赋值(也就是把初始化的值存储在该内存中)(2)变量给变量初始化就是新定义的变量在分配内存会执行一个复制操作,将另一个变量的值复制到新定义变量的内存中。(3)对象的直接初始化就是对象在分配内存后调用了相应的constructor来完成初始化。(4

2021-08-05 16:35:18 86

原创 构造函数和类成员的初始化

一、构造函数一大功能就是初始化成员变量(1)默认的构造函数不带参数,也无初始化功能。(2)如没有其他构造函数,默认构造函数可以省略,如果有其它构造函数,则需要写构造函数。(3)如果在栈上分配对象的内存,不需要初始化则构造函数不加(),如果初始化需要带参。二、成员初始化列表(1)一般用于带参构造函数中,用来给属性传参赋值。(2)成员初始化列表与构造函数之间用冒号隔开,列表与列表之间用逗号隔开(3)初始化列表可以代替构造函数中的赋值语句三、构造函数使用参数默认值(1)class声明时可以给函数

2021-08-05 14:38:21 1540

原创 在构造函数和析构函数中使用动态内存

一、析构函数的使用(1)析构函数在对象被销毁时自动调用,一般有两种情况(2)用new的分配的对象,用delete析构(3)分配在栈上的对象,当释放时自动析构(4)一般情况下析构函数都是空的二、在class中使用动态内存变量(1)什么情况下使用动态内存?需要大块内存而且需要灵活的申请和释放,如果使用栈怕爆,如果使用全局变量怕内存浪费和死板时。(2)在class person中增加一个int指针,用于int指向内存的空间。(3)在构造函数中分配动态内存。(4)在析构函数中回收动态内存(5)将

2021-08-05 10:23:59 826 1

原创 C++的构造函数和析构函数

一、什么是构造函数和析构函数(1)constructor,字面意思是用来构造对象的函数;destructor,字面意思就是用来析构对象的函数。(2)可以理解为语言自带的一种hook函数(又称回调函数)(3)当对象产生是constructor会自动被调用,一般用于初始化class的属性,分配class内部需要的动态内存。(4)当对象消亡是会自动调用destructor,一般用于回收constructor中·分配的动态内存。二、构造函数和析构函数的一般用法(1)如果没有写构造函数和析构函数,C++会

2021-08-04 16:48:16 481

原创 典型的C++面向对象编程

一、元素(1)头文件HPP中定义类。(2)源文件中cpp中类的实现(构造函数,析构函数,方法)(3)主程序执行二、编程案例(1)用C++编程“人一天的生活”(2)“人”的属性:name、age、male、(3)“人”的方法:eat,work(coding/shopping),sleep(4)人的生活:eat1>work>eat2>work>sleep三、代码实战//person.hpp中的内容#ifndef __PERSON_H__#define __PERS

2021-08-04 15:28:16 664

原创 C++实现流水灯

#include <iostream>#include<stdio.h>//#include<unistd.h>using namespace std;//类型定义typedef void(*pfunc_on_t)(void);typedef void(*pfunc_off_t)(void);typedef void(*pfunc_delay_t)(void);//第一步,定义我们的对象struct led{public: //属性 int

2021-08-04 10:37:52 550

原创 面向对象实现C语言实现流水灯

一、怎么实现LED流水灯(1)面向对象编程的第一步就是把你要处理的认为当成一个对象。(2)第二步,将你的认为分解成多个对象的方法完成。(3)抽象出你的“对象模型”来,用struct来表示,对象的功能方法用函数指针来表示。(4)方法中需要用到的变量定义为属性,用struct内包含的变量实现。(5)实现你“抽象出来对象”的struct全套数据和函数体(6)联动调试二、分析流水灯(1)分析出本案的对象“led”(2)分析出对象的方法:led.on,led.off,led.delay(3)抽象出

2021-08-04 10:13:39 474

原创 C++的可用内存区域

一、C语言可用的内存区域(1)栈,对应局部变量(2)全局数据区/静态数据区,对应全局变量,静态局部变量(3)const数据区,在内存层面是不存在的,是 C编译器营造的(4)代码段,放可执行程序的,本质是ROM(5)堆heap,由malloc和free来管理的一块内存二、C++ 新增内存区域(1)自由存储区(2)new操作符申请的三、总结(1)代码段只会读,不会写,一般不会出问题(2)全局数据区和栈区都是自动管理的,只要可用内存足够一般都不会出问题(3)const数据区由编译器来保证,

2021-08-03 18:46:56 120

原创 C++的异常处理机制

一、何为异常处理(1)异常exception,即运行时错误(2)C语言中没有异常机制,所以一旦出错就终止运行(3)C++中新增了异常处理机制,允许程序在运行出错的时候拦截错误并处理。(4)异常机制的一个典型案例就是:由用户输入两个数字相除,但是除数为零。二、异常处理编程实战(1)三个关键字:try,catch,throw(2)代码#include <iostream>using namespace std;int main(void){ cout <&l

2021-08-03 15:41:13 304

原创 C++中static和this关键字

一、static在C中的用法(1)静态全局变量和函数,限制链接属性,C++中建议优先使用命名空间替代。(2)静态局部变量,更改地址域和生命周期。C++中沿用二、static在C++中新增用法()

2021-08-03 14:14:33 154

原创 C++类与面对对象

一、struct和class(1)struct是C中的自定义类型,主要功能是将一个功能相关的数据进行一个封装。(2)struct不能封装函数,但是可以通过函数指针间接的封装函数。(3)struct就是class的初级阶段,class就是对struct进行了很多扩展,就有了面对对象。二、访问权限(1)类是对数据(变量)和方法(函数)的封装。(2)封装的一个重要特征就是访问权限的管控,本质上是隐藏实现,以免被意外篡改。(3)C++有三个访问级别管控。分别为:private、protected、pu

2021-08-03 13:41:41 43

原创 typeid的使用方法

一、typeid的基础知识(1)typeid是一个运算符,类似与sizeof(2)typeid定义在typeidinfo头文件中(3)功能是可以打印目标的类型(4)typeid可用于动态类型,也可以用于静态类型,静态类型和动态类型分别对应的是编译和运行。(5)typeid多数运用于class和继承中二、代码示例#include <iostream>#include<typeinfo>using namespace std;int main(void){

2021-08-03 10:37:15 3279

原创 C++内存对齐

一、C语言中内存对齐的关键点(1)#pragma 和 attribute((packed)) __attribute((aligned(n)))二、C++中内存对齐的两个关键字()

2021-08-03 09:49:28 172

原创 c++共用体union的注意事项

(1)union中所有元素只能选择一个。(2)C++中定义union后使用可以不写union(3)C++中union成员可以是对象,但是不能包含自定义的构造函数和析构函数(4)C++使用匿名的union,一般内置在class的内部。...

2021-08-02 16:46:21 181

原创 C++的枚举

一、示例代码#include<iosttream>using namespace std;//C++11开始enum支持的新写法enum class day:unsigned int{MON,THU,MEN} //:是隔离符,unsigned int 是指定枚举的类型//C或C++98年的老版本这么写enum day {MON,THU,WEN}int mian(void){ day d1; //d1 = MON; d1 = day::MON; if(d1 not

2021-08-02 16:37:26 84

原创 bool类型和字符类型(C++)

一、 C++的bool关键字(1) bool类型也叫逻辑类型,只有true或false两个值。(2) C语言中没有bool类型,一般使用typedef int bool这样定义。(3) C++支持bool关键字,一般占一个字节(与平台有关)。(4) Bool内建和自定义至少有一个差别,函数重载机制认为bool是不同类型。二、 类型所占的内存1 == sizeof(char) <= sizeof(short) <= sizeof(int) <= sizeof (long) &lt

2021-08-02 14:45:04 700

原创 C调用C++库

一、制作C++库cppadd.hpp文件内容ifndef __CPPADD_HPP__#define __CPP_ADD_HPP__int add(int a, intb);#endifcppadd.cpp文件内容include<cppadd.hpp>int add(int a,int b){ return a+b;}#制作C++库·gcc -c cppadd.cpp -o cppadd.oar -r libcppadd.a cppadd.o...

2021-08-02 11:29:20 421

原创 C与C++的混合编程

一、为什么需要混合编程(1)C有很多优秀的项目库,C++里需要调用(2)庞大的项目划分后有一部分适用C,一部分适用C++(3)一个项目组中可能有人习惯使用C,也有人习惯使用C++二、为什么不同语言可以混合编程(1)程序编译过程:源文件->目标(库)文件->可执行文件->镜像文件(2)难点:C++支持函数名重载,而C不支持,因此编译器生成目标文件时,函数名在目标文件中的临时内部名称规则不同,导致链接是符号对应不上。(3)解决方案:使用extern “c”{};让C++在对接的局

2021-08-02 07:44:15 536

原创 C++字符串string类的使用

一、代码#include<iostream>#include<string>using namespace std;int main(void){ string s1,s2,s3; s1 = "abc"; s2 = "def"; cout << "the length of s1" << s1.size << endl; #打印字符串的长度 cout << "the capacity of s1" <&

2021-08-01 23:39:49 168

原创 fstream读写文件编程实战

一、文件写入代码#include<fstream>#include<iostream>using namespace std;int main(void){ char str[] = "I love C++"; char rstr[16] = {0}; fstream fs; #定义一个文件操作对象 fs.open("1.txt",ios_base::out); #将文件设置为写操作,如果没有1.txt这个文件则自动创建1.txt文件 if(fs.

2021-08-01 23:12:53 329

原创 iostream中cin的基本使用

一、注意事项(1)输入不是使用引用符& 如scanf("%d’,&val)(2)cin输入是会以空格来中断。二、实例代码#include<iosteam>using namespace std;int main(void){ int val1,val2; cout << " please input number" << endl; cin >> hex >> val1 >> val2; #输

2021-08-01 17:08:35 281

原创 iosteam的基本使用

一、cout的基本使用(1)cout是表准输出,对应的是C中的stdout(2)cout定义在标准命名空间std中,按照三种方法来使用(3)结合<<流操作符进行输出,可多节连接(4)cout涉及的头文件有(与标准输入和标准输出有关)、(输入输出的格式化如左对齐。)、bits/ios_base.h。(5)cout本质上就是ostream的一个对象。(6)流操作符<<本质上是一个左移运算符在iostream的运算符重载。(7)endl的功能是换行,相当于\r\n(8)输出

2021-08-01 16:53:19 642

S5PV210_UM_REV1.1.pdf

S5PV210_UM_REV1.1.pdf

2022-05-09

c++随堂代码.rar

c++随堂代码.rar

2021-08-26

数码管版课设.rar

(压缩包包含代码,仿真图,流程图)通过51单片机实现交通灯的数码管倒计时。东西南北交通灯转换如下:状态转换间隔为30秒,转换过程以某一路口说明如下例:绿灯常亮25秒→绿灯闪烁3秒→黄灯亮2秒→红灯常亮30秒→绿灯常亮25秒→……

2020-08-13

C语言红外循迹超声波直角避障代码

用st188红外循迹边线,当达到直角弯道时,用超声波实现直角避障。

2019-07-19

空空如也

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

TA关注的人

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