自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Kevin.wang

英国Computer Science本科在读,用最通俗的语言讲述计算机科学,见证计算机小白的进化

  • 博客(78)
  • 收藏
  • 关注

原创 弄懂UDP与TCP协议,这一篇就够了

文章目录一.协议1.1什么是协议?1.2为什么要制定协议?二.OSI七层模型1.1什么是七层模型?1.2都有哪七层?三.面向连接的TCP协议TCP总结四.无连接的UDP协议UDP总结五.总结参考文献一.协议1.1什么是协议?协议(Protocol)是指通信双方就如何进行通信的一种约定。通俗来讲,协议就是标准,大家要遵循相同的标准才能正常交流通讯。比如我们日常生活中,来自不同国家的人不可能用各...

2019-07-17 10:26:29 13657 5

原创 Agents and Multi-Agents System 智能与多智能体系统

文章目录Week2 Embedded Agents2.1 Math revision2.2 Accessible and inaccessible environments2.3 Deterministic and non-deterministic environments2.4 Static and dynamic environments2.5 Formal specification of an embedded agent2.6 Utility FunctionsWeek3:Deductive,r

2021-12-31 23:03:08 2131 1

原创 Batch Norm和Dropout问题大总结

文章目录1. 为什么训练时要保证每层的方差一致?2. 什么是Covariate Shift现象?3. Batch Norm中为什么归一化后还要引入γ\gammaγ和β\betaβ?4. Batch Norm训练和测试的区别5. 为什么Dropout后需要Rescale?6. dropout与Batch Norm联合使用会产生哪些问题?7. 如何减轻该状况?1. 为什么训练时要保证每层的方差一致?每层的方差保持一致可以减缓梯度消失或爆炸。简单的说,神经网络的误差反向传播,忽略激活函数的偏导数时,相当于自后

2021-05-21 16:56:55 1024

原创 详解keras中的Mask机制

文章目录一. Mask背景1.2 例子11.2 例子2二. 原理三. 方式3.1 配置keras.layers.Embedding 层3.2 添加keras.layers.Masking层3.3 自定义一. Mask背景在NLP中,mask使用最为常见。在NLP中,许多句子都有着不同的长度,我们往往需要按照一定的长度, 对句子进行填补和截取操作。 一般使用keras.preprocessing.sequence包中的pad_sequences方法, 在句子前面或者后面补0. 但是这些零是我们不需要的,

2021-04-08 21:14:02 3816 1

原创 机器学习中常见的编码形式

文章目录一. 常见的特征类型二. 编码2.1 序号编码(Ordinal Encoding)2.2独热编码(One-hot Encoding)2.3 标签编码 (Label Encoding)2.4 频数编码(Frequency Encoding/Count Encoding)2.5 目标编码(Target Encoding)一. 常见的特征类型一般特征可以分为两大类特征,连续型和离散型特征。而离散型特征既有是数值型的,也有类别型特征。例如性别(男、女)、成绩等级(A、B、C)等等。连续型特征的原始形态就

2021-04-05 15:15:24 4731 5

原创 Python的map和reduce函数最全解析

