自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 代码里的世界观之数据和代码的关系

每个程序的运行过程,都可以比喻成弹珠穿越迷宫的游戏.有一个竖直方向的复杂迷宫,上面有若干入口,底下有若干出口,里面的路径连接很复杂.我们让众多大小不一,形状各异的弹珠从迷宫上面的入口顺着迷宫管道往下落,直到出口。弹珠从入口跑到出口的过程,就相当于程序运行的过程。实际上,真实模型会更复杂一些。入口并不是弹珠的唯一来源,有的管道自己会产生弹珠往下落,此外,在运行过程中,有的弹珠会消失在管道里,永远不在出来。如果要对应多线程,迷宫模型也要相应的扩展,在前后叠加多个迷宫,由平面变成立体,迷宫相互之间还有桥梁

2021-10-24 18:11:07 2472 1

原创 为什么CNN中可以用卷积核提取相似度?

卷积神经网络的特征映射的值以图像和过滤器(卷积核)的相似度作为输入信息,卷积的过程表示如下:假设由3x3像素构成的两幅图A,F,从矩阵向量相似的角度看,他们的相似度可以像下面这样求出:这个定理可以利用向量的性质来说明,根据线性空间理论,当两个向量相似时,他们的内积较大,我们可以认为内积大小表示两个向量的相似性。图形化表示就是:为了利用这个性质,可以将两幅图像堪称是向量:这样一来,通过内积,卷积便和相似性联系起来,也就是说,我们可以把CNN中卷积的额计算过程理解....

2021-10-21 10:13:49 1916

原创 为什么神经网络需要激活函数层?

这个问题的原因,很多书上讲,是为了引入非线性,也就是说,只有引入激活函数,网络才能具有非线性特征,那疑问就来了,没有激活函数层,就没有非线性了吗?是否有方式证明?以为下面的网络为例,它的每一层都是全连接层,并且没有激活函数层,我们列出各层之间的数据关系公式:第一层输出:第二层输出:...最后一层:逐层代入得到:由于Wn,Bn都为常阐述,所以,根据上式可以看出,输出是输入的线性函数,所以网络一定是线性的,不具备非线性特征。从而我们证明了,为什么一定要引入激活

2021-10-15 09:47:49 1397

原创 斐波那契数列和矩阵的特征值于特征向量的关系&尾递归

理论推导的关键一步,是将初始向量表示为特征向量的线性组合,突破这一步,推导过程豁然开朗,通项公式也就水到渠成了。特征值是反映变化速度的量,反映了在多个变化因素里,谁占主导地位,谁决定了变化的速度,特征向量是反映稳定性的量,决定了变化的宿命,即决定了它最终向谁收敛,所以我们看到了程序运行结果逐渐向着极限值逼近。当编写递归程序的使用,必须满足以下几个条件基准情形,必须有某些基准情形,在基准情形下,不用递归就能求解,如果忘记了基准情形,递归就会失控。

2021-10-08 23:17:59 3087 1

原创 统计学中的真阳性(TP),假阴性(FN),假阳性(FP),真阴性(TN)怎么理解?

