自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 一些探索整理笔记

血缘推荐系统

2023-07-16 23:22:03 138

原创 《深入理解计算机系统》虚拟内存感悟

向用户显示该资源的一些不同类型的视图,你可以通过介入对该资源的访问过程来实现这一点。你会在malloc创建包装函数的时候看到这一点例如,你知道磁盘在物理上由柱面,磁道,扇区,磁盘组成。访问这些磁盘上一个特定扇区,你必须指定柱面,磁道和盘面,但是我们看到磁盘控制器的显示的视图实际不是这样的,是磁盘的虚拟化视图。磁盘控制器则将磁盘抽象成一系列逻辑块的形式提供给内核,它通过拦截内核的读写请求来呈现该视图,并将内核发送的逻辑块好转为实际物理地址。...

2022-07-25 20:43:17 840

原创 动态规划:硬币题目总结

arr货币数组,其中值都是整数。再给定一个整数aim,每个值都被认为是一张货币,即便值相同的货币也认为每一张都是不同的,返回amin的方法数例如:arr={1,1,1},aim=2,方法数为3arr货币数组,其中值都是不重复整数。再给定一个整数aim,每个货币的张数是无限的,返回amin的方法数例如:arr={1,2},aim=5,方法数为3arr货币数组,其中值可以是是重复整数。再给定一个整数aim,每个相同值都被认为是同一种货币,返回amin的方法数例如:arr={1,1,1},a..

2022-04-13 22:46:52 1073 2

原创 超全笔记:HDFS,MAPREDUCE,YARN,HIVE

NameNode,DataNode,SecondaryNameNode角色NameNode:基于内存存储文件元数据(metadata)、block映射元数据:/path/path/xxx.txt 128M root:root 2021.10… rwxrwxrw映射(比如xxx.ttt): xxx_bk1 node1 node3,xxx_bk2 node1 node2DataNode:基于本地磁盘存储block(每个块以文件形式存储),保存block块的校验,与NameNode维持心跳汇报bl

2022-02-09 14:40:10 4088

原创 计算机的浮点数

限制计算机浮点数的限制只能准备表示能被x/2k集合的数,其他的需要循环重复位才能精确表示,如下受计算机位数限制非常小或者非常大不能准确表示出来IEEE浮点数在1985之前,浮点数就是一场灾难,很多厂商都有自己的一套在1985年,IEEE发布了 浮点数标准Normalized Values因为隐含的1无法表示接近0的数,所以使用Denormalized Values例子转换(待补充)无符和有符号转换,没有改变位的表示,只是改变某些位的解释方法但是单精度,双精度,整数在转换

2022-02-08 19:17:11 929

原创 x86-64 寄存器细节与使用

寄存器的来历和称呼关于指令最频繁使用的指令是将数据从一个位置复制到另一个位置x86-64加了一条限制,传送指令两个操作数不能都指向内存位置例如最简单的数据传送指令——MOV类,根据大小不同也分为不同的MOV下面给出了原和目的类型的五种可能关于程序栈和寄存器使用问题xp C语言中指针就是 地址,而这个指针被放在寄存器中,并且 x 这样的全局变量通常保存在寄存器中,不是内存C语言中的&S, 取S的地址,对应leap(leap S D = &S →D) ,将S的有效地址读入

2022-01-23 23:29:18 1132

原创 Scala:迭代器源码分析

