Delta

eureka源码系列

孤人 提交于 2020-08-14 02:15:57
eureka源码系列 - 配置类 @Author:zxw @email: 502513205@qq.com @school:吉首大学 1.前言 对于我们刚学习eureka入门教程的同学来说,最常做的就是在配置文件上填写eureka相关参数信息,然后配合一个注解就成功启动了eureka服务,所以了解eureka的配置文件相关参数以及默认值也是非常重要的,就让我们一起打开源码看看 2.面试题 最近我在面试一家公司的时候,因为简历上有写springcloud微服务的项目,所以也问了我一些eureka相关面试题,因为是应届生所以总的来说难度挺低。 eureka的尝试重连次数是多少 // --answer eureka的每隔多少秒会发送一次心跳 // --answer eureka满足CAP中的哪两个 // --answer 3.源码解析 话不多说,直接告诉你eureka的配置类为 EurekaClientConfigBean 该类实现了EurekaClientConfig和Order接口,在EurekaClientConfig接口中定义了一些获取字段值以及区域等其他方法。可以看到该类被 @ConfigurationProperties 注解修饰,如果我们有需要自定义yml配置的,也可以使用该注解修饰。 所使用的前缀为eureka.client,该值定义在PREFIX字段中 默认地址为:

运筹系列46:线性规划求解器python代码

会有一股神秘感。 提交于 2020-08-13 20:44:49
1. BruteSolver This class implements brute-force exhaustive search (try all possible bases) to solve LPs. This method solves the std form LP min (c.T * x) s.t. Ax = b, x >= 0 using brute-force exhaustive search (try all possible bases). That is, try all possible basis matrices (i.e. all m-combinations of basic indices) and take best. Parameters: c, A, b (np arrays): specify the LP in standard form Returns: -1 if LP is infeasible or optimal is (±) infinity, else x (np array): solution to the LP class BruteSolver: def solve(self, c, A, b): c,A,b=check(c,A,b) m = A.shape[0] # rank of A indices =

AtomicInteger源码解析-Java8

