自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(112)
  • 资源 (12)
  • 收藏
  • 关注

原创 BP神经网络原理推导

本文会完成BP神经网络的推导过程,先介绍BP神经网络的历史,然后介绍BP神经网络的结构,然后再开始推导,最后介绍BP神经网络的优缺点以及几个优化的方法。

2019-01-13 14:48:12 12755 3

原创 BP神经网络C语言实现

BP神经网络C语言实现山人BP神经网络应用广泛,大概是今年的五月份左右,我需要做一个多元函数的拟合,所以写了这个BP神经网络。为什么要使用C语言来写呢?因为我的程序需要在单片机上跑,所以不得不使用C语言。这一篇博客不会讲解BP神经网络的基本原理,反向传播公式,因为关于这些的资料网上已经很多了(虽然大多数都有着不小的BUG,但足以入门学习)。我会着重讲解我写的BP神经网络的每个函数的具体...

2018-09-07 14:00:01 27832 35

原创 手把手教你实现一个BufferPool

实现一个数据库存储的BufferPool

2021-12-16 16:48:06 1141

原创 typora 标题不能被修改

最近使用typora时,突然发现将指针移动到标题上时,不弹出#,这样就无法修改标题的等级,对使用造成了很大的影响。后来发现是typora的设置变了将 即时渲染 勾上即可!

2021-11-01 16:17:04 749

原创 【已解决】go get 获取不到最新版本问题

场景上传了一个自己的go模块“A” 到github上,在本地第一次使用go get拉取A到本地后,能够正常使用。但是当我对模块A做出修改,push到github上去后,再一次使用go get 拉取,发现无法拉取到更新之后的A解决方法开始我以为是go get 存在缓存,所以清理了本地的包,但是发现没有用。真正的问题在,我使用了代理,我的GOPROXY设置为 https://goproxy.cn,direct了,大概率是这个代理自己有缓存,所以我无法获取到更新之后的模块A。解决方法就是更改GOPROX

2021-10-07 09:37:45 3834 1

原创 ubuntu2004 安装protoc

ubuntu2004 安装protoc# 安装apt install -y protobuf-compiler# 查看版本protoc --versiongRPC官方文档链接如下:https://grpc.io/docs/what-is-grpc/core-concepts/go版本还需要安装一个插件,才能正常编译(因为官方没有go的支持)装好之后,还需要配置一下go的路径,不然找不到插件#插件安装go get github.com/golang/protobuf/protoc-gen

2021-09-28 12:47:49 307

原创 golang 通过反射reflect对struct的字段进行set和get

1 使用场景当你定义了一个struct,当对其中每个字段的读取或者写入进行某种操作时,如读取、写入,你需要进行加锁从而达到互斥的目的,亦或是需要进行统计。在不使用反射的情况下,你需要自己为每一个字段编写get和set方法,然后使用代理的方式对get和set方法进行加锁或者统计。当struct的字段数量少的情况小,这种做法是可以进行的,但是如果struct字段数量多,这种方法就会产生大量逻辑上重复的代码,使我们的代码变得不干净。2 反射方式get和set通过反射方式,只需要两个函数,即可对所有的字段进

2021-08-20 11:19:49 1247

原创 设计模式之单例模式

文章目录1 单例模式介绍2 懒汉式与饿汉式3 饿汉式单例模式实现4 懒汉式单例模式实现4.1 双重检查实现4.2 枚举实现4.3 其他单例实现防止单例被破坏5 参考资料1 单例模式介绍所谓单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法(静态方法)。2 懒汉式与饿汉式单例模式的实现,大致分为懒汉式实现与饿汉式实现。饿汉式实现是指在类装载的时候就完成实例化,没有达到懒加载的效果。如果从始至终从未使用过这个实例,则会造成内存的

2021-07-08 16:18:32 105

原创 remote: error: refusing to update checked out branch: refs/heads/master

