自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

THMAIL的博客

每一难皆是造化,每一步皆是修行

  • 博客(518)
  • 资源 (1)
  • 收藏
  • 关注

转载 Hessian矩阵(黑塞矩阵)

对图像进行处理后,图像中大部分的线性结构都会被增强,但是一些细微结构并未被增强太多,而且一些粗的结构中也出现了空洞,这与求导窗口的大小有关,求导窗口太小,很多粗的结构中会出现中空的现象,因为中心区域被认为是点结构了。二阶导数表示导数的变化规律,如果函数是一条曲线,且曲线存在二阶导数,那么二阶导数表示的是曲线的曲率,曲率越大,曲线越弯曲。如何判断一个矩阵是否是正定的,负定的,还是不定的。但是同一幅图像中,线性结构的粗细肯定是不同的,同样窗口的大小是无法全部适用的,针对这个问题,可以使用多模板的方法。

2024-04-20 11:57:30 45

转载 权重初始化、特征归一化

权重初始化,特征归一化,以及batch normalization,都是深度学习中,用于数据处理的一些手段,都是针对训练过程中可能遇到的数据问题进行的处理,之间存在一定的相关性,将三者放在一起比较学习,有助于融汇贯通,更好的理解深度学习的训练过程。

2024-04-09 14:58:20 14

转载 一篇文章带你认识 PID算法

上述例子中,根据kp取值不同,水位最终都会达到1米,kp取值越大则上升的越快,kp取值越小则上升的越慢,不存在稳态误差。但是,假设这个水缸每次加水都会漏掉0.1米高度的水这种情况下,假设kp仍然取0.5,那么经过几次加水,水缸中的水位到0.8时,误差error=0.2. 每次往水缸中加水的量为u=0.5*0.2=0.1米,同时,缸里每加水0.1米,又会流出0.1米,也就是说,设定的目标值为1米,但是这种算法使系统水位在达到0.8米后就不再变化,由此产生的误差就是稳态误差了。式中的kd是一个系数项。

2024-04-08 16:09:52 16

原创 redis-cli 连接 sentinel架构的redis服务

它会输出哨兵的ip,port。

2023-11-10 15:54:15 2170 1

原创 cgo踩坑:交叉编译过程出现的问题could not determine kind of name for C.XXX

确认你引用的头文件存在(stdio.h这种编译器自带的不需要你确认)

2023-08-25 16:06:42 1858

原创 go版本glog/klog 参数使用方法心得

经过实验发现,不管logtostderr或者alsologtostderr为何值,只要输出的日志等级>=stderrThreshold,日志就会被输出到标准输出和log目录中;如果alsologtostderr=true,则日志等级<stderrThreshold的日志也会被输出到标准输出;

2023-08-16 16:01:39 692

原创 VPA部署手把手教程:避坑,官方指南有坑

启动参数metric-for-pod-labels修改为kube_pod_labels{job=“kube-state-metrics”}[8d],把job值改为你的;官方的访问方式很奇怪,明明可以通过service访问,它没有;同时记得部署metrics-server服务,部署方法参考。而是通过nodeip:port访问,所以设置。删除旧的,重新部署即可。,如果部署完成后执行。

2023-06-02 15:45:23 535

原创 k8s 1.27新特性in-place使用方法:避坑指南(官方文档有坑,已提issue)

我按照他的方法一步步执行,基本没踩到坑。另外k8s 1.27版本搭建可以看。完成上述事前准备后,就可以按照。

2023-05-31 14:39:55 694

原创 linux cgroup作用原理剖析

这样,你就可以在进程达到内存限制时暂时停止它们,然后手动处理内存问题,例如增加内存限制或终止其他进程。需要注意的是,如果内核无法将进程的内存使用降到新的限制以下(例如由于没有可用的交换空间),则可能会发生错误或触发OOM(Out of Memory)机制,导致进程被终止。当你在cgroup中运行一个进程并设置了内存限制时,内核会根据限制来管理进程的内存使用。然后我在cgroup内运行一个内存密集型进程,并使用完了它的200MB限制。这样,内核会逐渐释放超过新限制的内存,直到进程的内存使用符合新的限制。

