最近终于写完了毕业论文.想仔细研究下Cartographer.无奈自己学识有限,先看下网上大牛的解析,作一个汇总. 一.泡泡机器人原创专栏-cartographer理论及实践浅析 http://mp.weixin.qq.com/s/LdbFp-Zvkr02-_25ILb16g 二.[SLAM](一)Google Cartographer的初步尝试 三.kint_zhao的博客:http://blog.csdn.net/zyh821351004/article/details/52421005 四…
系列文章目录和关于我 一丶什么是SpringBoot自动装配 SpringBoot通过SPI的机制,在我们程序员引入一些starter之后,扫描外部引用 jar 包中的META-INF/spring.factories文件,将文件中配置的类型信息加载到 Spring 容器,实现引入starter即可开启相关功能的操作,大大简化了程序员手动配置bean,即开即用. 二丶SpringBoot自动装配源码解析 1.源码解析入口 SpringApplication.run(启动类.class, args…
依赖关系 方法 class MinimalHttpClient extends CloseableHttpClient { //连接管理器 private final HttpClientConnectionManager connManager; //执行器 private final MinimalClientExec requestExecutor; //参数 private final HttpParams params; } doExecute方法 @Override protecte…
1.ArrayList简介 ArrayList是一个数组队列,与java中的数组的容量固定不同,它可以动态的实现容量的增涨.所以ArrayList也叫动态数组.当我们知道有多少个数据元素的时候,我们用传统数组就可以解决问题,可当我们不知道有多少个数据元素的时候我们就可以用ArrayList. 2.继承关系 public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess,…
原文链接: https://juejin.im/post/5db8ea506fb9a02061399ab3 Netty 的 ByteBuf 类型 Pooled(池化).Unpooled(非池化) Direct(直接缓冲区/堆外).Heap(jvm堆内) unsafe(unsafe 调用的本地方法).safe(一般也不会这么说, 这是相对于 unsafe, 指的jvm 堆内的操作) Netty 默认都会优先使用 unsafe 的实现 池化/非池化(Pooled/Unpooled) Netty 先申…
在了解Masonry框架之前,有必要先了解一下自动布局的概念.在iOS6之前,UI布局的方式是通过frame属性和Autoresizing来完成的,而在iOS6之后,苹果公司推出了AutoLayout的布局方式,它是一种基于约束性的.描述性的布局系统,尤其是苹果的手机屏幕尺寸变多之后,AutoLayout的应用也越来越广泛. 但是,手写AutoLayout布局代码是十分繁琐的工作(不熟悉的话,可以找资料体验一下,保证让你爽到想哭,^_^):鉴于此,苹果又开发了VFL的布局方式,虽然简化了许多,但…
置顶一篇文章,主要是整理一下写过的JDK中各个类的源码及其他框架源码解析的文章,方便自己随时阅读也方便网友朋友们阅读与指正 基础篇 从为什么String=String谈到StringBuilder和StringBuffer Java语法糖1:可变长度参数以及foreach循环原理 Java语法糖2:自动装箱和自动拆箱 集合篇 图解集合1:ArrayList 图解集合2:LinkedList 图解集合3:CopyOnWriteArrayList 图解集合4:HashMap 图解集合5:不正确地使用…
[学习笔记]转载 Java集合类源码解析:Vector   引言 之前的文章我们学习了一个集合类 ArrayList,今天讲它的一个兄弟 Vector.为什么说是它兄弟呢?因为从容器的构造来说,Vector 简直就是 ArrayList 的翻版,也是基于数组的数据结构,不同的是,Vector的每个方法都加了 synchronized 修饰符,是线程安全的. 类声明 用idea打开 Vector 的源码,不难发现,它的类声明跟 ArrayList 一模一样,都是继承了AbstractList,并且…
转载自谷歌Cartographer学习(1)-快速安装测试 代码放到个人github上,https://github.com/hitcm/ 如下,需要安装3个软件包,ceres solver.cartographer和cartographer_ros 1.首先安装ceres solver,选择的版本是1.11,路径随意. git clone https://github.com/hitcm/ceres-solver-1.11.0.git mkdir build cd ceres-solver-1…
机器学习实战(Machine Learning in Action)学习笔记————03.决策树原理.源码解析及测试 关键字:决策树.python.源码解析.测试作者:米仓山下时间:2018-10-24机器学习实战(Machine Learning in Action,@author: Peter Harrington)源码下载地址:https://www.manning.com/books/machine-learning-in-actiongit@github.com:pbharrin/ma…
iOS开发过程中很大一部分内容就是界面布局和跳转,iOS的布局方式也经历了 显式坐标定位方式 --> autoresizingMask --> iOS 6.0推出的自动布局(Auto Layout)的逐步优化,至于为什么推出自动布局,肯定是因为之前的方法不好用(哈哈 简直是废话),具体如何不好用以及怎么变化大家可以瞅瞅 这篇文章.iOS6.0推出的自动布局实际上用布局约束(Layout Constraint)来实现,通过布局约束(Layout Constraint)可以确定两个视图之间精确的位…
[源码解析] 深度学习流水线并行Gpipe(1)---流水线基本实现 目录 [源码解析] 深度学习流水线并行Gpipe(1)---流水线基本实现 0x00 摘要 0x01 概述 1.1 什么是GPipe 1.2 挑战 0x02 并行机制 2.1 机制分类与权衡 2.1.1 数据并行 2.1.2 模型并行 2.1.3 流水线并行 2.2 如何使用 0x03 Pytorch 手动指定并行方式 3.1 基础知识 3.2 特点 3.3 基本用法 3.4 将模型并行化应用于现有模块 3.5 通过流水线输入…
[源码解析] 深度学习流水线并行之PopeDream(1)--- Profile阶段 目录 [源码解析] 深度学习流水线并行之PopeDream(1)--- Profile阶段 0x00 摘要 0x01 概述 1.1 前文回顾 1.2 目前问题 1.2.1 数据并行 1.2.2 模型并行 1.2.3 Gpipe 0x02 论文 2.1 方案概述 2.1.1 并行方式 2.1.2 1F1B 0x03 流水线 3.1 流水线改进 3.2 挑战 3.4 流水线划分算法 3.5 Profile 0x04…
现在,热修复的具体实现方案开源的也有很多,原理也大同小异,本篇文章以Nuwa为例,深入剖析.  Nuwa的github地址 https://github.com/jasonross/Nuwa 以及用于hotpatch生成的gradle插件地址 https://github.com/jasonross/NuwaGradle 而Nuwa的具体实现是根据QQ空间的热修复方案来实现的.安卓App热补丁动态修复技术介绍.在阅读本篇文章之前,请先阅读该文章. 从QQ空间终端开发团队的文章中可以总结出要进行热…
原创播客,如需转载请注明出处.原文地址:http://www.cnblogs.com/crawl/p/7738888.html ---------------------------------------------------------------------------------------------------------------------------------------------------------- 笔记中提供了大量的代码示例,需要说明的是,大部分代码示例都是本…
学习路线: http://www.cnblogs.com/skywang12345/ 总结 1 总体框架 2 Collection架构 3 ArrayList详细介绍(源码解析)和使用示例 4 fail-fast总结(通过ArrayList来说明fail-fast的原理.解决办法) 5 LinkedList详细介绍(源码解析)和使用示例 6 Vector详细介绍(源码解析)和使用示例 7 Stack详细介绍(源码解析)和使用示例 8 List总结(LinkedList, ArrayList等使用…
知其然,还要知其所以然 ! 本篇介绍Spring-Session的整个实现的原理.以及对核心的源码进行简单的介绍! 实现原理介绍 实现原理这里简单说明描述: 就是当Web服务器接收到http请求后,当请求进入对应的Filter进行过滤,将原本需要由web服务器创建会话的过程转交给Spring-Session进行创建,本来创建的会话保存在Web服务器内存中,通过Spring-Session创建的会话信息可以保存第三方的服务中,如:redis,mysql等.Web服务器之间通过连接第三方服务来共享数…
最近这段时间系统性的学习了 BP 算法后写下了这篇学习笔记,因为能力有限,若有明显错误,还请指正. 什么是梯度下降和链式求导法则 假设我们有一个函数 J(w),如下图所示. 梯度下降示意图 现在,我们要求当 w 等于什么的时候,J(w) 能够取到最小值.从图中我们知道最小值在初始位置的左边,也就意味着如果想要使 J(w) 最小,w的值需要减小.而初始位置的切线的斜率a > 0(也即该位置对应的导数大于0),w = w – a 就能够让 w 的值减小,循环求导更新w直到 J(w) 取得最小值.如果…
QQ技术互动交流群:ESP8266&32 物联网开发 群号622368884,不喜勿喷 单片机菜鸟博哥CSDN 1.前言 废话少说,本篇博文的目的就是深入学习 WifiManager 这个github上非常火爆的ESP8266 web配网库,让初学者不再对web配网感到迷茫,并且通过学习第三方库来自定义自己的web配网功能.等你学习整篇博文,你会发现 So easy!! 2.WiFiManager 2.1 WiFiManager源码地址 直接点击 github 下载代码 2.2 WiFiMana…
目录预训练源码结构简介输入输出源码解析参数主函数创建训练实例下一句预测&实例生成随机遮蔽输出结果一览预训练源码结构简介关于BERT,简单来说,它是一个基于Transformer架构,结合遮蔽词预测和上下句识别的预训练NLP模型.至于效果:在11种不同NLP测试中创出最佳成绩关于介绍BERT的文章我看了一些,个人感觉介绍的最全面的是机器之心再放上谷歌官方源码链接:BERT官方源码在看本博客之前,读者先要了解:1.Transformer架构2.BERT模型的创新之处3.python语言及tensor…
目录 ArrayBlockingQueue概述 类图结构及重要字段 构造器 出队和入队操作 入队enqueue 出队dequeue 阻塞式操作 E take() 阻塞式获取 void put(E e) 阻塞式插入 E poll(timeout, unit) 阻塞式超时获取 boolean offer(e, timeout, unit) 阻塞式超时插入 其他常规操作 boolean offer(E e) E poll() Boolean remove(Object o) 总结 参考阅读 系列传送门…
目录 LinkedBlockingQueue概述 类图结构及重要字段 构造器 出队和入队操作 入队enqueue 出队dequeue 阻塞式操作 E take() 阻塞式获取 void put(E e) 阻塞式插入 E poll(timeout, unit) 阻塞式超时获取 boolean offer(e, timeout, unit) 阻塞式超时插入 其他常规操作 boolean offer(E e) E poll() E peek() Boolean remove(Object o) 总结…
目录 PriorityBlockingQueue概述 类图结构及重要字段 什么是二叉堆 堆的基本操作 向上调整void up(int u) 向下调整void down(int u) 构造器 扩容方法tryGrow 源码中向上调整和向下调整实现 siftUpComparable siftDownComparable heapify建堆or堆化 put非阻塞式插入 take阻塞式获取 remove移除指定元素 总结 参考阅读 系列传送门: Java并发包源码学习系列:AbstractQueuedSy…
目录 DelayQueue概述 类图及重要字段 Delayed接口 Delayed元素案例 构造器 put take first = null 有什么用 总结 参考阅读 系列传送门: Java并发包源码学习系列:AbstractQueuedSynchronizer Java并发包源码学习系列:CLH同步队列及同步资源获取与释放 Java并发包源码学习系列:AQS共享式与独占式获取与释放资源的区别 Java并发包源码学习系列:ReentrantLock可重入独占锁详解 Java并发包源码学习系列:…
目录 SynchronousQueue概述 使用案例 类图结构 put与take方法 void put(E e) E take() Transfer 公平模式TransferQueue QNode transfer awaitFulfill tryCancel clean TransferQueue总结 非公平模式TransferStack SNode transfer TransferStack总结 总结 参考阅读 系列传送门: Java并发包源码学习系列:AbstractQueuedSync…
目录 LinkedTransferQueue概述 TransferQueue 类图结构及重要字段 Node节点 前置:xfer方法的定义 队列操作三大类 插入元素put.add.offer 获取元素take.poll transfer.tryTransfer xfer三大流程 xfer tryAppend awaitMatch LinkedTransferQueue使用案例 总结 参考阅读 系列传送门: Java并发包源码学习系列:AbstractQueuedSynchronizer Java并…
目录 LinkedBlockingDeque概述 类图结构及重要字段 linkFirst linkLast unlinkFirst unlinkLast unlink 总结 参考阅读 系列传送门: Java并发包源码学习系列:AbstractQueuedSynchronizer Java并发包源码学习系列:CLH同步队列及同步资源获取与释放 Java并发包源码学习系列:AQS共享式与独占式获取与释放资源的区别 Java并发包源码学习系列:ReentrantLock可重入独占锁详解 Java并发包…
目录 非阻塞并发队列ConcurrentLinkedQueue概述 结构组成 基本不变式 head的不变式与可变式 tail的不变式与可变式 offer操作 源码解析 图解offer操作 JDK1.6 hops设计意图 poll操作 源码解析 图解poll操作 总结 参考阅读 非阻塞并发队列ConcurrentLinkedQueue概述 我们之前花了很多时间了解学习BlockingQueue阻塞队列接口下的各种实现,也大概对阻塞队列的实现机制有了一定的了解:阻塞 + 队列嘛. 而且其中绝大部分是…
目录 ThreadPoolExecutor概述 线程池解决的优点 线程池处理流程 创建线程池 重要常量及字段 线程池的五种状态及转换 ThreadPoolExecutor构造参数及参数意义 Work类 void execute(Runnable command) boolean addWorker(firstTask, core) final void runWorker(Worker w) Runnable getTask() void processWorkerExit(w, complet…
目录 ScheduledThreadPoolExecutor概述 类图结构 ScheduledExecutorService ScheduledFutureTask FutureTask schedule void delayedExecute(task) boolean canRunInCurrentRunState(periodic) void ensurePrestart() ScheduledFutureTask#run() FutureTask#run() FutureTask#set…