当我本地开发完,想远程服务器提交代码时,出现一下错误:remote: error: refusing to update checked out branch: refs/heads/master对我有用的解决方案:服务器上执行执行:git config --global receive.denyCurrentBranch updateInstead执行完之后,再从本地 git push,就成功了。...

2021-06-22 23:21:05 571

原创 【深度解析】能容纳所有整数类型的神奇结构----Redis intset

文章目录1 整数集合intset概念2 整数集合intset的结构3 升级4 降级5 参考文献1 整数集合intset概念整数集合(intset)是集合键的底层实现之一,当一个集合只包含整数值元素,并且这个集合的元素数量不多时,Redis就会使用整数集合作为集合键的底层实现。整数集合(intset)是Redis用于保存整数值的集合抽象数据结构,它可以保存类型为int16_t、int32_t或者int64_t的整数值,并且保证集合中不会出现重复元素。2 整数集合intset的结构typedef st

2021-06-22 10:04:39 188 2

原创 【深度解析】Redis 字典dict 数据结构

文章目录1 什么是字典2 Redis 字典的特点3 Redis字典的结构3.1 哈希表节点3.2 哈希表3.3 字典结构4 哈希算法5 解决键冲突6 rehase7 哈希表的扩展与收缩8 渐进式rehash1 什么是字典字典,又称为符号表(symbol table)、关联数组(associative array)或映射(map),是一种用于保存键值对(key -value pair)的抽象数据结构。在字典中,一个键(key)可以和一个值(value)进行关联(或者说将键映射为值), 这些关联的键和值就

2021-06-20 13:11:43 420 1

原创 【深度解析】Redis 链表结构

文章目录1 Redis链表特点2 Redis链表结构2.1 双端链表节点2.2 双端链表结构2.3 双端链表迭代器3 部分API实现3.1 获取迭代器3.2 复制整个链表3.3 查找4 参考资料1 Redis链表特点链表提供了高效的节点重排能力,以及顺序性的节点访问方式,并且可以通过增删节点 来灵活地调整链表的长度。作为一种常用数据结构,链表内置在很多高级的编程语言里面,因为Redis使用的C语言并没有内置这种数据结构,所以Redis构建了自己的链表实现。 链表在Redis中的应用非常广泛,比如列表键

2021-06-19 10:55:34 366

原创 【深度解析】Redis中使用的字符串结构SDS