举个例子,假如要在一个地区进行1000人的核酸检测,我们站在上帝视角,知道这1000人中,有10人是新冠感染者,占比%1。但实际的检测结果可能存在误差,误差包括两种情况新冠感染者,被错误诊断为健康 身体健康,但却被错误诊断为感染者检测结果如下:9名感染者得到了正确的阳性结果(TP,true positive),1人出现假阴性(FN,false negative). 其余990位健康的人中,检测除了89为假阳性(FP,false positive).901人得到了正确的阴性结果(TN,t

2021-10-06 21:15:13 11486 2

原创 贝叶斯公式的理解

人们会说,懂了很多的道理,却仍然过不好这一生.其实这句话体现了贝叶斯的思想,我们用别人的先验知识,指导不了自己的实际情况,别人的模型,不一定适合自己。

2021-10-06 16:21:25 2432

原创 关于设置Linux线程调度策略的实践

可是经过实际的测试,发现被创建任务的优先级并没有出现预期的结果可以看到,根据sched节点获取到的信息,并未出现被修改线程的优先级成为实时优先级的情况,这是为何呢?出现设置子线程调度策略不成功的原因是我们没有调用默认的情况下,设置的是PTHREAD_INHERIT_SCHED,也就是说,被创建线程完全按照父线程的调度策略创建,即便程序创建线程时,指定了不同的调度策略,这会导致设置失效,这就是我们上面遇到的情况。那该怎么处理呢?

2021-10-03 20:19:32 1868

原创 从一个例子看ASCII点阵字库的应用原理

Framebuffer书写字符A的代码:#include <unistd.h> #include <stdio.h> #include <fcntl.h> #include <linux/fb.h> #include <sys/mman.h> #include <stdlib.h> #include <string.h>#define RED 0xF800#define YELLOW

2021-10-31 21:40:06 642

原创 手搓Lenet的keras实现

代码:import kerasfrom keras.models import Sequentialfrom keras.layers import Input,Dense,Activation,Conv2D,MaxPooling2D,Flattenfrom keras.datasets import mnist(x_train,y_train),(x_test,y_test) = mnist.load_data()x_train = x_train.reshape(-1, 28, 28,

2021-10-26 22:24:48 587

原创 Darknet框架解读

1.test_detector的调用路径:这里重点介绍load_alphabet函数:根据代码,这里是从data/labels/目录装载png图片,图片有8*95=760这些图片都是ASCII码,比如我们打开编号为65和97的PNG图片,看以下内容,分别是A和a.怀疑最后绘框上面的Label字母就是来源于这里,这样就不依赖于系统字库了,我们确认一下,用反证法。如果我们将所有b的图片替换成a的图片,那么bicycle应该能变成aicycle的,我们测试一下:我们..

2021-10-24 21:18:43 3659

原创 使用netron工具对YOLO网络结构进行图形化分析

在ubuntu系统上,安装netron工具非常简单,执行snap install netron即可。之后下载darknet环境:最后用netron工具打开darknet/cfg/yolov3.cfg文件即可结束!

2021-10-21 22:45:00 596

原创 用Excel体验梯度下降法计算函数极值

计算机在数值计算的时候主要是使用梯度下降法来计算函数极值的,之前一直认为这个过程需要用matlab或者python,c等语言编程来做,不成想在一本书上发现使用Excel就可以简单的演示梯度下降法的过程,而且由于不用写代码,每一步操作都需要人工设定,对梯度下降法的整个过程理解的也会比较细腻.下面以求函数极小值为例,来演示这个过程。Excel表格如下,excel支持基础的数学计算和常用函数操作,这里面的数据并非是手动输入的,每除了初始值之外,每一个数据都是利用excel内建的公式驱动的...

2021-10-20 19:06:18 1256

原创 数字华容道的数学原理

给儿子买了一套数字华容道的棋盘,结果毫不意外地成了我打发时间的工具,玩儿多了后就有了一些心得,结合网上的资料,总结如下图所示。这是一个NPC问题,目前还没有通用解法。更深刻的数学原理涉及到群论了,群论在大学数学里面有着完全不一样的画风,没有深入学习过。以三阶为例,可以验证,每个复原步骤均满足上述条件:共计48步,这个步数必定是个偶数,因为黑框从最后一个位置再回到最后的位置,必定为偶数,根据群的基本理论,所以必须保证初始状态的逆序数也为偶数。

2021-10-19 18:28:56 11635 1

原创 一个神经网络的正向传播过程

我们用一个网络为例,试图把一前向传播的每个细节说清楚,图中为了强调传递函数的矩阵表达,特意忽略了激活函数这一步骤,可以将其看成一个多层的线性网络。要想把这个过程说清楚,首先需要将神经网络中各个参数用文字表达清楚,就是把图中的w和b以及上下标定义清楚.对于形如表示的是神经网络中第l-1层的第k个节点,向神经网络中第l层的第j个节点之间的权重,注意w的下标是首位表示的是节点后层节点的位置,末尾表示是前层节点的位置。理解这样的表达方式在后面的计算中会很好理解。同理,b的表示相比于w要简单.

2021-10-17 14:05:41 737 1

原创 利用keras搭建神经网络拟合非线性函数

神经网络是一个非常奇妙的结构,它的数学原理虽然相对简单,但是能做的事情却不少,数学家已经证明,具有2层(输入层除外)和非线性激活函数的神经网络,只要在这些层中有足够多的神经元,就可以近似任何函数。那么,如果只有两层就够了,为什么人们现在还在使用更深层次的网络呢? 仅仅因为这两层网络“能够”学习任何东西,这并不意味着它们很容易优化。在实践中,如果我们的网络产能过剩,他们就会给我们提供足够好的解决方案,即使他们没有尽可能地优化。本片文章就是针对这个规则的实践和验证,我们用两层网络,去近似模拟各种飞线性函数,

2021-10-15 23:35:45 3198 3

原创 UVC设备端驱动的实现原理分析

UVC相关说明可以参考:关于UVC设备拥有两个/dev/video*节点的原因以及来历?_tugouxp的专栏-CSDN博客在ubuntu18.04/ubuntu16.04系统上,插入UVC设备,你会发现V4L2框架替它创建了两个video设备节点,分别是 /dev/video0, /dev/video1:https://blog.csdn.net/tugouxp/article/details/119946023USB Video Class及其实现_tugouxp的专栏-CSDN博客1 Video

2021-10-15 08:50:04 3169

原创 mprotect/mlock使用demo

mlock起作用的过程分为两步,第一步,对于已经存在的VMA,将会调用mm_populate将其手动建立物理页面的映射。而对于未来分配的物理页面,则将会调用apply_mlockall_flags设置VM_LOCKED标志,设置此标志后,将来的MMAP函数将会调用__mm_populate分配页面。这样,在加入LRU的逻辑中,判断PageMlocked为真,将会把页面加入LRU_UNEVICTABLE list.所以,最终MLOCKD的效果显示在/proc/meminfo的unenvicible字段。

2021-10-14 12:37:29 201

转载 读懂反向传播算法(bp算法)(转)

参考连接:读懂反向传播算法(bp算法) - 简书bp算法 介绍 反向传播算法可以说是神经网络最基础也是最重要的知识点。基本上所以的优化算法都是在反向传播算出梯度之后进行改进的。同时,也因为反向传播算法是一个递归的形式,一层...https://www.jianshu.com/p/74bb815f612e结束!...

2021-10-14 09:51:23 141

原创 使用数值梯度下降法计算多元函数的极值

以求二元函数的极小值为例,程序如下:# coding: utf-8import numpy as npimport matplotlib.pylab as pltdef _numerical_gradient_no_batch(f, x): h = 1e-4 # 0.0001 grad = np.zeros_like(x) for idx in range(x.size): tmp_val = x[idx] x[idx]

2021-10-11 22:56:46 745

原创 绿联USB网卡的使用记录

这是一款USB2.0转百兆的网卡,它可以让设备通过USB接口连接到网络,替代主机网卡的功能,适用于带USB接口的笔记本,台式机,如果你的PC没有网卡但有USB口,这是一个不错的方案。

2021-10-10 20:25:24 4509 3

原创 直观数学-3blue1brown动画的制作

3B1B 动画的制作思路是:根据自己想在场景中展现的内容和效果编写一系列的类,然后通过命令行对每个类进行实例化,前面输入的测试命令其实就包含了类的实例化过程,而每个类被实例化后都将得到一个动画片段,通过视频制作软件将各个片段衔接起来并配音,就能得到大家喜闻乐见的 3B1B 教学动画了。

2021-10-07 09:07:28 5930 1

原创 基于灰度图的字符画的制作

媒体上经常会出现一些字符表示的图片,这段ASCII字符是用来形容每个像素点的颜色深浅,从视觉效果(灰度)来看,字符的越复杂越能形容深色,我们只需要获得一张图并将这张图转化为灰度图,然后遍历其中的像素点的灰度值,并根据灰度值转化为相应的ASCII字符,最后存入一个txt文件中即可。代码如下:# -*- coding: utf-8 -*-from PIL import ImagecodeLib = '''@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|

2021-10-05 19:12:02 877 4

原创 利用傅立叶变换进行图像处理的代码演示

前面有篇文件介绍过使用DCT(离散余弦)变换进行图像处理的例子:Matlab一探DCT/IDCT变换在图像压缩中的应用_tugouxp的专栏-CSDN博客绝大多数图像都有一个共同特征,平坦区域和内容缓慢变化的区域占据一幅图像的大部分,而细节区域和内容突变区域则占小部分。也可以说,图像中直流和低频区占大部分,高频区占小部分,zhe'yang...https://blog.csdn.net/tugouxp/article/details/117585190这里介绍用离散傅立叶变换进行图像处理的代码演示。

2021-10-05 07:36:05 2944

原创 ubuntu18.04安装protobuf

关于protobuf的介绍和应用参考ONNX格式解析之google protobuf解析_tugouxp的专栏-CSDN博客ONNX模型是按照google protobuf格式保存的,模型训练的目的就是为了得到变量的权值,只不过是纯数字罢了,但是我们也不能就这样把这些数字一个一个地写入文件,因为在要保存的模型文件里,不光要保存权值,也要告诉之后用这个模型的人,模型结构是怎么样的,所以需要合理地设计保存文件的格式。不同的机器学习框架都有自己的模型保存格式,例如 Keras 的模型格式是 h5,而 Tens

2021-10-02 12:44:51 2761 1

原创 ONNX格式解析之google protobuf解析

ONNX模型是按照google protobuf格式保存的,模型训练的目的就是为了得到变量的权值,只不过是纯数字罢了,但是我们也不能就这样把这些数字一个一个地写入文件,因为在要保存的模型文件里,不光要保存权值,也要告诉之后用这个模型的人,模型结构是怎么样的,所以需要合理地设计保存文件的格式。不同的机器学习框架都有自己的模型保存格式,例如 Keras 的模型格式是 h5,而 Tensorflow 和 onnx 的保存格式就是 protobuf。其实 protobuf 使用起来非常简单方便,就是自己先定义一

2021-10-02 09:53:49 2670

东南大学自动控制系课程件

东南大学自动控制系课程件,包含重要课程的重要内容,是您居家生活的好助手。

2010-02-08

RFID数据采集系统设计

这个资源不错哦,大家快来下吧,非常好的真的很不错哦噢噢哦哦

2009-06-20

inside the c++ object

C++经典书籍,书中详细叙述了C++内部对象模型的实现,虚函数的实现,看完此书你会有豁然开朗的感觉

2009-05-22

空空如也

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

TA关注的人

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