自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Typora页面美化(字体修改、文字标红)持续更新~~~

网上找的博客都需要下载插件或者换主题,解决不了一些文字标红等问题,于是自己尝试简单修改CSS文件达到需求,会持续更新

2020-08-21 18:49:20 10155 12

原创 优雅地理解线程池源码

线程池源码网上的一些博客对线程池的讲解都是逐行解读源码,看起来可能会比较费力,本文从功能角度出发,以整个流程为切入点,省去一些没必要的源码,带你逐层抽丝剥茧,理解线程池设计的精髓所在。前置知识几个常量和变量// ctl是一个int类型的组合变量(32个bit),低29位表示线程池里的线程数,高3位表示线程池的状态private final AtomicInteger ctl = new AtomicInteger(ctlOf(RUNNING, 0));// 所有在线程池中的线程都会被放到Has

2022-05-08 16:39:11 661 1

原创 生产者-消费者模型

阿里面试:如何写一个缓冲区?缓冲区是可以被多个线程存数据和取数据,那么这个时候可能会发生线程安全问题,比如不能同时对缓冲区进行存或取,缓冲区没有数据就不能取,缓冲区满了就不能存,这其实就是生产者消费者模型。注意,这与读者-写者问题的本质不同在于,读者可以有多个,他们可以一起读,不会发生安全问题,只是读和写是互斥的。而生产者是对数据进行增加,消费者对数据进行删除,是会发生安全问题的,生产者与生产者、生产者与消费者、消费者与消费者之间都应该互斥简易版生产者—消费者模型所谓简易版指的是生产者和消费者都只

2022-03-12 10:45:56 890

原创 为什么java的jvm堆空间要有两块幸存者区?

问题引出在学习jvm堆空间时,了解到堆中年轻代分为三个区域:伊甸园区和两个幸存者区,当伊甸园区满了之后会使用gc回收不再被引用的对象销毁,剩余对象在两个幸存者区之间倒腾但是为什么要两个幸存者区,我一个幸存者区不就行了?伊甸园剩下的直接放到这个幸存者区,再加一个计数的不就行了。原因分析主要原因是内存碎片!何为内存碎片,就是没法使用的内存,下面来介绍一下(其实内存碎片分为内部碎片和外部碎片,这里指的是外部碎片)内存碎片看一个例子来理解在幸存者区中创建了如下的几个对象现在垃圾收集器从内存中删

2021-11-03 12:25:21 1609

原创 python使用socket高效传输视频数据帧(连续发送图片)

遇到的问题网上找了一些代码,都是只能建立一次socket传输一张图片,然后断开重新连重新传。而建立一次socket代价不小,反复建立会非常消耗系统资源,因此尝试自己通过一次socket连续传输多张图片代码问题记录(需要代码的可以直接文末)在做的过程中发现了一些问题:socket在传一张图片时是以二进制流的形式传输,图片的二进制流比较大,一般一次传不完,要传很多次。那么接受者是如何知道什么时候才停止接收这张图片呢?那可以让发送者在发图之前先发一个头信息,告诉接收者这个二进制流有多长,然后接收者通过这

2021-10-20 17:09:10 5297 4

原创 一文弄清单例模式

