草庐IT

手写迷你Spring框架

随着不断地使用Spring,以及后续的Boot、cloud,不断的体会到这个拯救Java的生态体系的强大,也使我对于这个框架有了极大的好奇心,以至于产生了我为什么不能写一个这样的框架的思考。通过自学及参考谭勇德(Tom)老师的《Spring5核心原理》这本书,决定记录我手写Spring的过程,记录此系列博客。愿每个想探究Spring原理的人,学习道路一帆风顺文章目录1准备阶段——自定义配置1.1配置application.properties1.2配置web.xml文件1.3自定义注解1.3.1@Service1.3.2@Autowired1.3.3@Controller1.3.4@Reque

响应式编程之手写Reactor

前言前文提到了响应式编程,响应式规范Reactivestreams,以及响应式扩展Reactor的简单使用在使用Reactor时我一直很好奇,它是怎么做到的?好奇心驱使我想要自己去写一个Reactivestreams的实现,并参照Reactor源码来看看大神是如何实现的话不多说,开始写代码(本文比较啰嗦,因为掺杂了自己的实现思路)简单序列的发布者看一下Reactor的一个简单例子Flux.just("a","b","c","d").subscribe(newSubscriber(){Subscriptionsubscription;@OverridepublicvoidonSubscribe(

(完结篇)什么是语义分割?原理+手写代码实现?

Unet语义分割目录Unet语义分割1.如何理解“语义”“分割”。2.语义分割原理(重点)3.语义分割意义4.语义分割应用场景5.Unet的优势(医学领域)6.先行知识储备7.语义分割流程8.项目结构及介绍9.安装环境(python=3.8,pytorch)10.实现流程(重点)11.损失函数12.评估指标13.UNet论文14.源码地址(永久、免费)15.如何修改成自己的任务16.个人成长心得17.项目落地应用如何理解“语义”“分割”。    语义分割定位于人工智能的深度学习的计算机视觉领域,其相关任务还有目标检测、图像分类、实例分割、姿态估计等。        计算机视觉中关于图像识别有四

【JavaScript】手写Promise

🐱个人主页:不叫猫先生🙋‍♂️作者简介:2022年度博客之星前端领域TOP2,前端领域优质作者、阿里云专家博主,专注于前端各领域技术,共同学习共同进步,一起加油呀!💫优质专栏:vue3从入门到精通、TypeScript从入门到实践📢资料领取:前端进阶资料可以找我免费领取🔥摸鱼学习交流:我们的宗旨是在工作中摸鱼,摸鱼中进步,期待大佬一起来摸鱼(文末有我wx或者私信)。目录基础回顾一、声明Promise类,并进行初始化操作二、then方法三、catch方法四、基础完整版代码五、案例测试六、问题1.为什么then函数中需要考虑Promise状态为pending的情况?2.当then函数传的参数不是函

手写数字识别(识别纸上手写的数字)

说明使用pytorch框架,实现对MNIST手写数字数据集的训练和识别。重点是,自己手写数字,手机拍照后传入电脑,使用你自己训练的权重和偏置能够识别。数据预处理过程的代码是重点。分析要识别自己用手在纸上写的数字,从特征上来看,手写数字相比于普通的电脑上的数字最大的不同就是数字的边缘会发生不同幅度的抖动。而且,在MNIST数据集中的数字是边缘为黑色的,然后数字是不同灰度的白色的,如下所示:在数据集中,每个数据都是28∗2828*2828∗28的灰度图,并且黑色部分都是零,其余白色的灰度值并不统一。因为如果训练时背景都是统一的时候我们测试用的图片背景也必须是统一的,否则基本无法识别出来。除非训练的

自己动手写chatGPT:神经网络的神经元和损失函数

chatGPT基于所谓的大模型,这里有两个关键词一个是“大”,一个是“模型”,我们先看什么叫“模型”。所谓模型其实就是深度学习中的神经网络,后者由很多个称之为“神经元”基本单元组成。神经元是一种基础计算单元,它执行两种操作,首先是一个矩阵M和输入向量X做乘法操作,其结果是一维向量WX,然后再跟另一个一维向量b做加法操作,所得结果还是一维向量WX+b,这些步骤统称为线性运算,最后这个一维向量会输入到一个函数f,最终输出结果是也是一个向量f(W*X+b),这个步骤叫非线性操作,其基本流程如下:chatGPT的参数有1750亿个,也就是说它由1750亿个像上面那样的计算单元相互连接所形成的超大网络组

VS开发QT项目,手写按钮槽函数避坑

VS开发QT项目,手写按钮槽函数避坑1、QTCreator按钮槽函数2、VS中添加按钮槽函数3、踩坑由于最近开发需要在VS2017上配置QT开发环境,进行QT项目的开发,之前从来没有这样使用过,在此记一些坑。1、QTCreator按钮槽函数QT的槽函数是非常方便的,使用QTCreator可以自动生成代码,方便快捷。但是代码可读性不强,一些连接方面的信息都被隐藏了。由于之前一直使用QTCreator,所以其实还是挺喜欢这种方式的。具体操作是在控件界面拖动一个按钮放在设计界面。这时我们用鼠标右键PushButton按钮,会有一个转到槽的选择。点击之后在代码页会自动生成相应的代码,我们只需要在该按钮

Opencv图像边缘检测——Roberts算子(手写)、Sobel算子(手写和调包)、Scharr算子、Laplacian算子

一、Roberts算子Roberts算子即交叉微分算子,是基于交叉差分的梯度算子。此算法通过局部差分来计算检测图像的边缘线条,对噪声敏感。Roberts交叉微分算子分别为主对角线和副对角线方向的算子,有两个2*2的滤波算子组成:对于图像而言,如果im表示图像像素矩阵,则可以如下计算(i,j)点处的特征值:|im(i,j)-im(i+1,j+1)|+|im(i+1,j)-im(i,j+1)|完整代码如下: importcv2importnumpyasnpdefcv_show(name,img):cv2.imshow(name,img)cv2.waitKey(0)cv2.destroyAllWin

【JavaWeb】手写一个Servlet+JSP+JavaBean分页

✅✅作者主页:🔗孙不坚1208的博客🔥🔥精选专栏:🔗JavaWeb从入门到精通(持续更新中)📋📋本文摘要:本篇文章主要分享如何使用Servlet+JSP+JavaBean写一个分页。💞💞觉得文章还不错的话欢迎大家点赞👍➕收藏⭐️➕评论💬支持博主🤞👉👉你的一键三连是我更新的最大动力❤️❤️手写分页总结一、分页技术1、前端分页2、后端分页二、实现分页1、准备工作2、效果图3、核心代码运行环境:tomcat8.0+idea技术:servlet+jsp+javabean+mysql一、分页技术1、前端分页前端分页:一次性从数据库读出表的所有数据一次性的返回给客户端,由前端js来控制每一页的显示,由于一

html - 所见即所得编辑器 vs 手写代码

使用WYSIWYG编辑器进行网页开发与手动编码的优缺点是什么?除了不知道如何手动编写代码之外,还有什么理由使用所见即所得吗? 最佳答案 我手写代码,但我更喜欢使用所见即所得的编辑器,因此我仍在使用Dreamweaver作为编辑器。我95%的时间都在做的是在源代码编辑器中手动编码并在预览中查看结果。偶尔我会进入所见即所得编辑器直接移动block,当我这样做时,我发现它非常宝贵。我从不使用任何Dreamweavers向导或生成的代码,我也手动清理html。我认为这种方法没有任何问题,它让我印象深刻,因为HTML设计等同于IDE提示完成功