- 博客(38)
- 资源 (2)
- 收藏
- 关注
原创 基于卷积神经网络(CNN)的垃圾分类模型研究
随着城市化进程的加快,垃圾问题日益严重。传统的垃圾分类方法存在效率低下、准确率不高等问题。本文提出了一种基于卷积神经网络(CNN)的垃圾分类模型,该模型能够自动识别并分类不同类型的垃圾。实验表明,该模型在垃圾分类任务中取得了较高的准确率,为垃圾处理提供了有效的技术支持。
2024-06-06 20:02:32
1361
原创 Paddle实现单目标检测
单目标检测(Single Object Detection)是人工智能领域中的一个重要研究方向,旨在通过计算机视觉技术,识别和定位图像中的特定目标物体。单目标检测可以应用于各种场景,如智能监控、自动驾驶、医疗影像分析等。本文将以信号灯检测为例,介绍单目标检测的方法。
2024-06-03 16:32:55
1049
2
原创 Paddle 实现DCGAN
其中,o表示输出大小,i表示输入大小,p表示填充(padding),k表示反卷积核大小(kernel_size),s表示步长(stride),u表示输出填充(output padding)。像卷积层一样,反卷积层的in_channels表示输入通道数(如形如(3, 32, 32)的图片张量的通道数就是3),out_channels表示输出通道数(如把(64, 32, 32)变成3通道的彩色图像(3, 32, 32))。转置卷积层执行的是转置卷积或反卷积的操作,即它是常规卷积层的反向操作。
2024-05-10 21:46:21
719
原创 Paddle 基于ANN(全连接神经网络)的GAN(生成对抗网络)实现
GAN是生成对抗网络,将会根据一个随机向量,实现数据的生成(如生成手写数字、生成文本等)。GAN的训练过程中,需要有一个生成器G和一个鉴别器D.生成器用于生成数据,鉴定器用于鉴定数据的准确性,其实就是在鉴别数据是人生成的还是机器生成的,因为生成器需要以假乱真。鉴别器将会与生成器一起训练。鉴别器将会先训练,这样才有适当的能力去鉴定生成器生成数据的准确性。鉴别器的训练过程中,需要先给它准确的数据,和通过随机向量传入生成器产生的数据(一律视为负样本),并通过损失函数对其进行训练;
2024-05-09 22:24:20
1049
1
原创 C语言嵌入Lua解释器的方法
Lua语言是一个轻量的脚本语言,可以用很少的资源运行其解释器C语言是一个很常用的语言,广泛用于嵌入式等底层场景这两个语言结合,可以应用于嵌入式等多个场景。比如,一些硬件公司会允许开发者使用Lua语言操作其硬件。
2024-05-01 10:15:56
934
4
原创 Paddle实现人脸对比(二)
我之前发过一篇基于孪生网络的人脸对比的文章,这篇文章也到了百度的推荐位置:但是,效果并不是很好。经过大量的搜索,我发现了一种新的方法,可以非常好的实现人脸对比。
2024-04-14 12:08:51
710
5
原创 Paddle实现人脸对比
我们使用孪生网络技术,成功实现了人脸对比模型,并有一定的准确性,可以应用于人脸比对等场景。但是,由于数据集和训练次数有限,还难以实现更准确的人脸对比...+
2024-04-03 22:58:29
1104
原创 百度飞桨教程(一)
下载数据集并初始化 DataSet# 打印数据集里图片数量这段代码展示了如何加载数据集paddle.vision.datasets.MNIST是一个手写数字数据集,mode指定训练集或测试集。train代表训练集,test代表测试集另外,paddle.vision.transforms定义了一些图象变换操作,Normalize将图象归一化可以创建一个继承自paddle.io.Dataset类的类,自定义数据集__init__ 初始化数据集__getitem__ 返回对应索引的一条数据。
2024-03-30 23:11:37
2066
原创 IP地址、子网掩码、网关
很久以前,有两个计算机想要相互通信,于是它们在自己的设备上安装了一个,并用网线连接:这个时候,又来了一个计算机想要加入它们,于是这三个计算机互相通过网线连接:随着想要加入通信的计算机不断增多,这些计算机的管理员看着满地的网线,陷入了沉思,于是决定使用将这些网线集中起来:但是,在之前通过网线连接的时候,每台计算机都可以决定自己的信息要发送到哪台机器,而集线器会将信息广播出去,使所有计算机都收到信息,这就造成一些信息上的问题。于是,人们将集线器换成了。交换机可以向指定的发送消息,而不是广播消息。
2024-03-24 19:41:01
1172
原创 Python使用whisper实现语音识别(ASR)
在一个语音中,我们都会有一些停顿。但是,在识别结果中,这些停顿并没有被完全表示出来。可以看到,它的识别结果还行(因为我的音频是AI合成的,识别会有一定误差),但是输出的是繁体中文,我们需要把他变成简体中文。Whisper是OpenAI的一个强大的语音识别库,支持离线的语音识别。其中,zh.wav可以换成你自己的音频。另外,需要通过choco安装ffmpeg库。完成这些步骤之后,我们就可以使用啦!
2024-03-19 20:45:12
4031
2
原创 llinux C语言在网络编程时使用标准IO
这是因为,使用write(2)函数时,可能会出现写入不全的情况(部分写),因此,需要通过while循环,确保它能全部写完。但是,这样的代码太麻烦了,有没有简单的办法?我们知道,在标准IO中,有一个fdopen(3)函数:这个函数将会把一个文件描述符转换成一个文件指针。参数中,fd是文件描述符,mode是操作模式,如"r+"。可以设置为"w"或"w+",但不会清空文件。如果把socket(2)函数返回的文件描述符改成文件指针,就可以通过fprintf等方法直接输出了。
2024-03-16 12:05:55
431
原创 Spring Boot整合zxing实现二维码登录
误差校正等级的存在,可以使二维码被遮挡时,仍然能够被正常扫描。一般来说,误差校正等级越大,二维码就越大。第二个键是字符集,一般用UTF-8即可。第三个键是外边框的像素大小。
2024-03-09 13:45:49
1113
原创 Springboot教程(六)——异常处理
在Spring Boot中,我们可以将异常统一放在全局处理类来处理,创建一个全局异常处理类需要用到@ControllerAdvice和@ExceptionHandler注解。@ControllerAdvice类似一个增强版的@Controller,用于标注类,表示该类声明了整个项目的全局资源@ExceptionHandler类似catch语句,标注一个方法,用于处理异常。而这个方法可以有返回值,类似@Controller的返回值@ExceptionHandler可以传入一个参数,为异常类的Cla
2024-03-08 21:44:07
408
原创 C语言教程(一)——输出、数据类型、表达式、条件判断、循环
这是因为,我们规定了1.12这个数应遵循int(整数)类型的访问规则,因此它的输出为1.常用的数据类型有如下几个:int:整数,占4个字节short:短整数,占2个字节char:字符,占1个字节变量有些时候程序需要使用一些变量,变量的定义方法如下:
2024-03-08 20:13:16
1123
原创 Android之MQTT的使用
MQTT是广泛应用于物联网的传输协议,基于TCPMQTT有一个代理服务器,其客户端可以订阅主题或向一个主题发送消息,从而实现通信MQTT 设计了 3 个 QoS 等级。
2024-03-03 10:16:24
2117
原创 Spring Boot+Tess4j实现OCR接口
OCR,即光学字符识别,是一种将纸质文档上的文字转化为计算机可编辑文本的技术。它利用图像处理技术和模式识别算法,对扫描或拍摄的文档图片进行分析,提取出其中的文字信息。OCR技术广泛应用于文档数字化、自动化数据录入等领域,极大地提高了工作效率和准确性。随着深度学习等人工智能技术的发展,OCR技术的识别精度和效率也在不断提升,为各行业的数字化转型提供了有力支持。
2024-02-25 14:38:43
1697
1
原创 Springboot教程(三)——服务
服务是Springboot的组件之一,一般用于完成一些数据的校验、加工的操作,也可以被定义为工具:用户发送请求后,控制层接收请求,并将指定业务分发给服务层,服务器从持久层(操作数据库等)拿到数据,进行业务处理(或直接进行处理),再将结果发回给控制层。服务类一般放在service包下。
2024-02-23 15:42:36
854
1
原创 Springboot教程(二)——过滤器、拦截器
这里要注意,过滤器最后应调用chain.doFilter(request, response)方法,将请求交给后一个过滤器。当然,有些时候不想交给后一个过滤器,也可以不写要启用过滤器,需要写一个配置类,用@Configuration标注。在配置类中,定义一个方法,用@Bean标注,这个方法需要先获取一个FilterRegistrationBean对象,用于注册过滤器,再对这个对象进行一些操作,最后返回这个对象。这里面有一个泛型,表示要注册的过滤器的类型:
2024-02-23 11:43:30
1596
1
原创 Kotlin多线程
如果在操作对象之前,线程先声明:“这个对象是我的”,当另一个线程也想操作这个对象时,发现已经有人声明过了,那么它就等待,直到那个发布声明的线程又发了一个“这个对象不是我的了”的声明。当然,这两个声明其实起到了一个锁的作用,当声明“这个对象是我的”时,对象就被上了锁,当声明“这个对象不是我的了”时,对象的锁就被解开了。因为main线程创建了th线程,th线程又创建了th2线程。th线程调用join()方法等待th2线程时,main线程中断了th线程,因此th线程中的join()方法停止等待,执行完成。
2024-02-22 22:40:43
2065
1
原创 机器学习的数学基础
接下来给出微分的定义:对于定义在一个区间上的函数,且和在这个区间上,如果函数的增量可以表示为,其中A是与无关的常数(可能与有关),则称函数在点处可微,且称为函数y在点处对应于自变量的改变量的微分,记作dy。
2023-12-31 18:48:11
1140
1
原创 Linux中C语言的文件读写
在Linux中,一切都是文件。程序可以通过文件描述操作文件。文件描述存储在进程的内核区,不能直接使用,因此Linux提供了文件描述符。文件描述符是文件描述在用户空间的引用,我们可以调用一系列系统函数,对文件描述符进行操作。
2023-12-15 22:18:12
860
原创 (万字长文)C语言多进程的使用
系统创建进程时,会给进程一个虚拟的地址空间,让进程存储自己运行时需要的资源。同时,进程还可以创建线程,以执行自己的程序。子进程的创建采用fork(2)函数,使用时要包含unistd.h头文件:这个函数将会通过复制调用进程,创建一个新进程。调用进程被称为父进程,被创建的新进程叫子进程。子进程与父进程运行在不同的地址空间。在刚创建时,两个进程的地址空间的内容一样,且互不影响。除了以下几点,子进程将会精确复制父进程:子进程有自己的唯一进程ID,这个PID与任何现有进程组的ID都不匹配。子进程的父进程ID与父
2023-12-15 15:07:50
1090
原创 (万字长文)C语言多线程之threads函数库
这个函数将会创建一个运行func函数的线程,在thrd_create(3)函数里,arg将会作为func函数的参数。如果线程创建成功,thr指向的对象将被设置为所创建线程的标识符。这个函数完成的同时,所创建的线程将开始。
2023-12-10 17:31:58
1092
1
原创 C语言如何给函数传二维数组?
很多人都遇到过函数不能接收二维数组的问题,网上的很多方法都特别麻烦。那么,有没有一种办法,可以像传一维数组那样传二维数组呢?有的。如果不想看分析的话,可以直接在目录中点“总结”...
2022-08-08 14:15:08
4486
1
原创 C++实现短除法
而C++的cin和cout都在std命名空间里,只有使用这个空间的时候才能调用。当然,C++还得给C语言一点面子,所以C语言的把函数写在全局的操作C++也是支持的。这里面的list是C++给我们封装好的链表类型,是关于泛型的,表示链表的每个元素是int类型的。泛型实际上是类型的占位符,毕竟在机器码里没有类型的说法了。我们发现,每个短除法的结果都由左边和下边组成。这两个数的最大公因数是左边的积,最小公倍数是左边和下边的积。这个数的质因数就是短除结果的左边和下边。短除两个数,可以找到这两个数的。...
2022-08-05 17:32:03
1397
原创 使用栈判断括号是否匹配
什么是栈?栈有好几个意思,比如遵循先进后出规则的线性表(与“队列”相反);程序运行时系统分配变量地址空间的地方,遵循先进后出的原则(与“堆”相反);在CPU寄存器的一块存储介质,访问时遵循先进后出的原则我们今天所说的栈,是第一个意思...
2022-08-04 22:21:08
747
原创 C语言教程(三)-if和循环
目录表达式数学表达式关系表达式逻辑表达式ififif else循环whilefor出个问题:表达式数学表达式数学表达式的值为数。如1+2;2*3;4-4;5/2;3%2;对于数学表达式,0为假,非0为真。关系表达式关系表达式只能是两个值之一,即真和假。如1<2;//真 1<21>2;//假 1>21==2;//假 1=21!=2;//真 1≠21<=2;//真 1≤21>
2021-12-20 20:13:16
1937
原创 C语言指针详解
什么是指针?首先,指针不是地址!!!!!!!!!!!!!!!!!!那么,指针是什么呢?指针其实是一种数据类型,像int char这样的。有些人说了,“定义指针时,不是int *p;吗,类型不是int吗?”其实不然。我们来看看这段代码:
2021-12-19 08:37:37
121
原创 C语言教程(二)-printf及c自带的数据类型
本文章介绍printf(3)的使用c自带的数据类型,如int char double float *等
2021-12-18 22:16:54
565
原创 C语言教程(一)-准备
要想开始c语言的学习,一般需要准备:linux虚拟机下载虚拟机 gcc编译器(一般linux自带)至于怎么安装虚拟机百度一下在此不做过多讲述。那么,如何使用虚拟机呢?这就需要一些命令。在桌面右击,点击open the terminal,就可以在这个界面输入命令了。以下是几个基础命令:mkdir + 目录名 创建目录 rm + 文件名 删除文件 ls 列出文件 cp + 要复制的文件 + 复制后的文件 复制文件 ...这些命令的基本用法以用man命令获得。如man ...
2021-12-18 18:06:50
1895
轻量级C语言线程池库,可用于网络编程等并发环境
2023-12-17
C语言面向方法思想的可变长度数组的动态库
2022-04-23
C语言可变长度数组(int型)实现
2022-01-31
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人