奇怪的bug
问题已解决
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180#pragma once#include "../src/main.h"#include "j ...
Paddle模型转PaddleLite
爱来自ZZULI❤drluo
从Github下载PaddleLite库
根据机型选择arm 或 x86编译
再次编译Opt,用于模型转换
转换模型
使用MobileConfig和PaddlePredictor部署模型
人工智能考核
注意:代码实现的题目,需要提交实现代码
注意:代码实现的题目,需要提交实现代码
注意:代码实现的题目,需要提交实现代码
task1.1
解释神经网络中卷积层的作用。
解释神经网络中池化层的作用。
解释神经网络中连接层的作用。
解释神经网络中激活函数层的作用。
解释神经网络中Dropout层的作用。
对于你给出的解释,请给出相应的PaddlePaddle对应的函数,并尽可能的解释函数参数的意义
(也可以是Pytorch/Tensorflow中的函数)
task2.1
在一个单层感知器中,假设有两个输入特征和一个输出。
权重分别是w1 = 0.5,w2 = -0.3,偏差为b = 0.1。
输入特征为x1 = 2,x2 = -1。
计算输出(假设激活函数是阶跃函数)。
task2.2(代码实现)
假设你有一个包含两个隐藏层的前馈神经网络,每个隐藏层分别有3个神经元。
输入层有4个特征,输出层有2个神经元。
所有的激活函数都是ReLU。
编写一个函数来计算整个网络的输出,给定输入和网络参数。
例如,一二三层权重为以下值时:
第一层权重:
W1:
[[ 0.3236 ...
yolo和paddle模型常见输出参数
爱来自ZZULI❤drluo
原文链接:yolo和paddle模型常见输出参数解惑
此文为本人方便查找手动转存记录,请支持原作者。
yolo和paddle模型常见输出参数
第一种
Concatoutput_dim_0 :变量,表示预测目标的数量,
7:表示每个目标的七个参数:batch_id,x0,y0,x1,y1,cls_id,score
第二种
85:每一行85个数值,5个center_x,center_y, width, height,score ,80个标签类别得分
25200:三个尺度上的预测框总和 ( 80∗80∗3 + 40∗40∗3 + 20∗20∗3 ),每个网格三个预测框,后续需要非极大值抑制NMS处理
1:没有批量预测推理,即每次输入推理一张图片
第三种
num_dets:表示其批次中每个图像中的目标数
det_boxes:表示 topk(100) 目标的坐标信息 [x0,y0,x1,y1]
det_scores:表示每个 topk(100) 个对象的置信度分数
det_classes:表示每个 topk(100) 个对象的类别
第四种 ...
PaddleDetection
爱来自ZZULI❤drluo
1. Config 类定义¶
Config 类为用于配置构建 Predictor 对象的配置信息,如模型路径、是否开启 gpu 等等。
构造函数定义如下:
12345678# Config 类定义,输入为 Noneclass paddle.inference.Config()# Config 类定义,输入为其他 Config 对象class paddle.inference.Config(config: Config)# Config 类定义,输入分别为模型文件路径和参数文件路径class paddle.inference.Config(prog_file: str, params_file: str)
代码示例:
12345678# 引用 paddle inference 预测库import paddle.inference as paddle_infer# 创建 configconfig = paddle_infer.Config("./mobilenet.pdmodel", "./mobilenet.pdipara ...
随便写的一些东西
爱来自ZZULI❤drluo
C/C++
图像经过bitset处理为二进制后再转为uchar格式便于串口发送,并支持解码为uchar数组(240 * 320)(row * col)
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 class UCHARFrame {public: UCHARFrame() { } UCHARFrame(const cv::Mat bi_frame) { biFrameToUCHARarr(bi_frame); this->uframe = (uchar*)malloc(sizeof(uchar) * 320 * 240); } ~UCHARFrame() { fre ...
实验室C语言第一次考核题目讲解及相关代码解读
爱来自ZZULI❤drluo
第一题
编写一个C语言函数(isPrime),该函数接受一个整数作为参数,检查该整数是否为质数(只能被1和自身整除的数),然后返回一个布尔值,如果是质数则返回1,否则返回0
注意:
请使用long long 代替 int,因为用于测试的数字可能很大(抱歉,后续测试数据依旧选择在了21亿范围内,即int类型范围,相关使用long long进行编写的代码,在测试时,一律手动修改为int,以确保不会因为类型影响计算速度)
(相关函数类型为bool的,也进行了调整,测试时保证所有人的函数均为int类型,传递的参数,内部参数均为int类型)
你的函数应该只有一个参数,并返回一个整数(1或0),用于表示是否为质数,并且不使用其他外部库或函数来进行质数检查(后经考虑,此函数允许使用sqrt(开方相较于乘积,为耗时操作))。
最终,你的函数将通过这样的方式被调用:
123456if (isPrime(num)) { printf("%d 是质数\n", num);}else { printf("%d 不 ...
C语言神经网络房价预测系统
爱来自ZZULI❤drluo
用户给出的往期房价数据,默认为housing.data,数据文件每行含有14项,其中前13项为房价影响因素,最后一项为同类型房价中位数,如下表:
属性名
解释
类型
CRIM
该镇的人均犯罪率
连续值
ZN
占地面积超过25平方米的住宅用地比例
连续值
INDUS
非零售商业用地比例
连续值
CHAS
是否临近ChariesRiver
离散值,1=邻近,0=不邻近
NOX
一氧化氮浓度
连续值
RM
每栋房屋的平均客房数
连续值
AGE
1940年之前建成的自用单位比例
连续值
DIS
到波士顿5个就业中心的加权距离
连续值
RAD
到径向公路的可达性指数
连续值
TAX
全值财产税率
连续值
PTRATIO
学生与教师的比例
连续值
B
1000(FM-0.63)^2,其中FM为外国人占比
连续值
LSTAT
低收入人群占比
连续值
MEDV
同类型房屋价格中位数
连续值
(房价影响因素及房价表)
整个系统应基于所给往期数据训练出相应模型,使模型可以对今后的房价进行预测,预测 ...
C、C++数组,指针,指针数组,数组指针的区别
C、C++数组,指针,指针数组,数组指针的区别
C语言中的数组、指针、指针数组和数组指针是不同的概念,它们在用途和定义上有明显的区别。
数组 (Array):
数组是一种数据结构,用于存储相同数据类型的元素。它们在内存中是连续分布的。
数组的大小是在声明时确定的,且不能改变。
数组的元素可以通过索引来访问,索引从0开始。
示例:
123int myArray[5]; // 声明一个包含5个整数的数组myArray[0] = 10; // 设置第一个元素的值为10int x = myArray[2]; // 读取第三个元素的值
一维数组
一维数组可以通过下标的方式访问(id = 房间号-1)
123int num[10]; //房间号 1 2 3 4 5 6 7 8 9 10//id 0 1 2 3 4 5 6 7 8 9
对于这个一维数组,我们可以这样理解它的存储方式(框中的数字为对应id)
二维数组
对于二维数组,我们可以理解为:数组在此的基础上多了一层
123int num[2][10];//这是一个有两层,每层10个房间的数组//如果我们想找到第2层第4个房间里面是谁,采用 ...
C、C++的大括号是必须的部分吗?
在作为一名初学者,你可能看到一些课程中,对于判断或者循环部分,会使用类似这样的两种方式:
123456789101112// 方式1if(a > 1){ printf("a > 1");}for (int i = 0; i< 10; i++) { printf("%d\n", i);}// 方式2if(a > 1) printf("a > 1");for (int i = 0; i< 10; i++) printf("%d\n", i);
并且你会发现,对于这两种方式,他们的效果一样。
那么大括号{}括起来和不括起来有什么区别呢?
在C语言中,if语句后面的圆括号()内的表达式决定了条件是否为真。
当条件为真时,if语句后面的代码块将被执行。
这个代码块可以是单个语句,也可以是用大括号{}括起来的多个语句。
下面我来解释两种写法的差异:
123 if(a > 1) { ...