2023-05-11 14:41:45 748 1

原创 详解Transformer (Attention Is All You Need)

注意力(Attention)机制[2]由Bengio团队与2014年提出并在近年广泛的应用在深度学习中的各个领域,例如在计算机视觉方向用于捕捉图像上的感受野,或者NLP中用于定位关键token或者特征。谷歌团队近期提出的用于生成词向量的BERT[3]算法在NLP的11项任务中取得了效果的大幅提升,堪称2018年深度学习领域最振奋人心的消息。而BERT算法的最重要的部分便是本文中提出的Transformer的概念。

2023-05-03 13:44:21 651

转载 Linux 内存中VSS、RSS、PSS、USS 介绍

当我们在使用 Linux 机器时,有时候需要查看机器内存的使用情况,在列出来的数据列中有这么几列数据是需要我们关注的,这有助于我们查看进程的内存使用情况很有帮助。是进程实际独自占用的物理内存(不包含共享库占用的内存)。即单个进程实际占用内存大小,RSS 可能会产生误导,因为包含了共享库占用的共享内存总数。是进程在 RAM 中实际保存的总内存(包含共享库占用的共享内存总数)。是单个进程运行时实际占用的物理内存(包含比例分配共享库占用的内存)。所以,RSS 不能准确的表示单个进程的内存占用情况。

2023-03-14 10:10:17 2285

原创 程序占用内存很小,但docker占用内存一直膨胀

综上可知,总内存占用高并非一定是内存泄露,在该案例中总内存占用大是因为:频繁大量写日志导致linux内存页中的缓存一直被更新,linux采用最近最少使用的方式flash缓存到磁盘(猜测),因此频繁的读写导致内存中的缓存一直不释放;程序占用内存很小,只有几十MB,但总内存却一直增长,疑似内存泄漏。

2023-03-14 10:05:07 3918

转载 docker搭建本地测试用的单机etcd服务

引用官网的原话:注意这里的几个关键字:distributed(分布式)、reliable(可靠的)、key-value(kv存储)也就是说etcd是一个高可靠的分布式kv存储服务,多用于核心数据的存储,如实现微服务系统的服务注册、发现功能。支持集群部署,自动选主机制容忍单点故障,可应对网络分区数据基于key有序存储,支持基于目录结构的高效遍历支持复杂事物操作基于租约实现ttl过期支持应用实时监听kv变化。

2023-02-20 17:18:28 1319

原创 klog bug:仅输出到日志文件,不打印到命令行/stderr

开发k8s插件,使用klog作为日志工具,开发完成发现在设置将日志打印到文件后,Error级别的日志信息仍然会输出到命令行,过多日志打印会使后期将服务部署于docker有卡死的风险(docker的bug,日志输出过快会卡顿)

2023-02-20 15:27:58 1202

原创 go语言踩坑:data race导致的输出结果与预期结果不一致

如果有同学进行更多的实现,会发现(1)即使不加fmt.print,改为加time.sleep;(2)或者把for{}换成time.sleep,或者换成select{}都会出现正常输出的情况,为什么??因为data race 导致的编译器行为异常,最终导致运行结果不可预测,就像这个问题一样,不知道为什么,且没有逻辑,没有规律,很难排查出问题所在;

2023-01-11 18:06:05 572

转载 Go 语言闭包详解

什么是闭包?闭包是由函数和与其相关的引用环境组合而成的实体。下面就来通过几个例子来说明 Go 语言中的闭包以及由闭包引用产生的问题。Go 语言闭包详解在说明闭包之前,先来了解一下什么是函数变量。在 Go 语言中,函数被看作是第一类值,这意味着函数像变量一样,有类型、有值,其他普通变量能做的事它也可以。 直接调用: 把函数当成变量一样赋值:;接着可以调用这个函数变量:。 注意:这里 后面没有圆括号,调用才有。 调用 的函数变量会导致 panic。 函数变量的零值是 ,这意味着它可以跟