文章目录一. Map函数原理二. Reduce函数原理一. Map函数原理map()方法会将一个函数f(x)映射到序列的每一个元素上,生成新序列,包含所有函数返回值。再上图的例子中,函数f(x)=x2f(x)=x^2f(x)=x2将序列[1,2,3,4,5,6,7,8,9][1,2,3,4,5,6,7,8,9][1,2,3,4,5,6,7,8,9]映射到[1,4,9,16,25,36,49,64,81][1,4,9,16,25,36,49,64,81][1,4,9,16,25,36,49,64,81

2021-03-28 10:46:57 796

原创 Leetcode 206.反转链表(迭代与递归)最全解析

题目:解题思路:反转箭头指向即可cur设置为第一个元素1,pre为cur前的元素设置为None先用temp保存下来cur的下一个元素temp = cur.next再将cur的箭头(cur.next)指向pre:cur.next = prepre与cur都向后移循环下去即可class ListNode: def __init__(self, x): self.val = x self.next = Noneclass Solution:

2021-03-08 14:48:09 241

原创 Keras中layers.add()与layers.concatenate()的区别

文章目录一. tf.keras.layers.add()二. tf.keras.layers.concatenate()一. tf.keras.layers.add()只进行相应元素的相加,H,W,C都不改变例子:from keras.models import Modelfrom keras.layers import Dense,add,Inputfrom keras.layers.merge import concatenatefrom keras.utils.vis_utils imp

2021-01-21 17:10:51 9739

原创 Keras的两种模型:序列模型(Sequential)和通用模型(Model)

文章目录一.序列模型(Sequential)1.1 list构造1.2 add()构造二.通用模型(Model)Keras中有两种不同的模型:序列模型(Sequential)和通用模型(Model)一.序列模型(Sequential)序列模型的两种创建方式:list构造和add()构造1.1 list构造通过向Sequential模型传递一个layer的list来构造该模型:from keras.models import Sequentialfrom keras.layers import

2021-01-20 23:39:24 2449

原创 Keras中dense层原理及用法解释

文章目录一.全连接层Fully Connection作用二.API解释2.1 示例1:dense层为输入层2.2 示例2:dense层为中间层2.3 示例3:dense层为输出层三.实现过程四.数学解释一.全连接层Fully Connection作用全连接的核心操作就是矩阵向量乘积y=W∗xy =W*xy=W∗x本质就是由一个特征空间线性变换到另一个特征空间。因此,dense层的目的是将前面提取的特征,在dense经过非线性变化,提取这些特征之间的关联,最后映射到输出空间上。如下3x3x5的数据,

2021-01-20 23:11:05 106429 3

原创 神经网络中batch_size,epoch,batch,iteration/step的区别

我们知道,简单来说,深度学习就是很深很深的神经网络(这一说法并不准确,但姑且让我们这么说),也就是说,有很多层,每层可能有很多神经元,结构也可能比较复杂。然后相应的,数据集也可能比较大。那跑一遍(迭代)会比较慢。所以人们就想出了一个变通的办法,就是每次只使用数据集中的部分样本,这个数目就称为batch_size.虽然只使用了部分样本,但很多时候已经足以优化权重,降低损失函数了。这样训练效率高很多,训练时间也能缩短不少。不过这样一来,一次迭代就不一定完整跑遍数据集中的所有样本了。那在比较的时候,就不太方便

2020-11-08 13:19:54 1525

原创 Python for循环前有函数

def add(a): return a+1 def main(): list = [1,2,3,4,5] xs = [add(a) for a in list] print(xs) if __name__ == '__main__': main()Ouput:[2, 3, 4, 5, 6]先执行for a in list,将每个遍历出的a放到add()函数内返回出所有经过add()函数后的值用法:所有值转换为字符串:test1

2020-11-07 17:32:44 1450

原创 python中类名(..)(..)的情况及_call_函数解析

文章目录1.类名(..)(..):2. `__call__()`函数又有什么用呢?3.举例:4. 总结上一篇我们讲了python中函数后面双括号的情况,本文该讲类名(…)(…)的情况。1.类名(…)(…):举例说明:class test(): def __init__(self,name,age): self.name = name self.age = age def __call__(self, gender, *args, **kwargs):

2020-11-05 01:16:23 1395

原创 python中函数后有两个括号(双括号)

def test_two_parenthesis(): def add(a,b): print(a+b) return adddef main(): a = 1 b = 2 test_two_parenthesis()(a, b) if __name__ == '__main__': main()Output: 3在main()函数中出现了函数后有两个括号的情况:test_two_parenthesis()(a, b)。表示

2020-11-05 00:12:25 7319 5

原创 python中LabelEncoder和OneHotEncoder处理数据

在处理数据时,一些变量的值是非数值型的,如中文或者英文等,在python中,很多时候,上述的数据类型是不能带入模型的,这就需要我们进行处理。常见的处理方式有两种:Onehot Encoding:即sklearn.preprocessing中的OneHotEncoder。简单来说OneHotEncoder用于将表示分类的数据扩维:LabelEncoder:即sklearn.preprocessing中的LabelEncoder。简单来说 LabelEncoder 是对不连续的数字或者文本进行编号O

2020-11-04 17:38:28 924

原创 ReLu及其变体如何解决非线性问题

我们知道线性方程可以做到,将一个平面划分成两个:线性函数−5−2∗x+y-5-2*x +y−5−2∗x+y将一个平面分为两部分,使用Relu后,分类边界不再是横穿x-y位置的直线。将x轴以下的部分切掉,从而得到上面右侧图中所示的角度区域。我们加入了四个relu函数,最终的输出是通过应用一个线性模型将所有这些角区域加到一起来构建的,看起来就像是平面折叠了一样。下面显示了这样一个输出决策区域的示例:现在可以想象构建一个有20 ~ 30 Relus的网络,并得到如下所示的分类边界:所以虽然ReLu

2020-07-27 00:48:06 1254 1

原创 机器学习中的鲁棒性

机器学习算法鲁棒性并没有严格的量化的定义。鲁棒性,robustness,顾名思义,就是健壮的意思。一个人健壮,就是小毛小病,不碍事;不健壮,就是病来如山倒。一个人健壮,就是晴天好,雨天好,冬天好,夏天好,不会突然莫名其妙地不舒服了。机器学习模型的鲁棒性主要是两个方面:小毛小病可以看作是数据中的错误点、或者误差。难免的,训练集中常常有些数据是有错位的,类似的,预测样本中也有可能有一些错误。一个具有鲁棒性的机器学习模型能够不被这些训练集中的错误数据影响,依然能绕过浮云看本质。常常训练样本和预测样

2020-07-27 00:04:13 10272

原创 交叉熵损失函数整理

文章目录一.交叉熵函数的由来(推导)二.交叉熵函数直观理解三.交叉熵函数求导3.1Sigmoid + Cross-entropy3.2SoftMax + Cross-entropy四.交叉熵与SoftMax函数一.交叉熵函数的由来(推导)我们一共有m组已知样本, (x(i),y(i))(x^{(i)},y^{(i)})(x(i),y(i))表示第i组数据及其对应的类别标记, 其中x(i)=(1,x1i,x2i,x3i…xpi)x^{(i)} = (1, x^{i}_1,x^{i}_2,x^{i}_3…x

2020-07-26 18:44:02 3853

原创 多种梯度下降变体的对比:Batch gradient descent、Mini-batch gradient descent 和 stochastic gradient descent

文章目录一. 批量梯度下降(Batch gradient descent)二. 随机梯度下降法(Stochastic Gradient Descent)一. 批量梯度下降(Batch gradient descent)批量梯度下降(Batch gradient descent),是梯度下降法最常用的形式,具体做法也就是在更新参数时使用所有的样本来进行更新。θ=θ−η⋅∇θJ(θ) θ = θ − η · ∇θJ(θ) θ=θ−η⋅∇θJ(θ)由于我们需要计算整个数据集的梯度以仅执行一次更新,因此批量

2020-07-20 20:03:18 601

原创 彻底弄懂高斯模糊,均值模糊和中值模糊

文章目录一.均值模糊1.什么是均值模糊2. 数字化图片演示3. 真实图片演示4. 补充:填充方式二.中值模糊1. 什么是中值模糊2. 数字化图片演示三.高斯模糊一.均值模糊1.什么是均值模糊均值模糊就是对图像进行算术平均值模糊,比如输入的卷积核维度是3x3,那么这个卷积核就是如图所示:[191919191919191919] \left[\begin{matrix} \frac{1}{9} & \frac{1}{9} & \frac{1}{9}\\ \frac{1}{

2020-07-18 16:58:46 5185

原创 计算机视觉之浅析RGB/HSV与inRange函数

文章目录1.RGB色彩空间2.HSV色彩空间3.由RGB色彩空间转化为HSV色彩空间1.RGB色彩空间RGB色彩空间源于使用阴极射线管的彩色电视,RGB分别代表三个基色(R-红色、G-绿色、B-蓝色),具体的色彩值由三个基色叠加而成。在图像处理中,我们往往使用向量表示色彩的值,如(0,0,0)表示黑色、(255, 255, 255)表示白色。其中,255表示色彩空间被量化成255个数,最高亮度值为255(255 = 2^8 - 1,即每个色彩通道用8位表示)。在这个色彩空间中,有256256256种颜色

2020-07-17 17:53:42 1088

原创 OpenCV VideoCapture

import cv2 as cv capture = cv.VideoCapture(0)while True: ret,frame = capture.read() cv.imshow("Video",frame) c = cv.waitKey(1) if c == 27: break capture.release() cv.destroyAllWindows()VideoCapture()中参数是0,表示打开笔记本的内置摄像头cap.read()按帧读取视频,re

2020-07-17 12:11:08 1175

原创 __name__ == ‘__main__‘

对于很多编程语言来说,程序都必须要有一个入口,比如C,C++,以及完全面向对象的编程语言Java,C#等。如果你接触过这些语言,对于程序入口这个概念应该很好理解,C,C++都需要有一个main函数作为程序的入口,也就是程序的运行会从main函数开始。同样,Java,C#必须要有一个包含Main方法的主类,作为程序入口。但是python是脚本语言,不像编译型语言那样先将程序编译成二进制再运行,而是动态的从头到尾逐行解释运行,也就是从脚本第一行开始运行,没有统一的入口。因此,一个Python源码文件(.py

2020-07-06 23:19:46 173

原创 Python中Argparse全面解析

文章目录一.基本结构二.创建对象参数三.添加参数3.1name or flags3.1.1定位参数3.1.2可选参数参数3.2 default3.3 required3.4 type3.5 choices3.6 action3.7 help3.8 nargs3.9 metavar4.0 dest四.解析参数相信很多小伙伴在terminal里使用过这一行命令python --version来查询过Python的版本信息,或者使用python --help来查询帮助信息,这就是使用了python中的参数解析(

2020-07-06 18:16:53 4112 1

原创 对反向传播中梯度消失的全面理解

文章目录一.神经网络如何传播?1.1 正向传播1.2 反向传播二.梯度消失如何产生?2.1 数学角度2.2 激活函数角度三.结论一.神经网络如何传播?1.1 正向传播如下图所示,两个输入值X1X_1X1​和X2X_2X2​,以第一层的第一个神经元f1(e)f_1(e)f1​(e)为例。正向传播先经过线性变换e=x1w1+x2w2e=x_1w_1+x_2w_2e=x1​w1​+x2​w2​,...

2020-05-05 04:11:09 1809

原创 一文弄懂为什么深度学习需要激活函数

文章目录一.神经网络基本结构一.神经网络基本结构

2020-05-01 23:05:15 1429

原创 操作系统OS—中断机制全面解析

文章目录一.如何读写数据二.最简单的控制IO方法三.中断机制 Interrupt四.驱动中断I/O*建议先阅读文章【操作系统OS-大型计算机系统】,更容易理解中断机制一.如何读写数据CPU如何与IO设备之间协调来读取数据:每个设备控制器(Device Controller)负责一个特殊的设备每个设备控制器(Device Controller)有一个自己的缓冲区(Buffer)I/O...

2019-12-12 08:08:55 1956

原创 操作系统OS—大型计算机系统Mainframe system

文章目录一.大型计算机系统(Mainframe system)1.Batch System(批处理任务)2.Multi-programming3.Time-shared二.计算机系统结构一.大型计算机系统(Mainframe system)大型计算机,顾名思义就是最早期体积很大的计算机。现在的大型计算机用来指专门做某件事的主机,比如IBM的主机,银行的主机,医院的主机等等。主机计算机一词是...

2019-12-11 07:28:40 1682

原创 Linux Kernel Programming(1)

文章目录1.1什么是Kernel Module?1.2关于Kernel的基本操作2.1 Hello World : 最简单的Module2.2 编译Kernel Modules2.2.1如何编写makefile文件1.1什么是Kernel Module?内核模块是可以按需加载或卸载的内核代码,可以不重启系统就扩充内核的功能。例如,一种内核模块叫做设备驱动程序(Device driver),它允...

2019-11-22 08:01:32 783

原创 C语言--多线程学习笔记

文章目录一.线程与进程二.并发与并行三.C语言中的线程3.1创建线程 pthread_create3.2结束线程 pthread_exit3.3线程等待 pthread_join四.结构体与多线程五.多线程的同步与互斥一.线程与进程二.并发与并行三.C语言中的线程我们先来看一下线程最基础的三个方法:3.1创建线程 pthread_createpthread_create(pthread...

2019-11-01 08:20:47 635 1

原创 Haskell-- concatMap详解

经过了几次Haskell的作业后,发现concatMap对于list的作用极其强大,下面就具体讲解一下concatMap的作用:文章目录1.concatMap定义及类型:2.Map定义及类型:3.举例说明1.concatMap定义及类型:Map a function over a list and concatenate the results.将函数映射到列表并连接结果concatM...

2019-10-30 08:10:57 1064

原创 计算机中 空间局限性(Spatial Locality)与时间局限性(Temporal Locality)

空间和时间局部性描述了程序如何访问数据(或指令)的两个不同特征。定义:如果在时间上被引用的事物在空间上也接近(相邻的存储器地址,磁盘上的邻近扇区等),则引用序列被认为具有空间局部性(Spatial Locality)。如果对同一事物的访问在时间上聚集在一起,则该序列被称为具有时间局部性(Temporal Locality)。通俗而言:时间局部性就是被引用过一次的存储器位置在未来会被...

2019-10-16 05:29:29 9601

原创 Sidecar功能中--如何交换Ipad与Mac的位置

Mac新系统Catalina的正式上线,更强大的生态系统更是吸引眼球,其中的SIdecar随航功能使得iPad与Mac形成更强大的Apple生态链,使得Mac与ipad同时办公效率倍增。有的小伙伴可能会遇到这样的情况:想让Mac位于Ipad的右侧,鼠标从Mac左端移入Ipad屏幕。却只能鼠标从Mac右端移入Ipad屏幕。解决方案:(前提是要先打开sidecar功能,并连接iPad)左上角...

2019-10-15 05:06:25 2724

原创 Haskell--“$“在Haskell中的作用

$是可以代替括号的一种符号例如,下面的代码Prelude> take 1 $ filter even [1..10] [2]如果我们去掉$会怎么样呢?Prelude> take 1 filter even [1..10]<interactive>:3:1: error: • Couldn't match expected type ‘(Intege...

2019-10-13 04:49:22 1138

原创 Haskell--Tuples

Those are some lists:Prelude> [1,2][1,2]Prelude> [1,2,3][1,2,3]Hera are some tuples:Prelude> (1,2)(1,2)Prelude> (1,2,3)(1,2,3)Prelude> (1,2,3,4)(1,2,3,4)List and tupleThe...

2019-10-03 22:42:21 181

原创 Haskell—List comprehensions

part1.Prelude> [2^n | n <- [1..10]][2,4,8,16,32,64,128,256,512,1024]Prelude> [2^n | n <- [1..10],2^n >= 10, 2^n < 100][16,32,64]2^n: the expression for the elements of the re...

2019-10-03 22:24:57 185

原创 Java函数式编程-控制结构更具函数式风格

在看这篇文章前推荐阅读:《Java函数式编程之最细致的lambda表达式讲解》与《Java函数式编程之Java8四大函数接口》文章目录如何使标准的控制结构更具函数式风格?进阶一:进阶二:如何使标准的控制结构更具函数式风格?我们知道控制结构是命令式编程的主要构成部分,比如if…else、switch…case、for、while和do循环。这些都是命令式编程的本质。纯函数式的方法除了返回一个...

2019-08-20 21:51:28 330

原创 Java问题:”接口内部创建类“与”类内部创建接口“分别有什么用

两种形式,到底各自都有什么用处??class A { interface B {}}interface C { class D {}} 文章目录一.接口内部创建类1⃣️.用法12⃣️.用法2二.类内部创建接口一.接口内部创建类1⃣️.用法1如果一个类的功能与一个接口紧密相关,并且我们不打算在任何地方使用这个类,那么我们可以在接口中定义一个类。public int...

2019-08-19 17:47:27 599 1

转载 深入了解JVM—什么是虚拟机

我们都知道在 Windows 系统上一个软件包装包是 exe 后缀的,而这个软件包在苹果的 Mac OSX 系统上是无法安装的。类似地,Mac OSX 系统上软件安装包则是 dmg 后缀,同样无法在 Windows 系统上安装。为什么不同系统上的软件无法安装,这是因为操作系统底层的实现是不一样的。对于 Windows 系统来说,exe 后缀的软件代码最终编译成 Windows 系统能识别的机器码...

2019-08-16 16:27:31 135

原创 C语言fgets()与fputs()详解

文章目录fgets()与fputs()1⃣️fgets()优缺点:2⃣️fgets()返回值:3⃣️fgets()操作实例:3⃣️fgets()操作进阶:fgets()与fputs()fgets()函数的第二个参数指明了读入字符的最大数量。如果该参数为n,那么fgets函数将读入n-1个字符。如果fgets()函数读到一个换行符,会把它储存在字符串中。这点与gets不同,gets会丢弃换行符...

2019-08-12 18:43:39 19247 2

空空如也

空空如也

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

TA关注的人

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