自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 收藏
  • 关注

原创 linux内网部署deepseek大模型(ollama+anythingllm)

linux内网部署deepseek大模型:(1)安装ollama(2)使用ollama加载deepseek-r1模型(3)使用docker安装anythingllm

2025-02-13 08:50:32 2727 1

原创 Spring 为什么要三级缓存,二级缓存不行吗?

其实也行,并不是说二级缓存如果存在aop的话就无法将代理对象注入的问题,本质应该说是初始spring是没有解决循环引用问题的,设计原则是 bean 实例化、属性设置、初始化之后再生成aop对象,但是为了解决循环依赖但又尽量不打破这个设计原则的情况下,使用了存储了函数式接口 ObjectFactory 的第三级缓存。

2023-03-16 14:08:25 3481

原创 RocketMQ源码解析(四)——HA机制之主从同步

参考:【RocketMQ】学习RocketMQ必须要知道的主从同步原理_Mr.ZhuRunHua的博客-优快云博客_rocketmq主从同步原理RocketMq 高可用实现逻辑_风火1989的博客-优快云博客rocketmq的broker如何同步信息的? - notlate - 博客园 (cnblogs.com)源码版本:RocketMQ 4.9.3文章目录主从同步流程提出问题一、Slave 定时同步 Master 元数据二、Slave 同步 Master 消息数据HA 相关类介绍实例化.

2022-05-12 23:59:20 2452

原创 RocketMQ源码解析(三)——HA机制之读写分离

原理详解——读写分离机制参考:RocketMQ HA机制(主从同步) (qq.com)RocketMQ HA机制 - 知乎 (zhihu.com)源码版本:RocketMQ 4.9.3文章目录一、suggestPullingFromSlave 是什么?怎么获得?二、 suggestPullingFromSlave 如何参与读写分离逻辑?总结一般在选择主从备份实现高可用的架构中,都会具备读写分离机制。而在RocketMQ 中默认是 Producer 只能往 Master 写消息, Consu

2022-05-08 22:33:54 2153

原创 RocketMQ前置:完全图解Raft协议基础

多图讲解Raft协议基础Raft 是分布式领域中解决一致性的协议,主要包含领导者选举、日志复制两个部分。

2022-05-06 17:03:42 1929

原创 RocketMQ源码解析(二)——文件预热

系列文章:源码解析RocketMQ优化(一)——内存预映射机制参考:rocketMQ零拷贝+kafka零拷贝+netty零拷贝分析 - 知乎 (zhihu.com)RoecketMQ存储–映射文件预热【源码笔记】 - 云+社区 - 腾讯云 (tencent.com)RoecketMQ存储–映射文件预热【源码笔记】 - 云+社区 - 腾讯云 (tencent.com)文章目录源码分析一、mlock()内存锁定有什么作用?二、为什么 MappedByteBuffer 每隔 4KB 写入一个 0

2022-05-04 17:38:25 2273

原创 RocketMQ源码解析(一)——内存预映射机制

经过上述已知 RocketMQ 使用 mmap 方式对 page cache 进行了内存拷贝。但是当遇到OS进行脏页回写,内存回收,内存swap等情况时,就会引起较大的消息读写延迟。这又该怎么办呢?其实 RocketMQ 对 mmap + page cache 进行了一些优化,如下:经过上述已知 RocketMQ 使用 mmap 方式对 page cache 进行了内存拷贝。但是当遇到OS进行脏页回写,内存回收,内存swap等情况时,就会引起较大的消息读写延迟。这又该怎么办呢?其实 RocketMQ

2022-05-04 15:35:23 1677

原创 RocketMQ原理详解——零拷贝机制

参考:原来 8 张图,就可以搞懂「零拷贝」了 - 小林coding - 博客园 (cnblogs.com)RocketMq中零拷贝 - 简书 (jianshu.com)linux零拷贝原理,RocketMQ&Kafka使用对比 - 云+社区 - 腾讯云 (tencent.com)[Java文件映射mmap]全接触 (douban.com)原始版本一台服务器把本机磁盘文件的内容发送到客户端,一般分为两个步骤:read:读取本地文件内容;write:将读取的内容通过网络发送出去。这两个.