2023-01-11 16:20:13 362

原创 Selenium绕过浏览器指纹的九种方法

同样因为它是基于谷歌无头的,因此它只能用于谷歌无头,不想selenium一样,编写完脚本只需改变少量代码,便可以在多种浏览器中运行。亲测可用,唯一的遗憾是会导致你在脚本运行时,不能使用chrome,且每次数据不会清除,需要自己用selenim去设置清除下,此举也会清除自己日常使用chrome的数据;如果你电脑中没有chromium,执行这段代码后会自动帮你安装,然后再运行这段代码,但是非常慢,所以建议自己网上下载chromium后再执行脚本。这个确实成功了~,无副作用!试了,没用,大家可以自行测试下。

2022-11-29 00:28:33 5350 4

原创 kubebuilder+code-generator 无坑指南教程

网上教程不全+过时,踩了很多坑才搞定。

2022-10-19 18:15:12 1835 1

原创 已解决:code-generator仅生成clientset,没有生成informers,listers

使用code-generator代码生成器没有生成Informer,lister的处理办法,只生成了clientset;我这边的错误是在vendor下没有找到api,把api复制一份到vendor下即可;你们的错误原因可以看看自己的错误信息输出。

2022-10-19 14:26:26 536

原创 编译kubernetes时遇到missing separator stop解决办法

参考:https://github.com/kubernetes/kubernetes/issues/88808。直接删除kubernetes项目根目录下的。

2022-10-09 17:00:20 285

原创 最新kube-batch编译、部署、运行无坑教程

网上看了许多教程,都有坑,用官方的办法部署也不行,官方只说了用最新的helm,但是最新的helm已经不支持它了,没辙,自己研究了下kube-batch底层原理后总结了一套部署方法;官方的一些yaml文件接口已经过期了(低版本k8s可以用,高版本接口没法用),helm也不能用了,所以不要用官方的yaml文件部署,直接用以下我提供的即可;kubernetes 1.13以下版本可以用官方的方式或yaml文件部署(部署步骤和我下文所述一致,仅接口不同)

2022-09-13 14:38:34 342

转载 一文看懂 Kube-proxy

对于iptables和IPVS模式,kube-proxy的响应时间开销与建立连接相关,而不是与在这些连接上发送的数据包或请求的数量有关。这是因为Linux使用的连接跟踪(conntrack)能够非常有效地将数据包与现有连接进行匹配。如果数据包在conntrack中匹配,则无需检查kube-proxy的iptables或IPVS规则即可确定该如何处理。在集群中不超过1000个服务的时候,iptables 和 ipvs 并无太大的差异。...

2022-08-30 10:37:14 795

转载 Mac-iTerm2安装、配置和使用

Mac os 自带的终端,用起来不太方便,界面也不友好,iterm2是一款程序员哥哥推荐的较好的终端工具,常用配置操作包括主题选择、声明高亮、自动填充建议、隐藏用户名和主机名、分屏效果等。

2022-08-28 17:22:18 5734

原创 在单机(物理机)上用虚拟机部署kubernetes集群

详细步骤可以查看。

2022-08-19 18:04:04 1180 4

原创 centos服务器命令行安装虚拟机并ssh连接

1.物理机操作系统:CentOS Linux release 7.5.1804 (Core)

2022-08-18 17:36:52 1040

原创 k8s不支持dockers?最新版K8s和docker 安装教程

在 Kubernetes v1.24 及更早版本中,可以在 Kubernetes 中使用 Docker Engine, 依赖于一个称作 dockershim 的内置 Kubernetes 组件。dockershim 组件在 Kubernetes v1.24 发行版本中已被移除;不过,一种来自第三方的替代品, cri-dockerd 是可供使用的。cri-dockerd 适配器允许你通过 容器运行时接口(Container Runtime Interface,CRI) 来使用 Docker Engine。..

2022-08-12 11:11:57 3775

转载 关于/var/run/docker.sock