烈酒焚心 提交于 2020-08-13 18:58:16
前言   最近在看JDK源码,发现好多地方都用到了AtomicInteger原子类,所以打算将AtmoicInteger的源码过一遍。   本文将分为两部分,一部分是简单介绍AtmoicInteger的用法,第二部分是AtomicInteger的源码,我在源码中做了比较详细的注释。 简单使用AtomicInteger   下面介绍AtomicInteger的一部分API的使用示例,未列出的api可以在后面的源码中看到用法 package cn.ganlixin; import org.junit.Test; import java.util.concurrent.atomic.AtomicInteger; /** * 描述: * 测试使用AtomicInteger * * @author ganlixin * @create 2020-06-11 */ public class TestAtomicInteger { @Test public void test() { AtomicInteger atomicInteger = new AtomicInteger(); // AtomicInteger ai = new AtomicInteger(10); 赋初始值为10 System.out.println(atomicInteger.get()); // 0 // 修改值

机器学习中的矩阵向量求导(四) 矩阵向量求导链式法则

巧了我就是萌 提交于 2020-08-13 03:13:54
    在 机器学习中的矩阵向量求导(三) 矩阵向量求导之微分法 中,我们讨论了使用微分法来求解矩阵向量求导的方法。但是很多时候,求导的自变量和因变量直接有复杂的多层链式求导的关系,此时微分法使用起来也有些麻烦。需要一些简洁的方法。     本文我们讨论矩阵向量求导链式法则,使用该法则很多时候可以帮我们快速求出导数结果。     本文的标量对向量的求导,标量对矩阵的求导使用分母布局, 向量对向量的求导使用分子布局。如果遇到其他资料求导结果不同,请先确认布局是否一样。 1. 向量对向量求导的链式法则     首先我们来看看向量对向量求导的链式法则。假设多个向量存在依赖关系,比如三个向量$\mathbf{x} \to \mathbf{y} \to \mathbf{z}$存在依赖关系,则我们有下面的链式求导法则:$$\frac{\partial \mathbf{z}}{\partial \mathbf{x}} = \frac{\partial \mathbf{z}}{\partial \mathbf{y}}\frac{\partial \mathbf{y}}{\partial \mathbf{x}}$$     该法则也可以推广到更多的向量依赖关系。但是要注意的是要求所有有依赖关系的变量都是向量,如果有一个$\mathbf{Y}$是矩阵,,比如是$\mathbf{x} \to

机器学习中的矩阵向量求导(四) 矩阵向量求导链式法则

独自空忆成欢 提交于 2020-08-12 19:56:42
    在 机器学习中的矩阵向量求导(三) 矩阵向量求导之微分法 中,我们讨论了使用微分法来求解矩阵向量求导的方法。但是很多时候,求导的自变量和因变量直接有复杂的多层链式求导的关系,此时微分法使用起来也有些麻烦。需要一些简洁的方法。     本文我们讨论矩阵向量求导链式法则,使用该法则很多时候可以帮我们快速求出导数结果。     本文的标量对向量的求导,标量对矩阵的求导使用分母布局, 向量对向量的求导使用分子布局。如果遇到其他资料求导结果不同,请先确认布局是否一样。 1. 向量对向量求导的链式法则     首先我们来看看向量对向量求导的链式法则。假设多个向量存在依赖关系,比如三个向量$\mathbf{x} \to \mathbf{y} \to \mathbf{z}$存在依赖关系,则我们有下面的链式求导法则:$$\frac{\partial \mathbf{z}}{\partial \mathbf{x}} = \frac{\partial \mathbf{z}}{\partial \mathbf{y}}\frac{\partial \mathbf{y}}{\partial \mathbf{x}}$$     该法则也可以推广到更多的向量依赖关系。但是要注意的是要求所有有依赖关系的变量都是向量,如果有一个$\mathbf{Y}$是矩阵,,比如是$\mathbf{x} \to

matlab练习程序(倾斜校正,透视变换)

孤人 提交于 2020-08-12 15:22:25
  过去也写过 透视变换 ,当时算法真是弱爆了,我竟然会通过两次变换。不过那引用的三篇文章都是非常好的文章,直到今天我才看明白。所谓的倾斜校正,一定要有标定点,将一个倾斜的矩形变为不倾斜的。因此可以从原四边形四个点和新矩形四个点得到一个变换矩阵,根据这个矩阵再作用到全局图像就可以了。详细原理在 这里 ,MIT的,我也不会比他介绍的更好了,还是看原版的好。   我这里的代码完全就是按照MIT那篇文章的原理实现的,不过因为Matlab细节的原因,我把公式中x和y位置互换了: clear all; close all; clc; img = imread( ' rect.bmp ' ); img = rgb2gray(img); imshow(mat2gray(img)); [M N] = size(img); dot = ginput(); %取四个点,依次是左上,右上,左下,右下,这里我取的是书的四个角 w =round(sqrt((dot( 1 , 1 )-dot( 2 , 1 ))^ 2 +(dot( 1 , 2 )-dot( 2 , 2 ))^ 2 )); %从原四边形获得新矩形宽 h =round(sqrt((dot( 1 , 1 )-dot( 3 , 1 ))^ 2 +(dot( 1 , 2 )-dot( 3 , 2 ))^ 2 )); %从原四边形获得新矩形高 y =

(八十九)c#Winform自定义控件-自定义滚动条(treeview、panel、datagridview、listbox、listview、textbox)

心已入冬 提交于 2020-08-12 06:49:06
官网 http://www.hzhcontrols.com/ 前提 入行已经7,8年了,一直想做一套漂亮点的自定义控件,于是就有了本系列文章。 GitHub: https://github.com/kwwwvagaa/NetWinformControl 码云: https://gitee.com/kwwwvagaa/net_winform_custom_control.git 如果觉得写的还行,请点个 star 支持一下吧 欢迎前来交流探讨: 企鹅群568015492 来都来了,点个【推荐】再走吧,谢谢 NuGet Install-Package HZH_Controls 目录 http://www.hzhcontrols.com/blog-63.html 用处及效果 准备工作 这个是在前面滚动条上完善的,加入了对常用控件滚动条的美化,实现逻辑是添加一个滚动条控件,然后覆盖在滚动条上面,然后实现联动 绘制滚动条的工作,你可以参考 (六十九)c#Winform自定义控件-垂直滚动条-HZHControls 开始 添加一个组件ScrollbarComponent, 实现接口IExtenderProvider 1 Dictionary<Control, bool > m_controlCache = new Dictionary<Control, bool > (); 2 public

OpenCV实战 | 手机镜头目标提取、缺陷检测与图像畸变校正

本小妞迷上赌 提交于 2020-08-12 05:04:37
前两天参加了北师的数学建模校赛,B题是一道图像处理的题,于是趁机练习了一下OpenCV,现在把做的东西移植过来。 (2020.5.31补充:此方法在竞赛中取得二等奖。这次的参赛论文的确存在一些问题,例如没有对结果进行量化评估、对处理方式的具体细节叙述得不够明确、参考文献不够丰富(好吧,其实没有引用参考文献)等。) 题目大意 给出一张生产线上拍摄的手机镜头的图像(如下),要求解决三个问题: 建立模型构造出一种分割方法,可以将左右两个镜头的待测区域(白色环形内区域)准确地分离出来。 建立模型构造一种检测方法,自动地在待测区域之内将所有缺陷点找出,缺陷点为人眼可识别的白点,最小可为一个像素点。要求给出缺陷点的数学描述,并根据该描述建立检测模型,自动确定每个缺陷点的位置和像素大小。给出右侧镜头中按像素大小排序的最大的前五个缺陷点的位置坐标。 由于在实际拍照中镜头可能会在模具中抖动,所以拍摄的图片可能并不是正对镜头的,此为图像的偏心现象。比如图中左侧图像就是正对的情况,右侧就是不正对(偏心)的情况。建立模型构造一种校正方法,校正右侧图像的偏心现象。呈现校正效果,并给出第2问所求五个缺陷点校正后的位置坐标。 问题求解 问题一 这个问题是目标检测,并且需求十分明确:提取出白色圆环中的区域的图像。观察图像可以发现图中白色的部分几乎只有需要检测的白色圆环

Efficient Sparse Pose Adjustment(SPA) for 2D Mapping 论文总结

霸气de小男生 提交于 2020-08-12 03:06:55
Konolige K , Grisetti G , Rainer Kümmerle, et al. Efficient sparse pose adjustment for 2D mapping[C]// 2010 IEEE/RSJ International Conference on Intelligent Robots and Systems. IEEE, 2010. 这是一篇讲解2D建图中的高效稀疏矩阵图优化的文章,谷歌的cartographer激光slam中位姿图优化主要便是基于思想来实现的。文章主要贡献是在 L M LM L M 优化过程中使用乔里斯基分解(Cholesky decomposition)实现稀疏 H H H 矩阵下的状态增量 Δ \Delta Δ x高效快速求解。 1. 摘要 图优化已经成为一种解决slam问题的主流方法。位姿图是由一系列非线性约束连接机器人位姿点构成,这些约束来自于位姿点周围共同的特征观测。由于直接非线性优化的计算时间与图的大小的3次方成比例增长, 优化大型位姿图 成为移动机器人一个比较大的瓶颈问题。文章为了解决这个问题, 提出一种有效的方法去构建和解决其中的线性化子问题 ,这是常规直接非线性优化方法中的性能瓶颈所在。作者将文中所提方法命名为 SPA(Sparse Pose Adjustment )

阿里天池全国社保比赛心得

二次信任 提交于 2020-08-11 23:45:34
最近时间都忙于参加阿里天池的全国社会保险大数据应用创新大赛,终于结束,最终全国排名第7,总共是1336只队伍参加,还是很激动进了前10,今天想把一些体悟写一下,希望对后来参加的人有用。这个比赛是完成数据算法模型的开发设计,实现对各类医疗保险基金欺诈违规行为的准确识别,根据给出的数据情况,最开始有两个思路,1.从就诊记录入手,找到可疑的就诊记录,然后拼接到人上 2.直接构造人的可疑程度的行为特征。两者都试过,最终选择了后者,因为题目给出的欺诈标签主要是人的欺诈标签,并没有给出某次就诊行为的欺诈标签。另外,此次的评测指标是F1值,这个非常重要,你要知道你最终排名都是看的这个值。下面我从三个方面讲一下这次比赛的心得。 一、特征 可能没参加比赛前很难理解 特征决定上限 的这个真理,特征特征才是最重要的! 一定要看特征重要度,要不断尝试,有些组合到一起反而降低,有些特征看着不重要,你把他去了 可是结果却会出现下降的情况,因为特征和特征之间是有关系的。 在重要特征做深入处理的收益远大于在次要特征中继续做。 汇总信息有些时候会丢失信息,比如我们最开始将医院数据进行了汇总,计算每个人去一级医院,二级医院,三级医院的个数,反而没有把所有医院的维度扩充好。 观察和了解你的数据很重要。观察数据发现患者同一天在同一个医院有药费,有治疗费分别出现不同的就诊id,包括挂号的费用也是不同的id