2022-05-03 23:08:01 5234 1

原创 RokcetMQ消息的生产和消费

文章目录导入MQ客户端依赖步骤分析基本样例1. 消息发送1)发送同步消息2)发送异步消息3)单向发送消息2. 消费消息顺序消息1. 顺序消息生产2. 顺序消费消息延时消息1. 使用限制2. 消费消息3. 发送延时消息批量消息发送批量消息过滤消息1. SQL基本语法2. 消息生产者3. 消息消费者事务消息1. 流程分析1)事务消息发送及提交2)事务补偿3)事务消息状态2. 发送事务消息3. 使用限制导入MQ客户端依赖rocketmq-client 版本和 rocketmq 版本一致<depen

2022-04-28 22:41:26 926

原创 RocketMQ双主双从集群搭建全流程

https://www.bilibili.com/video/BV1L4411y7mn?p=15&spm_id_from=pageDriver总体架构消息高可用采用2m-2s(同步双写)方式集群工作流程启动NameServer,NameServer起来后监听端口,等待Broker、Producer、Consumer连上来,相当于一个路由控制中心。Broker启动,跟所有的NameServer保持长连接,定时发送心跳包。心跳包中包含当前Broker信息(IP+端口等)以及存储所有To.

2022-04-26 16:39:30 2874

原创 RocketMQ安装与启动

文章目录一、下载二、环境要求三、安装RocketMQ目录介绍四、启动RocketMQ1. 启动NameServer2. 启动Broker五、测试RocketMQ1. 发送消息2. 接收消息3. 关闭RocketMQ一、下载rocketmq-all-4.9.3-bin-release.zip二、环境要求Linux64位系统JDK1.8(64位) --> [安装教程](Centos安装Java - 简书 (jianshu.com))源码安装需要安装Maven 3.2.x这里我安装

2022-04-26 15:37:54 5162

原创 windows安装多个版本jdk,切换未生效

网上说将C:\Windows\System32目录下的java.exe,javaw.exe,javaws.exe删除即可。但是我的这个目录下并没有这些。为了再次验证,在powershell输入命令:where java额,空白一片,那的确是没有了。最后发现把环境变量的系统变量的Path里面的C:\ProgramData\Oracle\Java\javapath\删掉就可以了!成功切换!...

2022-03-20 21:45:39 1395

原创 Win11下Microsoft Store安装Ubuntu20.04踩坑解决指南

文章目录1. WslRegisterDistribution failed with error: 0x8007019e2. WslRegisterDistribution failed with error: 0x803701023.WslRegisterDistribution failed with error: 0x800701bc从Microsoft Store选择Ubuntu20.04下载安装完毕后,双击Ubuntu 20.04 LTS后报错:1. WslRegisterDistrib

2022-01-28 00:50:01 14889 8

原创 详解Transformer中的Positional Encoding

文章目录Transformer结构Word EmbeddingTransformer结构We also modify the self-attention sub-layer in the decoder stack to prevent positions from attending to subsequent positions. This masking, combined with fact that the output embeddings are offset by one posit

2021-12-27 23:12:31 3156 1

原创 pytorch中的parameter与buffer

