- 博客(38)
- 收藏
- 关注
原创 RPC框架
RPC(Remote Procedure Call)1.RPC 简介RPC即远程过程调用,即一个节点请求另一个节点提供的服务,让你用别人家的东西就像用自己家的一样。在单体应用的时候,客户端请求服务器是外部调用,而其他都是本地调用,通过压栈即可,但使用分布式之后,各个服务之间也物理隔离了,也需要相互调用。但是传统的过程调用(通过HTTP)在内部系统(多个服务)调用很复杂的前提下效率和安全性就不理想了,更重要的是我们不仅需要一个通信方式。更需要一个内部服务的管理系统,所以RPC就诞生了。RPC不仅仅指
2022-05-05 18:16:05 520 1
原创 ElasticSearch
ElasticSearch文章目录ElasticSearch1.ElasticSearch是什么2.ElasticSearch核心概念3.ElasticSearch中节点和分片如何工作4.ES底层数据结构5.ES架构(可能重复,但多看看吧)6.ES写入流程7.ES更新和删除8.ES查询9.ES如何保证数据一致性,实时性10.ELK1.ElasticSearch是什么●SQL:使用SQL进行模糊搜索只能使用like %内容%(这类查询不走索引),如果是大数据环境下特别慢。关系型数据库相
2022-05-05 18:14:59 440
原创 分布式常见问题
分布式常见问题文章目录分布式常见问题1.分布式CAP定理2.数据库分库分表的坑------用于扩容3.负载均衡的实现方式1.分布式CAP定理CAP定理:对于一个分布式系统来说,不可能同时满足以下三点一致性(C):分布式中所有数据备份,在同一时刻具有相同的值可用性(A):保证每个请求不管成功或失败都有响应分区容忍性(P):系统中任意信息的丢失或失败不会影响系统的继续运作所有分布式系统只能满足两个:CP:当分布式系统中无副本,必然就满足C,此时CP具备,因为无副本就无法满足高可用性AP:
2022-05-03 22:44:05 844
原创 blog中外链图片无法显示说明
blog中外链图片无法显示说明写着写着blog突然发现外链图片不好使了,自己试着直接查找图片的url,还是可以正常访问到的,试了几种方法,感觉都没有效果。本来也是因为自己的博客很少有人看,所以才在csdn上再次发布的。嗯,如果想看的同学,不妨光顾一下我的博客,在上面所有的文章都有,本人研二在读,目前正在准备秋招,应该会不断的进行更新。有兴趣的小伙伴可以点下关注----Java是世界上最好的编程语言。ヾ(◍°∇°◍)ノ゙最后附上博客连接,点这里哦~(PS:第一次加载会比较慢,大家稍微耐心一下)http:
2022-04-21 19:55:45 298
原创 Mybatis
Spring框架—Mybatis1.Mybatis是什么●Mybatis是一个半ORM(对象关系映射)框架,内部封装了JDBC,开发时只需要关注SQL语句本身,不用去关心加载驱动,创建连接,创建Statement等繁琐的过程,程序员直接编写SQL语句即可。●使用XML或注解来配置和映射原生信息,将POJO映射为数据库中的记录,避免了JDBC代码和手动设置参数。2.ORM●ORM(Object Relation Mapping)对象关系映射,一种为了解决关系型数据库与简单java对象(POJO)的映
2022-04-21 19:35:54 1102
原创 SpringMVC
Spring框架二----SpringMVC1.什么是SpringMVC●SpringMVC是一个基于Java实现的MVC设计模式轻量级Web框架(表示层框架),通过把Model,view,controller分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分,方便组内开发人员的配合。 ■Model:模型层,指工程中的Javabean,作用是处理数据,JavaBean也分为两种。 ▼实体类Bean:专门存储业务数据,(Student,User) ▼业务类Bea
2022-04-21 19:34:17 793
原创 Spring
Spring框架一------Spring1.SSM框架●Spring+SpringMVC(model ,view,controller)+Mybatis●Spring:使用注解和自动装配,即IOC,AOP(业务层)●SpringMVC:使用MVC模型,将流程控制代码放到controller层处理,将业务逻辑代码放到service层处理(表示层)●Mybatis:在持久层(Repository)与数据进行交互2.什么是Spring●一款轻量级(体积小,引用jar包少)的开源的JAVAEE框架。
2022-04-21 19:31:53 591
原创 JAVA-集合
JAVA集合1.集合概述●集合就是一个放数据的容器,存储的都是对象的引用而肥非对象,主要有三种集合:set,list,map2.集合和数组的区别●数组的长度固定,集合的长度不固定●数组可以存基本类型或引用类型,集合只能存引用类型●数组存储的元素必须是一个数据类型,集合存储的可以不是一个数据类型●数组无法满足无序,不可重复等要求,集合可以有。3.集合框架[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-u117nMq1-1650426015457)(http://
2022-04-20 11:40:54 540
原创 JAVA-并发
JAVA并发1.为什么使用并发,什么是并发●可以提升多核CPU的利用率:一般来说一个主机会有多个CPU核心,我们可以创建多个线程,将不同的线程交给不同的核心去执行,这样就可以提升CPU的使用率。●方便进行业务拆分,提升应用性能●比如我们常见的数据库连接池,就是多线程的应用●缺陷: ■线程也是程序需要占用内存,线程越多,消耗内存越多 ■多线程需要协调管理(上下文切换),还会浪费一部分CPU性能 ■线程之间对共享资源的访问会相互影响,会造成线程不安全现象。2.并发编程的三个要素●
2022-04-20 11:40:00 971
原创 JAVA-IO流
JAVA基础之IO流1.同步与异步,阻塞与非阻塞●同步:方法1调用方法2,方法1必须等到方法2返回后,才能继续进行。●异步:方法1调用方法2后,当方法2完成的时候会主动通知方法1●阻塞:当前进程发送一个请求后,直接挂起,直到请求回复后才继续工作。●非阻塞:发送请求后,不用一直等待结果,可以先去干别的事,每隔一段时间检查下是否返回。(和异步差不多嘛)●同步阻塞:方法1调用方法2后,就一直等着方法2完成,完成后,再继续干别的●异步阻塞:方法1调用方法2后,虽然方法2会主动告诉方法1何时完成了,但是
2022-04-20 11:38:57 412
原创 JAVA-异常处理
JAVA异常处理机制1.异常简介●异常是Java提供的一种识别及响应错误的一致性机制,可以使程序中异常处理代码和正常业务代码分离,提高程序健壮性。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pKvS1eNI-1650275705939)(http://luxiaolumm.gitee.io/luxiao-lu-mm/pic/101.png)]●Throwable:Java中所有错误与异常的超类,报错Error和Exception两个子类。●Error:Error类
2022-04-18 17:55:39 251
原创 JAVA-基础语法
JAVA基础1.何为编程●为了使计算机理解人的意图,我们需要将需要解决的问题的思路方法和手段通过计算机能理解的方式告诉计算机,使计算机能够一步步去做,这个过程就是编程。2.J2SE,J2EE,J2ME(Java的多个版本)●J2SE:JAVA 2 Platform Standard Edition 标准版:用于桌面应用,也是J2EE的基础。●J2EE:JAVA 2 Platform Enterprise Edition 企业版:用于企业应用,支持分布式部署。●J2ME:JAVA 2 Platfo
2022-04-18 17:54:51 92
原创 单点登录--
单点登录(SSO)●首先介绍下什么是单点登录吧:比如在多个应用系统中,只需要登录一次就可以访问其他相互信任的应用系统(比如只要登录了QQ,那么腾讯视频、腾讯游戏、王者荣耀都可以不用再进行认证了)●上图的四个系统中,其中三个Application没有登录模块,而SSO只有登录模块没有业务模块,当三个application需要登录认证的时候,将跳到SSO系统,SSO系统完成登录,那么其他的应用系统也就随之登录了,这就是单点登录的含义。那么下面我们来看看是如何一步步发展到如今的水平的。●普通登录认证机制
2022-04-18 17:53:55 261
原创 计算机网络
计算机网络1. OSI(Open System Interconnect)七层协议●应用层(DNS、HTTP、FTP、Telnet):为用户的应用程序提供服务。●表示层:数据格式转换+数据加密解密●会话层:建立、管理和维护会话●传输层(TCP、UDP):建立主机之间的端到端连接,提供数据段传输服务●网络层(IP):IP选址和路由选择(RIP、OSPF、ARP、RARP)确保IP数据报的及时传送●数据链路层(网桥、网卡、交换机):将IP数据报封装成帧,完成帧传输和错误检查●物理层(IEEE80
2022-04-16 14:51:16 3367
原创 软考---阵亡
2021年11月3日:晴担心了好久的事还是发生了,软考取消了,不知道是什么样的心情。疫情防控嘛,懂,但还是免不了伤心,从暑假期间就一直在准备,题目也一遍一遍的刷,最近更是有几次因为事太多而压力大的睡不着觉。就一句话,给您造成的不便,敬请谅解。不谅解又能怎么样呢。就这样吧。还能怎么样呢。。。。。...
2021-11-03 11:49:08 97
原创 (找工作篇01)计算机硬件及网络常识
今天开始开始准备找工作的东西了,害心情复杂,好难哦,未来目标java大数据岗位,所以以后学习的路线第一步java基础吧,这个是跟着尚硅谷学习的笔记。嗯,先更完java基础篇再说。┭┮﹏┭┮我太难了,为啥研究生选的人工智能啊。
2020-12-25 22:35:58 366
原创 pytorch学习总结
序号系列完结(其实是我找不到后面的网课了)嗯·第一次写blog,可能写的乱糟糟的,如果大家需要自己看网课的话,可以来找我要资源,本人,所有知识来源《tensorflow+pytorch》,深度之眼pytorch网课,以及pytorch中文学习网。...
2020-12-23 18:17:54 129
原创 (16) pytorch之Dropout
一、正则化之Dropout(随机失活-weight=0)数据尺度变化:训练时,所有权重除以(1-drop_prob),弥补删除部分神经元造成的总权重损失,这样训练时就不用再修改了pytorch提供的dropout网络层nn.Dropout():一般放在需要drop_out的网络层前面重要参数:p舍弃/失活的概率...
2020-12-23 18:10:48 681
原创 (15)pytorch之正则化
一、正则化Regularization(减少方法的策略)1.误差=偏差+方差+噪声偏差:学习算法本身的拟合能力,表示学习算法的期望预测与真实结果的偏离程度方差:数据扰动造成的影响(模型在训练集和测试集上表现的差异)噪声:无法避免,泛化误差下界2.损失函数:衡量模型输出与真实标签的差异(每一个)代价函数:(求平均)目标函数:3.L1Regularization Term:(如果目标函数为cost+L1则表示希望绝对值小)L2Regularization Term:(如果目标函数
2020-12-23 18:07:37 823
原创 (14)pytorch之hook函数
一、Hook 函数(不改变主体,实现额外功能)1 torch.Tensor.register_hook(hook(这个参数为我们自己定义的hook函数))–针对tensor的hook自己写一个反向传播hook函数,来获取中间变量的梯度, 仅有一个输入参数(梯度)egw=t.tensor([1.],requires_grad=True)x=t.tensor([2.],requires_grad=True)a=t.add(w,x)b=t.add(w,1)y=t.mul(a,b)a_grad=
2020-12-23 17:59:56 225
原创 (13)pytorch之学习率调整
一、为什么要调整学习率学习率控制着更新的步伐,我们希望前期学习率大一些(大幅度定位),后期学习率小一些(小范围定位)初始学习率一般设置较小的数:0.01、0.001之类二、pytorch提供的学习率调整策略都继承一个基类 _LRScheduler主要属性:optimizer:关联的优化器(所以这个学习率调整器在optimizer声明之后才出现,optimizer先指定一个lr,这里再绑定optimizer)last_epoch:记录epoch数(可以得知学习率的调整是以epoch为周期的)b
2020-12-22 21:28:47 775
原创 (12) pytorch之优化器
一、优化器:利用损失函数的梯度,更新模型参数,使得损失变小1.导数:函数再指定坐标轴上的变化率2.方向导数:指定方向上的变化率3.梯度的方向:方向导数最大的方向4.梯度的模长:向量值5.梯度下降:根据梯度的负方向使loss不断降低二、pytorch中优化器——Optimizer各种优化器都在optim包中,eg optim.SGD()基本属性:defaults:优化器参数,(net.parameters(),学习率,momentum=0.9(动量,结合当前梯度与上一次更新信息,用于当前更新
2020-12-22 21:24:03 1100
原创 (11)pytorch之损失函数
一、损失函数(衡量模型输出与真实标签的差异)1.损失函数,代价函数,目标函数的区别:损失函数:一个样本的差异代价函数: 所有样本损失的均值目标函数:obj=Cost+Regulaization(正则项:防止过拟合)2 常用损失函数a:nn.CrossEntropyLoss:nn.LogSoftmax()(数据归一化)与nn.NLLLoss()结合,进行交叉熵计算。主要参数 weight:各类别的loss设置权值,每个类别的权值ignore_index:忽略某个类别,不计算loss
2020-12-22 21:20:22 784
原创 (10) pytorch之梯度消失和梯度爆炸
梯度消失和梯度爆炸目的:要控制网络层每层输出的范围解决方法,选择合适的初始化值:常用初始化方法(根据具体模型来选择权值初始化方法)1.Xavier均匀/正太分布2.kaiming均匀/正态分布(Xavier不适于Relu函数)torch.nn.init.kaiming_normal_(tensor(这里写模型.weight.data), a=0, mode=‘fan_in’, nonlinearity=‘leaky_relu’)in_put=t.randn([100,100])clas
2020-12-22 21:13:50 1335
原创 (9) pytorch之池化层、全连接层、激活函数层
一、池化层:对信号进行收集并总结。(目标:冗余信息的提出,减少后面的信息量)收集:多变少总结:最大值/平均值(max/average)1 nn.MaxPool2d(功能对二维信号-图像进行最大池化)常见参数:kernel_size:池化核尺寸stride:步长(应该与池化核尺寸相同,防止重叠所以也为一个元组)padding:填充个数dilation:池化核间隔大小ceil_mode:尺寸像上(True)/(false默认)下取整return_indices:记录池化像素索引当把m
2020-12-22 21:06:45 1678
原创 (8) pytorch之卷积conv2d
一、卷积运算卷积运算:卷积核在输入信号(图像)上滑动,相应位置上进行乘加.卷积核:又称滤波器,过滤器,可以认为是某种模式,某种特征.卷积维度:几维的卷积核在几个维度上滑动,就是几维卷积.(我们平时说的都是2维度)卷积过程类似于用一个模板去图像上找与它相似的区域,与卷积核模式越相似,激活值越高,从而实现特征提取.二、 Conv2dnn.Conv2d()模型:功能:对多个二维信号进行二维卷积.主要参数:in_channels(输入通道数)out_channels(输出通道数,等价于卷积核
2020-12-22 20:59:46 601
原创 (7) pytorch之containers容器
一、容器containers(也都集成nn.module)1.nn.Sequetial:按顺序包装多个网络层(使用容器的时候,容器里面的model属于容器,而这个容器属于本网络)注意哦,这个容器后面括号里都是参数所以要用逗号隔开eg#我们习惯将卷积层池化层认为是特征提取部分,全连接层为分类,所以这么写class L_net(nn.Module):def __init__(self,classes):#参数classes为分类数 super(LeNetSequential,self)
2020-12-22 20:54:50 376
原创 (6)pytorch之模型创建(一)
模型创建步骤1.构建子模块(在__init__()函数中)2.实现正向计算(在forward()函数中)torch.nn包含四个包/类1:nn.Parameter : 张量子类,表示可学习参数,如weight bias2:nn.Module : 所有网络层基类,管理网络属性3:nn.functional:函数具体实现,卷积池化,激活函数4:nn.init:参数初始化方法今天主要学习nn.Module(八个属性)1.parameters:存储管理nn.Parameter类(weight,b
2020-12-16 23:05:39 174
原创 (5)pytorch之DataLoader与DataSet
这个其实很好懂,Dataset可以看作是把数据一个一个的找到,DataLoader是将DataSet找到的数据几个几个一组分好
2020-12-16 16:27:42 321
原创 (4)pytorch之autograd自动求导及逻辑斯蒂模型
autograd-自动求导系统常用方法1:torch.autograd.backward()(张量的backward方法其实就是封装的这个方法,即 loss.backward()=torch.autograd.backward(loss)),无返回值,但会更新各个叶子的梯度属性参数列表grad_tensors:各个梯度见权重的设置(张量)retain_graph:保存计算图,可以再次backward2.torch.autograd.grad() :求取梯度,返回值为导数(张量形式)参数列表:
2020-12-16 16:17:29 119
原创 (3) pytorch之计算图与动态图
计算图 (描述运算的有向无环图)基本元素 :结点(表示数据,eg向量、矩阵、张量),边(表示运算,加减乘除卷积等)eg:y=(x+w)*(w+1)使用计算图主要是为了求导更加方便注:使用结点.backward()仅仅能对叶子结点,x和w求导。不能看a和b的导数(反向传播后直接释放掉了,节省内存)。如果想要保存,在反向传播之前使用,a.retain_grad()方法判断张量是否是叶子结点,可以通过第一节介绍的is_leaf属性最后一个属性grad_fn:记录创建该张量时用到的方法(叶子结点为
2020-12-16 16:12:26 264
原创 (2)pytorch之tensor基础操作
张量操作一、张量拼接torch.cat() torch.stack()在新创建的维度上拼接 (返回一个拼接好的张量,不会改变原有张量)参数 tensor:要拼接的张量(张量元组/列表),dim:要拼接的维度(3个23的张量(23只有0/1维度)如果在0维度上拼接就变成了63如果在1维度拼接就是29)如果使用torch.stack指定的dim为已有的维度,会把原有的维度向后推一个。然后在指定位置新建维度进行拼接二、张量切分torch.chunk()将张量按维度进行平均切分(如果不能整
2020-12-15 20:10:53 299
原创 (1)pytorch之张量创建
原来的pytorch学习感觉有点乱,所以又重新整理了一个。希望能有帮助(这个系列一定会走到最后哦(●'◡'●)后面数字是小写的就是这个版本的)
2020-12-14 16:54:10 445
原创 三、pytorch之神经网络的训练
神经网络的训练过程1.自定义一个神经网络(1):定义一个类,继承自Module,并且一定要实现两个基本函数。构造函数__init__,逻辑运算函数(向前计算函数)forward(2):在构造函数__init__中实现层的参数的定义。比如Linear层的权重和偏置,Conv2d层的in_channels,out_channels,kernel_size,stride=1,padding=0,dilation=1,groups=1,bias=True,padding_mode=“zero”(3):向前传
2020-12-10 21:08:57 309
原创 二、pytorch之数值微分
数值微分1.requires_grad属性每个张量有一个属性 requires_grad(默认为false,可以根据x.requires_grad_(True)方法来改变),设置为True,就会开始跟踪tensor的所有操作,完成后,可以调用.backward()自动计算所有梯度,并且梯度累积到.grad属性中eg1 x=t.ones(5,3,requires_grad=True)#初始化张量的时候设置属性 y=x+2#因为y是由x变化而来,所以y已经有了grad_fn属性(此时用y产
2020-12-10 21:02:07 299
原创 一、pytorch之Tensor
Tensor (张量)类似于Numpy的ndarrays,可以使用GPU来计算创建张量import torch as tx=t.empty(5,3)#构造一个5*3的矩阵,不初始化y=t.rand(5,6)#构造一个5*6的随机矩阵z=t.zeros(5,6,dtype=t.float64)#构造一个5*6的全0矩阵z=t.tensor(列表)#将这个列表变为张量形式z=t.ones(5,6,dtype=t.float64)#构造要给5*6的全1张量以上方法的like版本,创建一个形状
2020-12-10 20:56:59 306
原创 Tensorflow2.0-gpu以及pytorch和torchvision的安装
Win10装tensorflow2.0gpu和pytorch简介一、安装Anaconda二、安装Anaconda-gpu版1.试过很多种错误,推荐这种傻瓜式安装(如果想在虚拟环境种安装请新建一个虚拟环境,我直接在base下安装的)2.升级为tensorflow2.02.安装cudacnn 和cudatoolkit三、 pytorch和torchvision简介心态炸裂。。。学到torchvision的时候,发现怎么也装不上了,python版本不对,想着重新换个虚拟环境,结果nb_conda也安装不上,花
2020-12-10 20:00:53 322
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人