这下使用map对所有元素加一,并不会使得之前元素改变,也就是新的加一的集合开启了新的空间val list= List(1,2,3,4,5,6)list.foreach(println)list.map(_ + 1)list.foreach(println)下面是wordcount的部分代码,会浪费很多内存空间val wordCount= List("hello world","hello scala","hello spark")val word = wordCount.flatMap(_.

2022-01-03 23:05:33 1581

原创 Gradle原理与瘦包胖包的Jar打包

1. Gradle原理Gradle是用Java编写的,编写脚本用的是groovy。maven 构建本质启动了JVM进程,但是JVM的启动和加载是很慢的。构造完成后会进行销毁。gradle3.0使用daemon模式,每次新的请求都会开启一个轻量的client JVM,只负责连接查找并和后台的daemon JVM通信,client JVM任务完成就会销毁,deamon JVM也会做些Jar的缓存,这样就避免了maven JVM的启动和加载慢的问题daemon是默认开启的,client和daemon

2021-12-04 22:07:58 2829

原创 【算法导论】树:二叉搜索树,平衡二叉树,红黑树,二叉堆,B-Tree,跳表

文章结构二叉搜索树1. 介绍2. 插入3. 删除4. 二叉搜索树优化——随机二叉搜索树平衡二叉树1. 介绍2. 旋转(重要基础,维护性质的操作)3. 插入4. 删除红黑树1. 介绍2. 插入下面是case A代码的三种情况3. 然后我们看一个例子二叉堆1. 介绍2. 上滤,下滤(重要基础,维护性质的操作,大根堆为例)2.1 上滤:增大值或者插入操作需要用到2.2 下滤:减小值或者删除操作需要用到3. 如何建立堆3. 应用:堆排序4. 应用:优先队列1.返回最大值2. 出队操作3. 入队操作4. 修改值B-T

2021-11-06 21:31:08 938

原创 【SpringMVC源码】容器创建,请求处理,异常处理,视图渲染等系列流程

根据HandlerMapping来寻找对于的handler(handler就是我们写得处理这个请求的逻辑)以及拦截器handler的寻找其中有主要的两个HandlerMapping实现,分别是AbstractHandlerMethodMapping,AbstractUrlHandlerMapping,类图如下了解这个两个类之前需要了解,Controller的3种实现方式,可以参考这个标注@Controller注解,注解指定url继承Controller类,实现handleRequest方法.

2021-10-30 17:39:23 833 2

原创 【Spring源码】三:AOP执行过程

什么是AOPAOP是不同于OOP的一种编程思想,AOP关注的是横向,OOP关注的是纵向将系统中与业务无关的动作或服务(如:日志记录、事务处理、权限控制)设计为通用、不介入特定业务对象的、职责清楚的Aspect对象,这就是Aspect-oriented programming,即AOP编程Aspect:使用代理对象将记录等与业务无关的动作或任务提出来,设计为一个服务对象,这样的对象称为切面Advice:Aspect指的是一类服务,而Advice是这类服务当中具体的一个,如日志服务前面的Dynami

2021-10-17 17:09:51 1010

原创 【Spring源码】二:AOP代理的循环依赖

关于包含AOP代理的循环依赖两层缓存提前暴露对象解决循环依赖,三层缓存存储代理对象解决AOP循环依赖A实例化完成之后,将funcA放入三级缓存(这是一个lambda表达式,可以找到A)初始化A(给A赋值属性B),所以又去创建BB实例化完成之后,将funcB放入三级缓存(这是一个lambda表达式,可以找到B)初始化B(给B填充属性A),又去从容器中获取A此时可以从三级缓存中查到A的funcA对象,调用getObject(),其实调用了getEarlyBeanReference,生成了代理对象

2021-10-17 17:08:54 1359

原创 【Spring源码】一:整体流程

如果是BDRPP类,先处理用户自定义,调用PPBDR,处理容器根据优先级排序,调用PPBDR;BFPP加入之后一起执行按顺序PPBF

2021-10-17 17:07:56 883

原创 【上海交大复试失利总结】横向纵横 动态规划

虽然交大复试已经过去5个月了,现在已经在平安工作3个月了。但交大当时复试的场景仍然铭刻在心中,说不定哪天又要再考,所以借此机会把当年写动态规划题目的思路总结下,毕竟当时3道机试算法全是动态规划,属实裂开哈哈哈哈普通递归思路背包最多装6公斤,现有3件物品123重量234价格135求背包能装下的最大价值?首先我们回到小学,把它看成一道智力题,我们会用下图的方法解决。就是从6开始每次都有三个选择,选择后继续用剩下的重量选择,比如6公斤选了1号物品,那么接下

2021-10-06 11:30:16 1371 1

原创 【MYSQL】三:不就是个优化嘛,多大点事

1. 什么是索引索引:排序好的可以快速查询的数据结构,左边数据查找需要通表查找,给左边数据建立右边二叉树的索引,可以避免全表搜秒2. 可以采取的索引类型哈希拉链法有序数组N叉树链表中ID不是有序的,插入会很快,区间查询会很慢查询用二分单个O(logN),范围查找也很优秀,但是添加就会导致记录后移,成本太高等值查询的场景,比如Memcached及其他一些NoSQL引擎有序数组索引只适用于静态存储引擎,比如你要保存的是2017年某个城市的所有人口信息,这类不会再修改的数

2021-08-29 22:27:39 574 1

原创 【MYSQL】一:从操作系统分析innodb引擎架构

5.71.三部分架构:上层应用内存空间——OS磁盘高速缓存——磁盘2.上层应用内存空间buffer pool:缓冲池当访问表或者索引信息会被缓存到这里,这样能够把经常访问的信息缓存到这里;每个小块是一个page,以链表的形式管理,另外是立即刷盘,不同log buffer可以控制写入缓存再写入磁盘;选用变种型LRU(最近最少使用)替换算法,page的使用跟JVM的设计有些类似,分代的以链表的形式管理:使用的page会用链表连接(Database pages ),空闲page也会连起来(Free b

2021-08-29 20:37:21 446

原创 【SpringBoot自动装配】@ComponentScan @EnableTransactionManagement都去哪了

一丶疑问大家时否有这样的疑问,写spring项目时需要使用xml或者注解来扫描包扫标注了@Controller、@Service、@Repository,@Component 到spring容器开启事务,来保证sql操作的原子性但是到了springboot我们没有写过如下的@ComponentScan("com.jh")@EnableTransactionManagement@Configurationpublic class Config { ....}<context:

2021-08-29 20:34:11 826 2

原创 滑动窗口思想

在解决子串或者子数组(要求结果连续的),一般可以想一想活动窗口滑动窗口掌握的核心是:双指针右指针右移:目的是找到满足符合条件的左指针右移:两个目的(压缩+更新+破而后立),首先左移到满足先前那个状态的最小情况(压缩),就可以做更新操作(更新),之后再移动破除当前状态寻找下一个满足条件的状态(破而后立)给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。输入: s = “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。请注意,你的答案必须是

2021-07-10 10:27:15 511

原创 回溯与DFS

一丶DFS深度优先搜索(Depth-First-Search,DFS)是一种用于遍历或搜索树或图的算法二丶回溯法=DFS+剪枝适用于组合数相当大按 [深度优先策略] ,根节点出发搜索空间树,搜索任意节点是否包含问题的解,不包含回溯,否则,继续进行深度优先搜索通过 [剪枝函数] 约束条件 (constraint) 在扩展结点处减去不满足约束的子树;用限界函数(bound)剪去得不到最优解的子树(假如我们只需要最优解的时候用) 避免不必要搜索的穷举式搜索回溯法模板vector<int>

2021-07-10 10:26:18 2868

原创 tensorflow操作

数据比较python自带的list,list本身是链操作,面对图像处理的大数据,会显得吃力np.array是在深度学习之前发展起来的科学库,没有很好的GPU支持和自动求导tf.Tensor是一种包含更多功能,更偏用于神经网络的计算np 和 tf 拼接分裂random操作都是类似的,命名也是类似的维度scalar:1.1 维度0vector: [1.1] 维度1matrix:[[1.1,2.2],[3.3,4.4 ]] 维度2tensor:维度大于2tensorflow中tensor

2021-07-10 10:04:23 259

原创 MAVEN

IDEA 默认提供maven,也可以去官网下载bin:是一些可执行文件,可以用cmd命令来使用maven,boot:maven启动需要的jarconf:settings.xml maven核心配置文件,远程仓库镜像,jdk版本

2021-07-10 10:02:12 272

原创 李宏毅:错误来自于什么地方——过拟合与欠拟合及其解决方案

要问你的error来自哪里,就像下面这张图f⌢\overset{\frown} {f}f⌢​是理想的函数,f∗f^*f∗是你现在找到的函数bias 和 variance 就是你打偏的原因虽然样本均值不等于μ\muμ,但其期望等于μ\muμ样本会散落在μ\muμ附近,并且其偏离程度由σ2n\frac {\sigma^2}{n}{}nσ2​决定,又因为σ\sigmaσ不变,那么n越大,散布就会越集中打个比方就如同这幅图,你打靶的时候瞄准的点与靶心是有bias的,并且子弹射出去,也会与瞄准的点有v

2021-07-08 16:38:50 229

原创 李宏毅:回归

输出一个标量接着上篇概述,我们来使用宝可梦进行回归的例子首先函数的样子就是,输入进化前的梦可宝的cp值,输出进化后的cp值之后我们规定线性方程范围,图中颜色深浅我们使用 loss=∑(正确cp值−函数估计cp值)2loss=\sum(正确cp值-函数估计cp值) ^{2}loss=∑(正确cp值−函数估计cp值)2 90图中颜色代表4.随机取初始值,计算偏微分,更新w,b参数,不断是loss最小( 图中颜色越好loss越大,越蓝loss越小 )如果损失函数的方程式这样的,那么能不能达

2021-07-08 16:38:06 179

原创 李宏毅:机器学习 介绍

总述:机器学习就是寻找函数1. 我们首先会想好找什么样的函数比如能够让语音转为文字的函数,一张图片转为类别的函数,能够生成图片的函数2. 在我们想好找什么函数之后,又怎么样告诉机器我们要找的函数是什么样子的呢?常见有监督学习,加强学习,无监督学习监督学习:我们会给机器一些带有标签的数据,也就是告诉机器我们理想中的函数是:在给定的输入下,函数输出是与标签对应的,比如一张图的标签是猫,那么图片输入经过函数,输出就是猫加强学习:比如AlphaGo与自己或者其他机器进行下棋,那么输赢回座位反馈来不

2021-07-08 16:36:34 216

原创 千万不要错过:docker理论,实战(mysql,nginx,vsftpd)

1. 虚拟机环境不一致开发 测试 环境配置不一致打包开发人员的环境,打包到测试人员上门VM 提供虚拟的硬件,比如 VM workstation我们创建一个操作系统,会让我们选择硬件,这就是它们使用软件来申请使用我们本机的硬件,从而达到了虚拟化硬件的效果2. 容器如图所示 docker鲸鱼运行在我们主机的海洋中,箱子容器有程序和其环境依赖,也有一个超精简的linux内核就像上面这幅图,docker鲸鱼运行的在我们的linux机器1上,上面的箱子就是容器,箱子里面就装了某个应用及其环境(比如

2021-07-08 16:36:06 268

原创 李宏毅:Word Embedding

1-of-N Encoding每个单词用一个vector代替,世界上有多少个word,vector有多少个维度这样的vector得不到任何的联系,比如bag和cat你无法知道都是动物解决:使用word class但是光用class是不够的,我们少了一些信息,class1和class2代表动物和动物可以做的动作,这一层也没有体现出来解决:Word Embedding,它每一个word project一个高维度的space上面(维度往往比1-of-N Encoding维度低),我们使得接近的词汇位置

2021-07-08 16:33:55 254

原创 李宏毅:GAN——Conditional Generation

Conditional Generation:你可以根据调整输入的vector得到你想要的图片,而不是由GAN随机生成Conditional GAN的输入 不只输入vector还要输入normal distribution z一起产生结果![在这里插入图片描述](https://img-blog.csdnimg.cn/2021042214 1505652.png)原来的discriminator只需要输入一张图片,但是也是有问题,因为discriminator只检查你现在输入的图片是不是高质量的,而完

2021-07-08 16:33:28 397

原创 李宏毅:GAN——Unsupervised Conditional Generation

回忆Generation:输入一个随机的输入,会输出一个随机的输出Conditional Generation:你可以根据你所输入得到你想要的输出,而不是由GAN随机生成,你可以通过控制输入来控制输出的结果supervised Conditional Generation:比如图片生成文字,我们database里面有很多{文字,图案}的pair来训练Unsupervised Conditional Generation:比如下面的将图片转换成另一个风格(因为这个想做pair做监督学习也很难)

2021-07-08 16:33:10 253

原创 李宏毅:Auto-encoder

什么是auto-encoder首先找一个encoder,作用好比输入一张图片丢入网络输出一个code(code是一个输入目标的压缩代表),同时还有一个decoder,输入一个coder,丢入该网络,生成一个图片,能够重建原来的图像这个技术可以采用auto encoder(可以给一张图片变成code),但是encoder不能自己训练,必须需要decoder(给一个code变成一张图片)这两个NN,不能单独训练,需要一起学与PCA有类似的思想输入一张图片PCA就是输入图片x (x 往往减去平

2021-07-08 16:32:52 629

原创 李宏毅:GAN——基本思想和算法流程

Generative Adversarial Network输入一个vector 可以生成你想要的,就是GAN输入的一个个vector变成了一张张照片如果第一个数代表头发的长度,倒数第二个个数代表头发蓝色的程度,最后一个代表是否张开嘴,那么数值变换就会有如下的变换GAN的基本IDEAGAN的神奇之处,不止训练上述的生成器(generator),还训练了一个分辨器(discriminator),它的输入是你想要生成的东西,输出是一个数值,数值越大输入图片就越真实...

2021-07-08 16:32:07 1939

原创 虚拟机:图解仅主机,桥接,NAT模式

前置知识一个路由器的口就是一个网段一般同一个交换机的所有接口连接的设备是同一个网段一般同一个集线器的所有接口连接的设备是同一个网段不同在于交换机拥有学习的能力,会记忆哪台机器在个口,之后就可以定点转发,而集线器需要转发到所有接口,交换机正因为是学习能力,所以他可以隔离冲突域(冲突域内只允许在一个时间段内一台设备发送消息),但是不能隔离广播域,因为交换机内设备都是同一个网段,广播消息同一网段内的都能接收这道题也正因为H2先发H4,交换机学习到了,所以后面H4发H2就可以直接发送了,也就是最后只有

2021-07-07 12:49:32 289

原创 SSO(Single Sign On):原理与使用

1. 为什么需要SSO分布式中有很多微服务,某些服务需要用户登录完成才能进行操作,但是每个微服务独立,这样就会访问每个微服务都需要重新登录一次,SSO只要在SSO微服务登录,就可以一次登录,处处使用!2. 传统单体项目实现登录使用session实现登录和认证,springsecurity也是使用session发一次请求就是一次会话,服务端会在session开启一份独有的空间(里面是使用map结构),并产生唯一的标识JessionId(uuid)与session内存空间进行绑定,根据J

2021-06-03 22:52:36 527

原创 操作系统的存储器总结

存储器的设计存储器的运行流畅上图为虚拟地址所指向的内容传入cpu的过程,运行原则最终要到cpu操作将执行完毕,未命中需要将可以从该点出发的所有蓝色线的操作执行完成CPU执行某条指令,他的ALU部件需要这条指令的内容,发送这条指令的虚拟地址,cpu的mmu会查询TLB的映射表是否存在对应的物理位置,如果有就可以生成物理地址,如果没有就会去内存页表(页表中没有需要去外存中找调入),如果找到了,就得到了物理地址,然后再cache中查找有没有这条指令内容,没有就去内存中找,然后内容通过总线传送给CPU,C

2021-05-19 15:30:37 219

原创 pytorch visdom安装,开启,使用

安装conda activate ps pip install visdom激活ps的环境,在指定的ps环境中安装visdom开启python -m visdom.server浏览器输入红框内的网址使用1. 简单示例:一条线from visdom import Visdom# 创建一个实例viz=Visdom()# 创建一个直线,再把最新数据添加到直线上# y x二维两个轴,win 创建一个小窗口,不指定就默认为大窗口,opts其他信息比如名称viz.line([1,

2021-04-18 19:53:57 2364 3

原创 计算机网络之前笔记汇总

网络概况:ISO七层理解网络概况:用户页面请求场景简要流程网络概况:面向连接与无连接服务及其服务质量(可靠与不可靠)接口、服务、协议物理层引导性传输介质码元,数据传输速率,带宽,信噪比,信道容量数据链路层:封装成帧,透明传输,差错检验与纠正CSMA/CD协议PPP协议交换机的前世今生:交换机的来历差错检验与纠正: 循环冗余校验与汉明码网络层传输层...

2020-07-30 11:12:55 479

原创 指令系统

指令格式一丶操作码反映机器做什么操作1. 长度固定类型用于指令字长较长的情况,RISC(比如IBM 370 操作码8位)2. 长度可变操作码分散在指令字的不同字段中下面是一种扩展操作码的技术保留码点(1111,11111111…),短操作码一定不能是长操作码的前缀,计算机在译码是就很难识别指令一般来说:经常出现的指令用短操作码操作类型1.数据传送2. 算术逻辑操作3. 移位操作4. 转移5. 输入输出(独立编址)二丶地址码地址码格式类型四地址取指令访问内

2020-06-18 17:58:10 1472

原创 计算机存储器系统

总线存储器主存Cache虚拟存储器CPU指令系统I/O设备现代计算机存储系统结构存储墙可以看出1985~2003年,cpu的频率在一直翻倍(摩尔定律) 。但是到了04年发现Pentium 4E,增加频率导致散热相当困难,而是开启了做了多核CPU,甚至频率进行了降低,例如Core 2 Core i7。8086是第一个微处理器,它出现在1978,386是可以能够将很多有意思的应用到个人电脑,因为它扩展到32位,是个通用的CPU。后来的Pentium 4E发现是一个奇怪的型号.

2020-06-18 17:57:43 2449 8

原创 后端实现文件(图片,视频)实现文件上传FTP删除

前端实现不多说,直接上代码Controller@CrossOrigin@Controller@RequestMapping("/management/good")public class ManageGoodController { @Autowired FileService fileService; @ResponseBody @DeleteMapping("/delete/{name}") public ServerResponse de

2020-06-15 18:44:53 854

原创 Vue+ElmentUI:前端实现文件(视频/图片)上传

未经许可不可转载功能实现:这个组件很简单。根据你的action的地址,提交post请求el-upload本身可以发送各种内容(图片,视频等等),后端使用MultipartFile接受,发送文件过大时(比如视频)会失败,在后端链接中说明了如何解决<template> <div> <el-upload :action="this.uploadUrl" list-type="picture-card" .

2020-06-15 18:20:40 6186 12

原创 408笔记

计组:总线存储器主存cache虚拟存储器CPUI/O设备

2020-06-11 22:55:42 520

空空如也

空空如也

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

TA关注的人

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