先上结论:parameter在反向传播会被optimizer.step更新,buffer在反向传播不会被更新parameter和buffer都被保存在model.state_dict()返回的OrderedDict中(这也是模型保存的对象)模型进行设备移动时,模型中注册的参数(parameter和buffer),即model.state_dict()中的内容会同时进行移动咱来解释一下!文章目录先创建这两种参数吧!1.创建parameter2.创建bufferparameter在反向传播会被`o

2021-12-24 17:35:31 1040 1

原创 SAM解析:Sharpness-Aware Minimization for Efficiently Improving Generalization

论文:Sharpness-Aware Minimization for Efficiently Improving Generalization( ICLR 2021)解析

2021-12-02 20:38:20 14874 7

原创 解析torch.norm函数

官方文档:https://pytorch.org/docs/stable/generated/torch.norm.html?highlight=norm#torch.norm函数:norm(input, p='fro', dim=None, keepdim=False, out=None, dtype=None) Returns the matrix norm or vector norm of a given tensor.参数:input (Tensor) – 输入张量p (.

2021-11-26 21:58:07 2730

原创 LNK2019 无法解析的外部符号 “void __cdecl cv::error(int,class std::basic_string<char,struct std::...

编译一个基于opencv的cuda工程时报错:找办法:错误解析:LNK2019: 无法解析的外部符号 "public: void __thiscall找到原因:如果这个类是动态库中定义的类,可能是因为没有把这个动态库对应的.lib文件加到工程中。解决办法:右键【项目】-> 【属性】 -> 【VC++目录】之前我在这里编辑了【包含目录】,加了两个头文件目录E:\opencv\opencv_4.5.4\build\include\opencv2;E:\opencv\opencv_4.5

2021-11-08 21:33:27 22495 2

原创 E1696 无法打开源文件 “cpu_bitmap.h“

做CUDA作业,跑一个范例程序,报错:E1696 无法打开源文件 "cpu_bitmap.h"解决办法:下载一个cuda_by_example文件解压后将cuda_by_example中lib文件夹下的glut32.lib文件和glut64.lib文件复制到F:\Cuda Projects\cuda_by_example\lib\Win32和F:\Cuda Projects\cuda_by_example\lib\x64(看你的CUDA安装路径)将cuda_by_examp

2021-11-06 16:05:39 948 2

原创 解决PIL和OpenCV读取显示结果不一致问题

现在我们要读取这张图片使用PIL读取:img_PIL = Image.open(img_path)tensor_trans = transforms.ToTensor()tensor_img = tensor_trans(img_PIL) # 调用ToTensor()的__call__方法使用openCV读取:import cv2img_cv_bgr = cv2.imread(img_path)这里我用tensorboard工具显示图片,出现以下画面:...

2021-11-01 23:31:36 1433

原创 python学习两大法宝函数——dir()和help()

参考来源https://www.bilibili.com/video/BV1hE411t7RN?p=4以pytorch为例:把pytorch看作一个工具箱,工具包中有很多小隔间,如图中的1,2,3,4,打开一个小隔间,里面可能又是一些小隔间。也可能是直接能用的工具,如图中3隔间中的a,b,c。那怎么看一个工具箱或者隔间里面有什么东!西?使用dir函数!import torchprint(dir(torch)) # 打开Pytorch包,发现里面有很多小隔间,有一个叫cudaprin.

2021-10-31 13:53:18 759

原创 使用Java进行HDFS操作

\1. 在HDFS中创建一个新目录;package hdfs_pro;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.FileSystem;import org.apache.hadoop.fs.Path;public class CreateDir { public static void main(String[] args) { try { Co

2021-10-25 17:02:59 1193

原创 吴恩达机器学习符号定义下的反向传播算法BP推导

自学笔记,公式简单手写的思想:“正向传播”求损失,“反向传播”回传误差。步骤:首先,它执行图的前向阶段,从输入到输出,去计算节点值,然后是反向阶段,从输出到输入去计算所有的偏导,然后梯度下降修正每层的权重。1. 求偏导需要链式法则http://colah.github.io/posts/2015-08-Backprop/2. BP计算具体举例:一文弄懂神经网络中的反向传播法——BackPropagation - Charlotte773. 一般情况下的公式4. 推导https:/

2021-10-22 15:57:25 393

原创 Windows10下编译Aseprite

官方安装文档https://github.com/aseprite/aseprite/blob/main/INSTALL.md#get-the-source-code作为一款流行的像素游戏画创作软件,Aseprite其实是开源的哦,接下来就来介绍Aseprite的下载编译过程!首先,下载源代码????源码地址然后下载依赖CMake 必须为3.14或以上版本,3.20.5 Release下载地址Ninja 下载地址Visual Studio Community 2019 (因为它不提供Min

2021-06-25 15:44:29 1151

原创 opencv中使用cv2.rectangle()出错崩溃

正在实现从list中读取要画框的位置,然后根据位置在原图像上制矩形,源代码如下:for location in faces: x = location['left'] y = location['top'] w = location['width'] h = location['height'] user_id = location['user_id'] if user_id: # 在原图像上绘制绿色矩形标识

2021-05-30 00:59:17 1472

原创 正则表达式匹配空值

.{0}可匹配空值例如:port=(.{0})可匹配port=,匹配结果为:这个方法适用于这个字段不一定有值,例如有时port=80,有时port=,这时候就可以这样写:port=(.{0}|\d+)把空值放在前面,先判断是否为空完再判断是否满足值,避免出现因为优先匹配值而忽略了空置的版判断,例如:port=(.*|.{0})去匹配port= 824413,结果为:与本意相违背。...

2021-03-11 14:55:21 6979

原创 在vscode里项目添加附加包含目录

项目的.vscode文件里的c_cpp_properties.json中的includePath属性中添加附加包含目录的路径,例如我这里的路径为"E:/boost_1_75_0"{ "configurations": [ { "name": "Win32", "includePath": [ "${workspaceFolder}/**", "E:/boost_1_75_

2021-03-09 10:32:53 6149

原创 error: no matching function for call to ‘类名::connect()^

Qt报错:connect(this->cam,SIGNAL(sendImg(QImage)),this->piclbl,SLOT(revImg(QImage)));error: no matching function for call to ‘DetectPage::connect(Camera&, const char*, PicLabel*&, const char*)’ connect(this->cam,SIGNAL(sendImg(QImage)),thi

2021-03-03 00:57:41 1887

原创 正则表达式学习——(3)正则性能优化

参考文章:https://www.zhihu.com/question/48219401/answer/1476436385mark一个好用的正则测试网站https://regex101.com/一、避免量词嵌套/a*b/和/(a*)*b/去匹配aaaaa,前者的匹配步数远远小于后者。可见,嵌套量词会大大增加正则的执行过程。因为这其中进行了两层回溯,这个执行步骤增加的过程就如同算法复杂度从 O(n)上升到 O(n^2)的过程一般。所以面对量词嵌套,我们需作出适当的转化消除这些嵌套:(a*..

2021-02-26 11:26:54 698

原创 正则表达式学习——(2)正则回溯

参考文章:https://www.zhihu.com/question/48219401https://www.jianshu.com/p/48dc319f68f3https://www.cnblogs.com/chanshuyi/p/9197164.htmlhttps://www.cnblogs.com/study-everyday/p/7426862.html一、正则回溯是什么首先,回溯是什么?​ 回溯法是一种通用的计算机算法,用于查找某些计算问题的所有(或某些)解决方案,特别是约..

2021-02-26 10:07:12 869

原创 正则表达式学习——(1)基础语法

参考文章:https://www.zhihu.com/question/48219401一、什么是正则表达式?正则表达式(Regular Expression)是一种文本模式,其使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。这里的文本模式我理解成一种文本的一种标准格式,就像年月日格式的日期是yyyy-mm-dd。二、为什么使用正则表达式?(1)验证:看看字符串是不是符合某个模式,比如用行用户名密码的验证。(2)查找:从大量信息中快速提取指定内容,比如在一些ip中,查找指定ip。.

2021-02-26 10:05:20 164

原创 c++实现布隆过滤器

hashfuntion.h(常用字符串Hash函数)unsigned int SDBMHash(const char *str);unsigned int RSHash(const char *str);unsigned int JSHash(const char *str);unsigned int PJWHash(const char *str);unsigned int APHash(const char *str);unsigned int DJBHash(const char *str

2021-01-12 16:33:33 604

原创 深入redis——(1)缓存穿透问题以及解决方法

参考文章:https://lion-wu.blog.youkuaiyun.com/article/details/108109523https://www.jb51.net/article/163820.htm一、什么是缓存穿透?系统要查询的数据在缓存和数据库中都不存在,这是当业务系统发起查询,按照下面的流程,首先会前往缓存中查询,再前往数据库中查询,数据库返回空。也就是请求每次都会打到数据库上面去,这就是缓存穿透。二、什么情况会发生缓存穿透?如果存在大大大量请求要查询不存在的数据,那么这些请求都会打.

2021-01-11 17:32:52 237

原创 c++操作redis——(1)安装和环境配置

一、安装wget https://download.redis.io/releases/redis-6.0.9.tar.gztar xzf redis-6.0.9.tar.gzcd redis-6.0.9make执行完 make 命令后,redis-6.0.9 的 src目录下会出现编译后的redis服务程序redis-server,还有用于测试的客户端程序redis-cli:下面启动 redis 服务(这种方式启动 redis 使用的是默认配置):cd src./redis-server

2021-01-11 03:21:35 717

原创 linux和windows下的opencv编译方法

1.使用CMake生成makefile为什么使用CMake?所有的跨平台开源框架都需要使用编译工具,特别是linux平台编译程序需要makefile文件,makefile来告诉编译器如何对大量的源代码文件进行先后顺序的编译。但是开源框架源代码太多了,我们不可能手工去编写makefile,所以需要有专门的软件帮我们扫描源代码并自动生成makefile文件。这种工具有很多种,这里使用比较有名的同时也是opencv推荐的工具——CMake。使用CMake生成makefile,要指定编译器,我们这里使用安装

2021-01-06 23:35:43 667

原创 FFMPEG框架学习——(6)windows环境下的配置

一、环境配置.pro文件中:INCLUDEPATH += $$PWD/ffmpeg/includeLIBS += $$PWD/ffmpeg/lib/avcodec.lib \ $$PWD/ffmpeg/lib/avdevice.lib \ $$PWD/ffmpeg/lib/avfilter.lib \ $$PWD/ffmpeg/lib/avformat.lib \ $$PWD/ffmpeg/lib/avutil.lib \

2021-01-06 02:59:57 758

原创 FFMPEG框架学习——(5)摄像头

一、摄像头在哪里chenling@chenling-virtual-machine:~$ cd /devchenling@chenling-virtual-machine:/dev$ ls video0video0/dev/video0是摄像头位置,这里先加个权限:sudo chmod 777 video0二、连接摄像头然后加个头文件:extern "C"{ #include <libavdevice/avdevice.h>}修改之前第三篇博文里视频编码的函数

2021-01-06 02:57:40 739 1

原创 FFMPEG框架学习——(4)视频转码

一、流程大致流程:编码数据(e.g.H.264)——>存储在一定封装格式(e.g.MP4、AVI)中具体实现流程:二、步骤1.打开输入流fmatC=avformat_alloc_context();int res=-1;res=avformat_open_input(&fmatC,fileName.toStdString().c_str(),NULL,NULL);if(res<0){ qDebug()<<"can't open input!";

2021-01-06 02:56:52 218

原创 FFMPEG框架学习——(3)视频编码

一、环境搭建——安装x264安装nasmcurl -O -L http://www.nasm.us/pub/nasm/releasebuilds/2.13.01/nasm-2.13.01.tar.bz2tar xjvf nasm-2.13.01.tar.bz2cd nasm-2.13.01./autogen.sh./configuresudo makesudo make install安装 hx264[找x264安装包]cd x264./configure --enable-sha

2021-01-06 02:52:47 301

原创 FFMPEG框架学习——(2)视频的提取和解码

一、流程大致流程:原始音频/视频(存储在一定的封装格式(例如MP4、AVI等)中)——提取——>码流数据h.264(封装数据)——解码——>像素数据YUV——>转换RGB格式的数据——>保存成图片/直接用于显示码流:使用压缩算法压缩后的视频/音频数据像素数据:可以直接使用显示器播放的数据具体实现流程:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fErSpw1n-1609872639250)(C:\Users\asus\Des

2021-01-06 02:52:06 584

空空如也

空空如也

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

TA关注的人

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