单例模式介绍一个类只允许创建一个实例的设计模式被称为单例模式当一个类被反复实例化并重复使用时,为了节约内存空间,会用到这种模式单例模式分为饿汉式和懒汉式,下面一一介绍饿汉式所谓的饿汉式,顾名思义,很饿就迫不及待地想创建实例对象,而java中最早可以创建的时候是类加载的时候,类加载首先会初始化静态代码,那么饿汉式就应该这样写:public class Singleton { // 类加载初始化静态代码的时候就创建实例 private static Singleton instanc

2021-09-14 16:32:28 91

原创 Spring Boot 中@Componentscan 和@EnableAutoConfiguration 的区别

问题引出学习springboot配置原理的时候,注解@SpringBootApplication下有三个注解,@SpringBootApplication、@EnableAutoConfiguration以及@ComponentScan,感觉后两个都是包扫描的配置,有点分不清。这里做一个辨析:区别这两个注释之间的基本区别是@ComponentScan 扫描 Spring 组件,也就是我们平时开发用的@Controller/@Service/@Component/@Repository这些注解是由Co

2021-09-06 17:37:52 1475 1

原创 再写错二分法的边界,你就来打我!

二分法是非常常用的搜索方法,但是在写代码的时候,很容易搞错边界问题,本文针对这个问题进行解决,并推出二分法常用的模板

2021-08-01 19:31:17 115

原创 巴什博奕

题目描述解法思路这类题目都有通用解法,可以考虑n个石头,每次被对方拿走1-m个石头,拿到最后一个的赢如果当n = (m + 1) * k时,假设先手的人拿s个石头,s在1-m这个范围内,那么后手的人只需要拿m+1-s个石头,循环k个轮回,后手的人一定赢如果n = (m + 1) * k + i时,先手的人拿i个石头,还剩下m+1个石头,又变成上面的情况了,只不过这时先手后手换了位置,先手一定赢代码public class Solution { public boolean canWin

2021-04-18 21:29:52 84

原创 挑战不用加法运算符+号实现两数之和

既然不能直接使用运算符+号,那么肯定就是用位运算来实现两数之和了A+B先回顾一下一些位运算知识异或运算首先,异或就是两数不同则为1,相同则为0,如表格所示。不难发现,两个一位二进制进行异或可以表示这两个二进制的和,但是没有进位。而两个整数的异或就是两个整数在每一个二进制位上进行相加,没有进位数1数2异或结果000011101110与运算那么进位怎么表示呢,只有两个二进制数都为1时,相加起来才有进位,因此我们可以用两个整数相与来表示进位

2021-04-18 19:27:34 356

原创 2020-09-2 CCF计算机软件能力认证真题练习:风险人群筛查——java实现

输入样例15 2 6 20 40 100 80100 80 100 80 100 80 100 80 100 80 100 8060 50 60 46 60 42 60 38 60 34 60 3010 60 14 62 18 66 22 74 26 86 30 10090 31 94 35 98 39 102 43 106 47 110 510 20 4 20 8 20 12 20 16 20 20 20输出样例132输入样例21 3 8 0 0 10 10-1 -1 0 .

2021-03-09 14:58:40 153

原创 2020-09-1 CCF计算机软件能力认证真题练习:称检测点查询

2020-09CCF题目一2020 年 6 月 8 日,国务院联防联控机制发布《关于加快推进新冠病毒核酸检测的实施意见》,提出对“密切接触者”等八类重点人群“应检尽检”,其他人群“愿检尽检”。某市设有n个核酸检测点,编号从1到n,其中i号检测点的位置可以表示为一个平面整数坐标(xi, yi)。为方便预约核酸检测,请根据市民所在位置(X, Y),查询距其最近的三个检测点。多个检测点距离相同时,编号较小的视为更近。输入输入共n+1行。第一行包含用空格分隔的三个整数n、X和Y,表示检测点总数和市民所

2021-03-09 12:43:58 224

原创 ArrayList源码详细分析——jdk1.8

源码一般由较多行代码组成,一上来就直接阅读可能会比较难读懂,这个时候不妨试试以debug的形式打开,一步一步来理解源码的运行机制

2021-02-09 22:30:49 153

原创 在vscode中使用latex高效书写论文教程

不论你是做本科毕设还是发表论文,都需要面对字体、格式、排版布局等方面一系列问题,使用latex可以轻松帮你解决这一切,帮你高效写论文,不再为繁琐的格式细节头疼

2020-11-04 11:14:43 3347 5

原创 词向量word to vector通俗理解

word2vec概述之前使用one-hot编码来表示词向量,比如猫为(1,0,0),狗为(0,1,0),这种稀疏编码,维度大,词与词之间是孤立的,无法表示词与词之间的语义信息!word2vec就是为了解决这个问题,下图就是表示形式,我们从图中可以看到man和woman的两个词矩阵相似度更高,这种表示方法能捕捉到词与词之间的关联信息。一个词向量是一个一维向量,将所有单词的向量按照行堆叠起来就被称为embedding矩阵,像下面一样训练得到embedding矩阵如何为每一个单词都生成一个这样的向

2020-11-01 21:53:37 5436

原创 python修改国内镜像源以提升导包速度的方法

使用镜像源来解决python导包速度慢的问题

2020-09-11 16:47:25 279

原创 mac删除Citrix Receiver残留项完整教程

macbook卸载了Citrix Receiver,但是每次开机都会弹出Citrix Receiver,让人很难受,下面是解决方案:1.点击应用程序,在前往中打开上层文件2.打开资源库3.找到LaunchAgents文件夹打开,下面的文件有几个删几个/Library/LaunchAgents/com.citrix.AuthManager_Mac.plistcom.citrix.ReceiverHelper.plistcom.citrix.ServiceRecords.plist4.

2020-08-17 10:51:27 3087 2

原创 Maven配置阿里云仓库镜像(现在改成https协议了)

网上博客的阿里云仓库镜像url都是老版本的,现在阿里云使用https协议,url也发生了一些变化,这里记录一下

2020-08-17 09:15:56 2665

原创 python中关于axis容易混淆的理解

在python中numpy和pandas对于axis的操作方式看上去似乎是矛盾的?也许需要换个角度理解了!

2020-07-20 09:55:58 1049 1

原创 理解1×1卷积的作用

在network in network网中网这篇论文中,对1×1卷积核作用进行了解释,该论文为后续网络模型开发(比如GoogLeNet、Inception都广泛使用了1×1卷积)提供了很好的思路,是一个经典的方法。

2020-07-19 13:44:14 1804 1

原创 数据结构-线性表的两种实现方式:顺序表和链表

顺序表就是在内存中按顺序连续开辟一段空间来存储数据的结构,在java中就是数组,如a所示链表就是在内存中随机开辟内存一段段存储数据的结构,如图b所示线性表的接口使用一个接口表明基本操作的需求:public interface Ilist { //清空线性表 public void clear(); //判断线性表是否为空 public boolean isEmpty(); //获取线性表的长度 public int length(); /.

2020-07-16 20:46:58 1137

原创 java程序员一定要会的IDEA设置及高效代码

掌握了本文的内容,可以帮助你高效写出代码,避免冗余操作字体设置1.在设置中找到Editor,打开折叠找到Font进行调整代码自动补全main结构补全(psvm)输入psvm回车,自动补全main开头输出函数补全(sout)输入sout,回车循环语句补全(fori)自动为对象生成声明(.var)(1)比如输入 123.var 回车,则会生成如下代码:(2)输入 new Random().var 回车,则会生成如下代码:生成 if 语句(.if)我们输入

2020-07-14 09:02:37 249

原创 kaggle实战之房价预测-高级回归技巧(一)

比赛地址:kaggle房价预测-高级回归技巧进入之后就可以看到如图所示的界面,这个比赛是预测房价,也就是回归问题本文代码建议全程使用jupyter进行1.拿到数据先别慌,总览一下,看看数据的分布情况#导入所需要的库import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as sns#利用pandas读取训练数据df = pandas.read_csv('train.csv'

2020-05-31 20:42:06 2108 1

原创 python进阶(一):*args和**kwargs用法

python进阶(一):*args和**kwargs用法引出:在pycharm中对某个函数按快捷键crtl+P时可以查询到传入的参数列表,这里plt.plot绘图函数第一个参数就是*args,最后一个参数就是**kwargs。在python中定义一个函数时,传入的变量数如果不确定的时候我们就要用到这两个参数,比如上面的绘图函数,因为传入的x,y值数量每次都不确定,所以定义这个来接收不同长度的变量。看看英文全称,方便理解:args 是 arguments 的缩写,表示位置参数;kwargs 是 k

2020-05-15 15:09:39 664

原创 小白也能理解系列之卡尔曼滤波

本文尽量避免使用数学公式,来实现对卡尔曼滤波的通俗理解

2020-04-10 21:49:50 1228

原创 车载环境感知传感器介绍及比较

车载环境感知传感器比较传感器的种类及分布传感器种类及数量:3个激光雷达,两个毫米波雷达,工业相机(有单目也有双目的)覆盖范围:车体360度全覆盖探测距离:前方为100m,后方为80m),左右侧为20m。考虑角度:为了保证安全性,每块区域需要两个或两个以上的传感器覆盖,以便相互校验激光雷达原理:激光雷达向外界发射激光,激光碰到物体反射回来,通过时间差(激光的速度已知)便可以计算出...

2020-04-10 08:56:21 4689

原创 统计学习方法之决策树通俗理解

决策树看完本文再学习《统计学习方法》相应内容,效果更好如果需要《统计学习方法》第二版pdf,可私信领取1.决策树思想决策树显然是像人那样做决策,比如挑选苹果我们可以先看颜色,我们觉得红色的可能好些,我们再在红色的苹果中看纹理等等,通过一系列特征决策之后我们选择出我们认为比较好的苹果。决策树的每一层都是对一个特征进行选择,那么这就涉及到一个问题,特征的选择顺序,特征的顺序真的那么重要吗?先...

2020-03-19 11:42:51 321

原创 统计学习方法之朴素贝叶斯理解和代码复现

朴素贝叶斯联合概率 P(A,B) = P(B|A)*P(A) = P(A|B)*P(B)将右边两个式子联合得到下面的式子:P(A|B)表示在B发生的情况下A发生的概率。P(A|B) = [P(B|A)*P(A)] / P(B)直观理解一下这个式子,如下图,问题A在我们知道B信息之后概率发生了变化(图片来自于小白之通俗易懂的贝叶斯定理(Bayes’ Theorem)1.后验概率推导​ ...

2020-03-16 12:14:20 411

原创 linux常见的命令行和快捷键(带英文全称,便于记忆)

linux常见快捷键和命令行总结1.linux的shell简介  传统意义上的shell指的是命令行,分为交互式和非交互式:交互式也就是用户输入一个命令,操作系统执行一个命令;非交互式是用户把一系列命令写在一个.sh文件中,操作系统执行所有命令。2.linux常用快捷键(1)Tab,自定补全命令(最方便的快捷键)(2)移动光标命令  Ctrl+A:移光标到开头 Ctrl+E:移光标到尾...

2020-03-10 16:07:43 1086

原创 深度学习之防止过拟合的方法及技巧

深度学习之防止过拟合的方法及技巧吴恩达深度学习中关于过拟合的讲解1.L2正则化2.随机失活 (dropout)新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML ...

2020-01-20 19:10:39 493

原创 吴恩达深度学习课后练习题和编程题--黄海广翻译(一站式服务,题目和答案分开,便于练习)

1.课后作业描述作业是1.3G压缩包,包括课后测验的选择题和编程题,链接见后面1.1编程题编程题要用jupyter打开(没有jupyter的同学可以自行百度安装),所有题目都是英文题,如果不想看英文题,可以使用本文第二章的小工具。题目是纯英文的形式,如下图所示,红线划出的带有original的是原版题目,可以自己做;绿线划出的是答案,做完方便对照。打开文件我们可以看到下图内容,红色区域...

2019-12-08 22:31:07 1957 3

原创 Multimodal Machine Learning: A Survey and Taxonomy/多模态机器学习综述

我们对世界的体验是多模态的——我们看到物体,听到声音,感觉到纹理,闻到气味,尝到味道。模态是指某件事情发生或经历的方式,一个研究问题如果包含多个模态,就被称为多模态。为了让人工智能在理解我们周围的世界方面取得进展,它需要能够一起解释这种多模态信号。多模式机器学习旨在建立能够处理和关联来自多种模式的信息的模型。这是一个日益重要和具有非凡潜力的充满活力的多学科领域。

2019-11-19 22:13:01 3270 2

空空如也

空空如也

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

TA关注的人

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