运行过Docker Hub的Docker镜像的话,会发现其中一些容器时需要挂载文件。简单地说,它是默认监听的,容器中的进程可以通过它与Docker守护进程进行通信。

2022-08-09 11:05:32 944

原创 Golang 在 Mac、Linux、Windows 下如何交叉编译

很多博客都提到要先增加对其它平台的支持,但是我跳过那一步,上面所列的命令也都能成功,且得到我想要的结果,可见那一步应该是非必须的,或是我所使用的Go版本已默认支持所有平台。Golang支持交叉编译,在一个平台上生成另一个平台的可执行程序,最近使用了一下,非常好用,这里备忘一下。上面的命令编译64位可执行程序,你当然应该也会使用386编译32位可执行程序。目标平台的操作系统(darwin、freebsd、linux、windows)目标平台的体系架构(386、amd64、arm)...

2022-07-15 09:42:25 421

原创 Go语言设计模式之函数式选项模式

在看OpenTelemetry-gin源码时遇到一个函数可以看到这个函数是以Option为参数的;点进去发现Option是一个接口,在内是这样使用该参数的:综上不难发现,如果我们要成功调用函数,就要实现一个Option类,该类主要用applay方法来进行参数的装配;调研发现这是go的一种设计模式:选项模式我们先定义一个OptionFunc的函数类型然后利用闭包为每个字段编写一个设置值的With函数:然后,我们定义一个默认的Option如下:最后编写我们新版的构造函数如下:测试一下:输出:

2022-07-14 10:37:11 642

原创 Jaeger SDK使用教程-go

Jaeger支持两种SDK,官方建议迁移到OpenTelemetry SDK,Client除安全修复,已不再更新;请提前搭建Jaeger环境,没搭建的看这里直接上示例代码,没有什么比看代码更直观的了二、Jaeger-Client使用1.通过agent发送2.发送给Collector参考:...

2022-07-13 15:14:12 373

转载 工作、学习与生存,怎么平衡?

不知道有多少朋友有过这样的体验:上完一天班回到家,原本想看看书给自己充充电,但是,当翻开书之后,很快就开始走神、犯困,甚至坐立不安不断翻看手机,最后无奈地放下了书,躺在床上继续刷手机或者电视剧......我们在忙碌了一天的工作之后,读书为什么这么难?这种情况背后的原因是什么呢?有什么办法能够摆脱这种困境呢?今天,我们一起来聊聊这个话题。如今的生活节奏越来越快,人们内心所承受的心理压力相比于以前也更多,精力更容易被消耗。忙碌了一天之后,有人可能感觉身心俱疲,回到家中,有人还要做家务、给小孩辅导功课、处理下班后

2022-07-12 14:25:00 262

转载 基于docker 搭建Prometheus+Grafana

Prometheus(普罗米修斯)是一套开源的监控&报警&时间序列数据库的组合,起始是由SoundCloud公司开发的。随着发展,越来越多公司和组织接受采用Prometheus,社会也十分活跃,他们便将它独立成开源项目,并且有公司来运作。Google SRE的书内也曾提到跟他们BorgMon监控系统相似的实现是Prometheus。现在最常见的Kubernetes容器管理系统中,通常会搭配Prometheus进行监控。Prometheus基本原理是通过HTTP协议周期性抓取被监控组件的状态,这样做的好处是任

2022-07-12 10:01:17 2252 1

转载 主流metric 、trace、logging框架介绍

面对诸如上面的场景,如果你正在纠结,那今天罗列推荐的这些轮子,多少都能解你所惑。0. 监控天下三分先帝创业未半而中道崩殂,今监控天下三分。如下图所示,监控的天下被划分为基于 Tracing(调用链)监控、基于Metrics(指标)监控、基于Logging(日志) 的监控。1. 基于 Tracing 的监控基于 Tracing 的监控,背后对应的是追踪系统,也有人叫调用链系统,做应用性能监控(APM)这块是必不可少的。如果你想知道一次服务调用,中间经过了哪些环节?如果你想了解一次服务调用过程中各个环节的耗时?