文章目录1 什么是SDS?2 SDS定义3 SDS和C字符串的区别3.1 常数复杂度获取字符串长度3.2 杜绝缓冲区溢出3.3 减少修改字符串时带来的内存重分配次数3.3.1 空间预分配3.3.2 惰性空间释放3.4 二进制安全3.5 兼容部分C字符串函数4 参考资料1 什么是SDS?​ SDS,即Simple Dynamic String,简单动态字符串。​ Redis没有直接使用C语言传统的字符串表示(以空字符结尾的字符数组,以下简称C字 符串),而是自己构建了一种名为简单动态字符串(sim.

2021-06-18 16:51:26 342

原创 【spring boot系列1】hello world

文章目录0 环境1 pom文件2 结构3 Example.java4 构建项目软件包5 运行6 注意事项7 资源0 环境java 8及以上。依赖管理:maven1 pom文件<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

2021-03-09 21:38:11 224 2

原创 【已解决】minix vmware 网络问题 pkgin update could not fetch xxx

背景2021年3月8日,妇女节。问题在vmware workstation 上安装minix操作系统的时候,遇到了诡异情况。起初,我笔记本电脑连接教研室网络,VM网络使用NAT模式时,不能连接外网,能够ping通宿主机。当VM网络使用桥接模式时,能够连接外网,但不能ping通宿主机,也不能 pkgin update。大概被坑了一个下午吧解决方案手机开热点,电脑连接手机的热点,使用NAT模式即可连接外网,ping通宿主机,pkgin update!注意,一定要使用NAT模式,桥

2021-03-08 21:23:57 506

原创 手把手教你实现一个RPC框架

文章目录0 前言1 总体介绍2 common模块2.1 ReflectionUtils.java3 codec模块3.1 序列化接口Encoder.java3.2 json序列化实现JSONEncoder.java3.3 反序列化接口Decoder.java3.4 反序列化实现JSONDecoder.java4 proto模块4.1 Peer.java4.2 Request.java4.3 ServiceDescriptor类4.4 Response.java类5 transport网络模块5.1 Tran

2021-03-04 22:30:38 4248 7

原创 3分钟搞懂RPC原理

文章目录1 RPC概念讲解2 图解交互形式-现有框架对比3 核心原理3.1 call 详细过程1 RPC概念讲解RPC:Remote Procedure Call,即远程过程调用。是分布式系统常见的一种通信方式,从跨进程到跨物理机已经有几十年历史。跨进程交互形式:RESTful、WebService、HTTP、基于DB做数据交换、基于MQ做数据交换,以及RPC。2 图解交互形式-现有框架对比相较于中间件形式,直接交互形式对服务端要求更高。3 核心原理0 server注册服务1 cl

2021-02-28 20:03:46 1108 2

原创 用go语言实现一个MapReduce框架

文章目录1 目的2 整体架构3 细节3.1 common.go3.2 rpc.go3.3 coordinator.go3.4 worker.go3.5 mrcoordinator.go3.6 mrworker.go4 运行5 完整代码获取1 目的本文会带领大家使用GO语言,实现一个MapReduce框架。该框架能够实现MapReduce的基本功能,能运行基本的MapReduce应用,如WordCount等。2 整体架构3 细节3.1 common.go在这里定义了公用的结构和函数。type

2021-02-28 15:22:52 1654 2

原创 MapReduce编程模型

如图所示,上图就是mapreduce的编程模型。MapReduce的流程分为5个阶段:输入文件 > Map > 中间文件 > Reduce阶段 > 输出文件步骤1 启动子进程:用户程序会启动两类子进程。第一类是Master子进程,负责任务分配与状态管理,Master子进程全局只有一个。第二类子进程是worker进程,worker子进程有两个阶段,一个阶段是Map阶段,一个阶段是Reduce阶段。worker进程会先处于Map阶段,等所有的Map任务都完成之后,再进入R.

2021-02-22 19:45:45 475 1

原创 Java volatile

原文链接:http://www.cnblogs.com/dolphin0520/p/3920373.htmlvolatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模型有关的,因此在讲述volatile关键之前,我们先来了解.

2021-01-12 15:07:02 93

原创 Java 线程池

这里首先介绍了java5中的并发的小工具包:java.util.concurrent.atomic,然后介绍了线程池的概念,对使用java5的方式创建不同形式的线程进行了演示,之后介绍了两个 对象:Callable和Future,用于获取线程执行后的结果,对于则在另外一篇文章中介绍。Java5中的线程并发库都在java.util.concurrent包及子包中1. Executor类的继承结构Executor是线程池的顶级接口,只有一个执行任务的方法execute()ExecutorServi

2021-01-12 11:56:41 115

原创 Java多线程与同步

文章目录1. 多线程概述1.1 多线程引入1.2 多线程概述1.2.1 什么是进程?1.2.2 多进程有什么意义呢?1.2.3 什么是线程?1.2.4 多线程有什么意义呢?1.2.5 线程与进程的关系1.2.6 进程与线程的区别1.2.7 什么是并行、并发呢?1.3 Java程序运行原理2. 多线程的实现方案2.1 多线程的实现方案一:继承Thread类,重写run()方法2.1.2 为什么要重写run()方法?2.1.3 启动线程使用的是那个方法2.1.4 线程能不能多次启动2.1.5 run()和sta

2021-01-12 00:17:05 332

原创 Java正则表达式分组替换

分组替换java正则表达式分组替换实现java并没有提供类似csharp的正则表达式分组替换机制,要做高级的正则表达式分组替换需要自己实现。所幸的是Elliott Hughes已经实现了java的正则表达是分组替换。下面是它的实现代码:import java.util.regex.*;/** * A Rewriter does a global substitution in the strings passed to its * 'rewrite' method. It uses the

2021-01-08 22:36:22 1097

原创 Java System类和Runtime类

System类System类对读者来说并不陌生,因为在之前所学知识中,需要打印结果时,使用的都是“System.out.println();”语句,这句代码中就使用了System类。System类定义了一些与系统相关的属性和方法,它所提供的属性和方法都是静态的,因此,想要引用这些属性和方法,直接使用System类调用即可。System类的常用方法如下表所示。1.getProperties()方法System类的getProperties()方法用于获取当前系统的全部属性,该方法会返回一个Proper

2021-01-08 22:16:25 463

原创 常用正则表达式【包括数字小数URI等等】

常用正则表达式说明:正则表达式通常用于两种任务:1.验证,2.搜索/替换。用于验证时,通常需要在前后分别加上^和$,以匹配整个待验证字符串;搜索/替换时是否加上此限定则根据搜索的要求而定,此外,也有可能要在前后加上\b而不是^和$。此表所列的常用正则表达式,除个别外均未在前后加上任何限定,请根据需要,自行处理。校验数字的表达式1. 数字:^[0-9]*$2. n位的数字:^\d{n}$3. 至少n位的数字:^\d{n,}$4. m-n位的数字:^\d{m,n}$5. 零和非零开头的数字:^(

2021-01-08 21:55:22 1306 1

原创 正则表达式学习网址

一个正则表达式的学习网址https://github.com/ziishaned/learn-regex/blob/master/translations/README-cn.md 翻译:EnglishEspañolFrançaisPortuguês do Brasil中文版日本語한국어

2021-01-08 21:51:38 783

原创 Java String和StringBuffer

文章目录**1. 概述****2. String类的特点****3. 常见操作方法****3.1 构造方法****3.2 判断功能****3.3 获取功能****3.4 转换功能****3.5 其他功能****4. String类练习**4.1 把数组中的数据按照指定个格式拼接成一个字符串**4.2 字符串反转****4.3 统计大串中小串出现的次数****5. StringBuffer****6. 常见操作方法****6.1 构造方法和获取方法****6.2 添加功能****6.3 删除功能****6.4

2021-01-08 21:06:15 185

原创 闭包

函数编程之闭包漫谈(Closure)函数是什么>>> def ExFunc(n): sum=n def InsFunc(): return sum+1 return InsFunc>>> myFunc=ExFunc(10)>>> myFunc()>>> myAnotherFunc=ExFunc(20)>>> myAnotherFunc()>&

2021-01-08 20:21:10 166

原创 面向对象之抽象类与接口【Java】

1. 抽象类当定义一个类时,常常需要定义一些方法来描述该类的行为特征,但有时这些方法的实现方式是无法确定的。例如前面在定义Animal类时,shout()方法用于表示动物的叫声,但是针对不同的动物,叫声也是不同的,因此在shout()方法中无法准确描述动物的叫声。针对上面描述的情况,Java允许在定义方法时不写方法体,不包含方法体的方法为抽象方法,抽象方法必须使用abstract关键字来修饰。抽象类概述抽象定义:抽象就是从多个事物中将共性的、本质的内容抽取出来。例如:狼和狗共性都是犬科,犬科就是抽象

2021-01-08 19:12:32 248

原创 【Java】面向对象之多态

多态在设计一个方法时,通常希望该方法具备一定的通用性。例如要实现一个动物叫的方法,由于每种动物的叫声是不同的,因此可以在方法中接收一个动物类型的参数,当传入猫类对象时就发出猫类的叫声,传入犬类对象时就发出犬类的叫声。在同一个方法中,这种由于参数类型不同而导致执行效果各异的现象就是多态。继承是多态得以实现的基础。在Java中为了实现多态,允许使用一个父类类型的变量来引用一个子类类型的对象,根据被引用子类对象特征的不同,得到不同的运行结果。定义:某一类事物的多种存在形态。例:动物中猫,狗。猫这个对象对

2021-01-08 11:50:54 147

原创 面向对象之继承【Java】

继承的描述在现实生活中,继承一般指的是子女继承父辈的财产。在程序中,继承描述的是事物之间的所属关系,通过继承可以使多种事物之间形成一种关系体系。例如猫和狗都属于动物,程序中便可以描述为猫和狗继承自动物,同理,波斯猫和巴厘猫继承自猫,而沙皮狗和斑点狗继承自狗。这些动物之间会形成一个继承体系,具体如下图所示。在Java中,类的继承是指在一个现有类的基础上去构建一个新的类,构建出来的新类被称作子类,现有类被称作父类,子类会自动拥有父类所有可继承的属性和方法。在程序中,如果想声明一个类继承另一个类,需要使用e

2021-01-07 14:52:54 213 1

原创 面向对象之封装

封装的概念隐藏对象的属性和实现细节,仅对外提供公共访问方式封装好处 将变化隔离。 便于使用。 提高重用性。 提高安全性。 封装原则 将不需要对外提供的内容都隐藏起来。 把属性都隐藏,提供公共方法对其访问。如,getXXX,setXXX。 例子 /** 人: 属性:年龄 行为:说话 */ class Person{ //private:私有,是一个权限修饰符,用于修饰

2021-01-07 13:59:31 57

原创 单例设计模式

目录单例设计模式概念如何保证对象唯一性步骤Java实现饿汉式懒汉式单例设计模式概念保证一个类在内存中的对象唯一性。 比如多个程序使用同一个配置信息对象时,就需要保证该对象的唯一性。如何保证对象唯一性不允许其他程序用new创建该类对象。 在该类创建一个本类实例。 对外提供一个方法让其他程序可以获取该对象。步骤 私有化该类构造函数。 通过new在本类中创建一个本类对象。 定义一个公有的方法,将创建的对象返回。 Java实现有两.

2021-01-07 13:53:13 82

原创 Java命名规范

类或者接口一个单词:单词的首字母必须大写,举例:Student,Dog 多个单词:每个单词的首字母必须大写举例:HelloWorld,StudentName方法和变量一个单词:单词的首字母小写,举例:main,age 多个单词:从第二个单词开始,每个单词的首字母大写,举例:studentAge,showAllNames()常量一个单词:全部大写,举例:PI 多个单词:每个字母都大写,用_隔开,举例:STUDENT_MAX_AGE...

2021-01-05 21:12:22 73

原创 JavaSE和JavaEE、JavaME的关系

Java是一种高级计算机语言,它是由SUN公司(已被Oracle公司收购)于1995年5月推出的一种可以编写跨平台应用软件、完全面向对象的程序设计语言。Java语言简单易用、安全可靠、主要面向Internet编程,自问世以来,与之相关的技术和应用发展得非常快。在计算机、移动电话、家用电器等领域中,Java技术无处不在。为了使软件开发人员、服务提供商和设备生产商可以针对特定的市场进行开发,SUN公司将Java划分为三个技术平台,它们分别是JavaSE、JavaEE和JavaME。Java SE.

2021-01-05 16:23:05 1416

原创 Flink 与 RabbitMQ 通信 打印到控制台

最近在做flink相关的项目,其中一个是需要与rabbitmq进行通信,在参考了官网后,完成了这个功能,在这里记录一下。期间也遇到了一些坑,会特别说明:1 官网资料先放出官网关于rabbitmql连接器的说明:https://ci.apache.org/projects/flink/flink-docs-release-1.0/apis/streaming/connectors/rabbitmq.html2 Maven 依赖<dependency> <grou.

2021-01-01 19:42:46 1236

原创 【听说你还不会?】多层神经网络原理详细推导

1 结构第0层是输入层,输入为X,维度为(n[0],m)(n^{[0]},m)(n[0],m),其中n[0]n^{[0]}n[0]表示第0层含有的节点,也是X的特征数。mmm表示样本数。以此类推,第1层的节点数n[1]n^{[1]}n[1],第2层的节点数n[2]n^{[2]}n[2],…,第L层的节点数n[L]n^{[L]}n[L]。2 正向过程第0层输入层数据XXX,维度(n[0],m)(n^{[0]},m)(n[0],m)。n[0]n^{[0]}n[0]表示第0层含有的节点,也是X的特征数。

2020-12-07 22:51:58 626

原创 【已解决】Error: unknown flag: --export

k8s 中,执行 kubectl get deploy nginx -o=yaml --export > m2.yaml报错原因是 --export在所使用的版本中已经被去除了,将--export删除即可,改成:kubectl get deploy nginx -o=yaml > m2.yaml

2020-12-05 16:08:39 7287 1

原创 【已解决】k8s controller-manager scheduler Unhealthy

在ubuntu上使用kubeadm安装好k8s后,使用kubectl get cs 查看状态,发现controller-manager scheduler Unhealthy解决方案修改以下配置文件/etc/kubernetes/manifests/kube-controller-manager.yaml/etc/kubernetes/manifests/kube-scheduler.yaml将两个文件中的- --port=0这一行注释掉这样就可以了,等一会在执行.

2020-12-05 15:21:01 3168 1

原创 The connection to the server 10.10.0.2:6443 was refused - did you specify the right host or port?

当重启k8s的master后,我遇到了不可想象的神秘错误:The connection to the server 10.10.0.2:6443 was refused - did you specify the right host or port?方案1去百度了一下,绝大多数的解决方案是:swapoff -avim /etc/fstab# 然后注释掉有 swaq 的那一行# 再重启reboot这样做是因为k8s需要关闭swap我照做了,但是没有效果方案2后来

2020-12-03 18:46:18 10744

MapReduce.zip

go语言编写的MapReduce框架实现

2021-02-28

mysql-connector-c++-8.0.20-src.tar.gz

connector c++ 8.0.20源码,用来在系统上编译connector c++ 具体编译方法可参考 https://mp.csdn.net/console/editor/html/106618299

2020-06-09

Deep Learning Toolbox Importer for TensorFlow-Keras Models.rar

matlab的Deep Learning Toolbox Importer for TensorFlow-Keras Models 支持包,可以在matlab中使用tensorflow的模型

2020-03-26

Deep Learning Toolbox Importer for TensorFlow-Keras Models支持包Matlab参考页.pdf

这是matlab的工具包Deep Learning Toolbox Importer for TensorFlow-Keras Models 的参考页,讲解了如何将tensorflow的模型在matlab中使用

2020-03-26

BP修改BUG版.rar

BP神经网络的C语言实现版本,修改了之前的版本的一些小问题, 包括函数定义数组形参宏的错误,数据压缩里的小bug

2019-11-04

18年电赛准备程序(STM32F4版本).rar

2018年的电赛准备程序,包括按键,摄像头ov7725,fdc2214驱动等等

2019-08-11

2019电赛准备程序.rar

2019年的电赛准备程序,包括PID,滤波,菜单,直流编码电机控速控距,步进电机控速控距

2019-08-11

ATM开户的UC代码

这是一个简单的ATM开户代码,使用多进程,父进程作为服务器,读写文件,子进程作为客户端,与用户交互。父子进程通过消息队列进行通信。

2019-01-24

BP神经网络C语言工程(当前最终版)

这是修改了bug的版本,目前已经在stm32f407zgt6上、msp430F5529上仿真过。

2018-12-28

可以在单片机上计算的BP神经网络C语言工程(修改bug版)

在计算机上训练,将训练后的参数给单片机,单片机来仿真,之前已经在stm32f4上成功仿真过

2018-12-28

从傅里叶级数到傅里叶变换的详细推导

这是作者傅里叶系列推导的第一篇文章,详细写下了从傅里叶级数到傅里叶变换的整个过程,清晰明了,最后还用matlab进行了检验,证明了推导完全正确,并提供了matlab的代码

2018-10-05

BP神经网络C语言工程

BP神经网络C语言版本,可以在单片机上使用。我已经在stm32上使用过。

2018-09-07

空空如也

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

TA关注的人

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