- 博客(39)
- 收藏
- 关注
原创 Adam优化器
梯度下降:基础但简单,固定学习率动量法:加入惯性,减少振荡,加速收敛AdaGrad:自适应学习率,适合稀疏数据RMSProp:解决AdaGrad学习率过早衰减问题Adam:结合动量和RMSProp,加偏差修正,成为通用优化器适应性:每个参数有自适应学习率效率:结合了动量加速鲁棒性:超参数选择相对不敏感通用性:在各种任务上表现良好这些改进解决了深度学习中常见的优化问题:梯度稀疏性、学习率选择困难、收敛速度慢等,使Adam成为当前最流行的优化器之一。
2026-01-30 14:17:04
511
原创 深度学习基础知识
激活函数就是神经网络中的一个“开关”或“加工函数”,它决定了神经元是否被激活、以及激活到什么程度。zw1x1w2x2⋯bzw1x1w2x2⋯b这里zzz是输入加权加偏置的结果,仍然是线性的。然后对这个结果zzz施加一个非线性函数σz\sigma(z)σzaσzaσz这个σ\sigmaσ就是激活函数,常见的比如 Sigmoid、ReLU、tanh 等。无激活函数的神经网络。
2026-01-28 17:26:01
520
原创 DeepCrack: A deep hierarchical feature learning architecture for crack segmentation
对比基线:与多种方法对比,包括Canny、GPb、PMI、DeepEdge、DeepContour、基于FCN和SegNet的方法等【IV.B节】。作者提及:在结论中,作者提到未来工作包括将DeepCrack扩展到视频裂缝检测和3D裂缝分析【V节】,这间接承认了当前方法仅处理静态2D图像的局限。传统方法:主要包括基于阈值分割、边缘检测、小波变换和最小路径搜索的方法。评估指标:采用准确率(Precision)、召回率(Recall)、F-measure (F)和交并比(IoU)【IV.A节】。
2026-01-26 16:22:40
481
原创 读DeepCrack
3)未与更先进的通用边缘检测器(如后来的RCF、BDCN)对比。公平性与复现性:数据集部分公开,网络架构描述详细,但超参数(如学习率、批大小)等训练细节未完全给出,对完全复现构成一定障碍。基于机器学习的早期深度学习方法:主要是基于图像块的分类或使用FCN进行初步探索,缺乏专为裂缝检测设计的端到端网络结构。评估指标:采用精确率(Precision)、召回率(Recall)、F-Measure(F值)和交并比(IoU)。劣势:相比传统方法(如Canny),计算复杂度高,需要GPU训练和推断。
2026-01-21 10:14:24
513
原创 论文精读2
Zone Prompt:使用区域名词作为提示,通过Adapter提取区域-类别共现信息,增强回归能力。Zone-YOLO在COCO上AP达55.1,显著优于YOLO-World和YOLOv9/v10。在交通数据集(BDD100K、VisDrone)上也表现优异,尤其在APₘ和APₗ上提升明显。SAMF:在多尺度上对齐视觉与文本特征,使用尺度感知查询抑制概念混淆。数据集:COCO、BDD100K、VisDrone2019、LVIS。评估指标:AP、AP₅₀、AP₇₅、APₛ、APₘ、APₗ等。
2026-01-14 11:10:06
458
原创 论文精读1
支持主张:DamageQwen在几乎所有指标和设置下均优于对比模型,尤其是在4-shot和详细提示下表现最佳。通过零样本/少样本(1,2,4-shot) 两种提示策略的对比,证明框架在各项文本指标上均优于基线VLM。[页8-10:表3和表4]优势:在保持高定位精度的同时,提供了远超传统目标检测的丰富语义信息、交互能力和数据效率(少样本)。发现:BLEU分数普遍较低,作者解释是VLM输出格式(分行列表)与参考文本(段落)的差异所致。c. 结合精炼后的检测信息(位置、类别)和用户提示,生成结构化提示。
2026-01-06 15:10:53
645
原创 多模态特征融合
通过统一的Transformer编码器,将不同模态的特征(通过线性投影转化为Token序列)进行混合编码,利用其强大的自注意力和交叉注意力机制实现深度融合。思路:让各模态先通过各自的子网络进行一定深度的独立编码,提* 取到高层语义特征后,在模型的中间层进行交互融合。思路:各模态完全独立地通过自己的模型进行处理,得到各自的任务结果(如分类分数、检测框),最后再对结果进行整合。缺点:对模态间的对齐要求高,容易受到噪声模态的影响,且因各模态特征空间差异大,直接拼接可能效果不佳。这是当前最核心、最有效的技术。
2025-12-25 15:51:44
897
原创 一些八股总结
7.ConcurrentHashMap 是如何保证线程安全的?41.从 innodb的索引结构分析,为什么索引的key使用B+树?9.synchronized 是如何保证原子性、可见性、有序性的?20.一次insert操作,MySQL的几种log的写入顺序?16.InnoDB如何解决脏读、不可重复读和幻读的?18.InnoDB的一次更新事务过程是怎么样的?36.MySQL是如何保证唯一性索引的唯一性的?29.InnoDB中的表级锁、页级锁、行级锁?40.什么是前缀索引,使用的时候要注意什么?
2025-08-31 23:49:56
679
原创 SpringBoot自动配置原理
核心作用导入一个选择器:AutoConfigurationImportSelector。这个文件里面定义了一系列需要自动配置类的列表。最后会自动配置这些定义的制动配置类。它会决定哪些类需要进行自动配置。
2025-08-24 15:27:33
403
原创 出现OOM怎么排查
排查代码,确定是否显示使用死循环创建线程,或者隐式调用第三方接口创建线程。报错信息StackOverflowError。使用工具:VisualVM,MAT等。
2025-08-03 16:06:54
415
原创 Spring事务失效场景
如果Spring 使用了 Cglib 代理实现 (比如你的代理类没有实现接口),而你的业务方法敲好使用了 final 或者 static 关键字,那么事务也会失败。更具体的说,它应该抛出异常,因为 Cglib 使用字节码增强技术生成被代理类的子类并重写代理类的方法来实现代理。如果被代理的方法使用 final 或 static 关键字,则子类不能重写被代理的方法。如果 Spring 使用 JDK 动态代理实现,JDK动态代理是基于接口实现的,那么 final 和 static 修饰的方法也就无法被代理。
2025-07-12 18:16:26
567
原创 软件工程经济与伦理
经济学是研究人类在生产,消费,分配,交换等经济活动过程中的资源配置与资源利用的学科,属于社会科学。经济学的分支学科主要有,工程经济学,信息经济学,法律,管理,公共,发展,金融,政治,行为,社会经济学等。
2025-07-05 17:37:57
214
2
原创 解决哈希冲突的办法
链地址法(Chaining)和开放地址法(Open Addressing)是哈希表中解决哈希冲突(不同键映射到相同位置)的两种主要策略。
2025-07-04 21:30:38
1547
原创 浅析JVM
如图:JVM由四个部分构成:其中, 方法区 是各个线程共享的一块逻辑内存区域,它用于存储已经被虚拟机加载的类型信息、常量、静态变量、即使编译器编译后的代码缓存等数据。方法区的实现在 Java8后的HotSpot虚拟机采用的是元空间(元空间在本地内存)。在Java8之前,HotSpot虚拟机采用的是永久代(永久代在堆内存)来实现的方法区,这样HotSpot的垃圾收集器能够像管理Java堆内存一样管理这部分内存,省去了为方法区编写内存管理代码的工作。但是其他虚拟机实现方法区时不存在永久代的概念。Java
2025-06-28 14:31:09
1026
原创 ConcurrentHashMap
ConcurrentHashMap (CHM) 是 Java 并发包 (java.util.concurrent) 中提供的高并发、线程安全的 Map 实现。它的设计目标是在高并发读写场景下提供高性能,同时保证线程安全。其底层实现经历了显著演变(主要分 JDK 7 和 JDK 8+ 两个阶段),核心思想是减小锁的粒度和利用 CAS 操作。
2025-06-26 17:20:44
1089
原创 jwt登录
JWT(JSON Web Token)是一种开放标准(RFC 7519),用于在各方之间以JSON对象安全地传递信息。这些信息可以被验证和信任,因为它是数字签名的。
2025-06-22 15:10:48
400
原创 数据库的隔离级别
规则 2: 如果 DB_TRX_ID >= max_trx_id,说明该版本是由在 Read View 创建之后才开始的事务修改的(即该事务在当前事务开始之后才启动),不可见。规则 4: 如果 DB_TRX_ID == creator_trx_id,说明该版本是当前事务自己修改的,可见(即使还没提交)。规则 1: 如果 DB_TRX_ID < min_trx_id,说明该版本是在当前事务开始之前就已提交的,可见。对于 age=30 的记录:锁定间隙 (25, 30] 和记录30 -> (25, 30]
2025-06-21 17:31:34
1352
原创 缓存与数据库一致性问题
先删除数据库、再删缓存,如果删除失败就发可靠MQ不断重式删除,直到删除成功或者到一定次数人工处理。先删除缓存,再更新数据库,大概在数据库更新完后再删一次缓存。缺点:一直删除失败,一直读取的是缓存的旧数据。缺点:不好控制第二次删除的时间。
2025-06-19 20:38:25
333
原创 Redis分布式锁
只要线程一加锁成功,就会启动一个watch dog看门狗,它是一个后台线程,会每隔10秒检查一下,如果线程1还持有锁,那么就会不断的延长锁key的生存时间,默认情况下,看门狗的续期时间是30s,也可以通过修改Config.lockWatchdogTimeout来另行指定。该命令是原子性的,避免了死锁的情况,但是释放锁的时候如果自己的锁已经到了过期时间自动释放了,然后客户端再进行一次释放,可能会将其他线程的锁释放了。所以要在每个线程加锁是设置一个唯一的锁标志,释放时根据自己的标志进行释放。
2025-06-19 18:58:38
534
原创 AQS理解
AQS(AbstractQueuedSynchronizer)是 Java 并发包 (java.util.concurrent.locks) 中一个核心的底层框架,用于构建锁(如 ReentrantLock)和其他同步器(如 Semaphore, CountDownLatch, ReentrantReadWriteLock 等)。
2025-06-19 16:43:38
852
原创 ThreadLocal
5. 在 ThreadLocalMap 中查找当前 ThreadLocal 对象作为键的值。6. 如果找到了对应的值,则返回该值;如果没有找到,则返回默认值(通常是 null)。4. ThreadLocal 会获取当前线程的 ThreadLocalMap。
2025-06-18 20:47:23
603
原创 RabbitMQ保证消息消费一次并且只消费一次
由于网络原因,或者系统崩溃,导致消费者已近消费后但是Ack没有发送出来或者丢失,会导致Broker认为发送失败而进行重发,这可能导致消费者重复消费的问题。
2025-06-16 16:20:03
320
原创 CAS笔记
先读取内存中的数据,再通过比较是否符合预期,符合就跟新为新值。其实现是基于硬件提供的原子操作指令,实现无锁并发,提高了效率的同时还保证原子性。1.synchronized争夺同一共享资源时,未获得锁的线程会等待,线程挂起与唤醒需要在用户态和内核态进行切换,影响性能。线程2:在线程1读取后还未修改时线程2将1改成3有改回1后,线程1才进行修改。解决:JVM提供的pause指令,让cpu在自旋失败时睡眠一段时间再继续自旋。2.volatile可以保证内存的可见性和指令有序性,但是不能保证原子性。
2025-06-15 18:55:33
379
原创 synchronized锁升级
jdk1.5及以前,加锁和释放锁的过程jvm底层都是由操作系统的mutex lock实现的-》涉及上下文切换(用户态和内核态转换)-》synchronized是重量级锁jdk1.6引入了偏向锁和轻量级锁用synchronized加锁影响性能:1.需要jvm层介入2.重量级锁是通过操作系统对线程的挂起和恢复来实现的,涉及内核态和用户态切换1.在类的普通方法上2.类的静态方法3.代码块在jdk1.5及以前只有两种:无锁和重量级锁----jdk1.6及以后加了偏向锁和轻量级锁1.无锁:对于共享资源,没有多个线程同
2025-06-13 20:40:49
441
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