2022-07-11 15:46:42 2129 3

转载 设计模式之建造者模式

人在IT江湖飘,不懂设计模式咋装逼?但是没写过5万行代码谈设计模式都是在瞎扯淡,咱先看看定义 咋样,这要是没点工作经验还搞个毛线,因为你完全不明白在说啥!你就记住了,没有设计模式,软件照样开发,就是在大型软件系统开发及维护过程中就痛苦不堪,最后在不断重构后你会发现尼玛竟然用了好多设计模式。 工作中常常出现建造者模式的身影,所以整理记录一下,希望对自己和其他人都有一个帮助。希望你读完本文后可以在实际开发过程中用上Builder 模式,成功装一把逼,书生我就甚是欣慰了。创建型(cre

2022-07-08 17:14:25 149

转载 从0学习-分库分表

在高并发系统当中,分库分表是必不可少的技术手段之一,同时也是BAT等大厂面试时,经常考的热门考题。你知道我们为什么要做分库分表吗?这个问题要从两条线说起: 和 。主要针对的是,下面聊聊业务的发展跟分库分表有什么关系。在系统初期,业务功能相对来说比较简单,系统模块较少。为了快速满足迭代需求,减少一些不必要的依赖。更重要的是减少系统的复杂度,保证开发速度,我们通常会使用来保存数据。系统初期的数据库架构如下:正在上传…重新上传取消此时,使用的数据库方案是:包含。用户读数据请求和写数据请求,都是操作的同一个数据库。

2022-07-07 14:07:39 355

原创 rpc error: code = Unavailable desc = connection error: desc = “transport: Error while dialing readin

go2sky-gRPC2022/07/06 10:11:30 report serviceInstance properties error rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing reading server HTTP response: unexpected EOF"

2022-07-06 10:15:41 7065 1

原创 完美解决docker skywalking报错:no provider found for module storage

笔者在使用docker 部署skywalking时,一直报错:报错:解决办法:将改为即将改为参考:

2022-06-27 16:01:18 3145 1

原创 Docker硬件资源限制

只需要通过 --cpus 选项指定容器可以使用的 CPU 个数就可以了,并且还可以指定如 1.5 之类的小数。接下来我们在一台有四个 CPU 且负载很低的主机上进行 demo 演示:通过下面的命令创建容器,–cpus=2 表示容器最多可以使用主机上两个 CPU:然后由 stress 命令创建四个繁忙的进程消耗 CPU 资源:我们先来看看 docker stats 命令的输出:容器 CPU 的负载为 200%,它的含义为单个 CPU 负载的两倍。我们也可以把它理解为有两颗 CPU 在 100% 的为它工作

2022-06-27 11:40:00 1160

转载 彻底搞懂golang的GOROOT和GOPATH

**目录1、GOPATH 和 GOROOT2、修改 GOPATH 和 GOROOT3、HelloWord——GOPATH版4、一些踩坑经验**## 1、GOPATH 和 GOROOT不同于其他语言,go中没有项目的说法,只有包, 其中有两个重要的路径,***GOROOT*** 和 ***GOPATH***Go开发相关的环境变量如下:* GOROOT:GOROOT就是Go的安装目录,(类似于java的JDK)* GOPATH:GOPATH是我们的工作空间,保存go项目代码和第三方依赖

2022-06-23 16:58:12 2695

原创 实测有效:windows下文件名太长的问题,git filename too long

实测有效:windows下文件名太长的问题,git filename too long

2022-06-22 17:54:16 1044

200款游戏小霸王游戏html源码

增加到200款游戏小霸王游戏html源码, 可以用于学习前端,也可以用于搭建自己的游戏公众号或网站,纯前端实现,,包括200多款经典游戏比如魂斗罗、坦克大战、等等,中文游戏300里游戏基本都有

2023-04-03

复制文本朗读.prf.xml

tasker文字复制朗读 脚本

2019-09-14

空空如也

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

TA关注的人

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