标量场的梯度定义:某一点处,定义某一矢量,取最大的方向导数值和值取到的方向记作这点的梯度,记作grad u
$\nabla$ 是拉普拉斯算子(三维空间中的二阶偏导),定义为:
$$\nabla = (\frac{\partial}{\partial x} , \frac{\partial}{\partial y} , \frac{\partial}{\partial z})$$
矢量场的散度矢量线概念:矢量线上任一点的切线方向表征了该点矢量场的方向,矢量线的疏密表征了 矢量场的大小
tips:
• 矢量场中每一点只有唯一一条矢量线通过;• 矢量线充满整个矢量场所在空间;• 矢量场→矢量线 versus 标量场→等值面
矢量函数的通量(Flux)通量描述矢量场 $\mathbf{F}(x, y, z)$ 穿过某一曲面 $S$ 的“流量”,其数学定义为:
$$\Phi = \iint_S \mathbf{F} \cdot \mathrm{d}\mathbf{A}$$
其中:
$\mathbf{F}$ 为矢量场(如电场、流速场);
$\mathrm{d}\ma ...
卷积神经网络
对C*W*H的图像取C*W’*H’的小块,对每一个块进行卷积运算
每个通道在卷积的时候需要将patch里面的所有像素加权求和,包含patch里的所有信息
对于每一个输入的通道有一个卷积核,卷积后再相加
每次卷积只能得到一个特征图,如果需要M*W*H的图像需要M个Filter进行运算
构建一个四维的卷积层 M*N*W*H 的四维张量
随便说说看着老师按照一个个汇编语言的顺序来讲解,感觉自己的计算机学习的前途一片黯然
上课影响学习,不要怀疑自己
程序的机器及表示编译过程首先我们来复习一下一个高级语言程序在计算机中是如何被编译的。
举个栗子我们直接来看一段代码和其编译出来的汇编代码
12345long mult2(long, long);void multstore(long x, long y, long *dest) {long t = mult2(x, y);*dest = t;}
1234567multstore:pushq %rbxmovq %rdx,%rbxcall mult2movq %rax,(%rbx)popq %rbxret
看不懂也无所谓,我们只需要像小学生一样观察一下下面汇编语言的格式和特点就好。
稍微观察便可以知道,下面代码的格式均为 一个操作指令 后面跟着 1/2/3 个操作数
为什么是以这样的形式呢?其实是取决于处理器的运算方式。
程序计数器(PC, Program counter) - 存着下一条指令的地址,在 x86-64 中称 ...
Softmax Classifier
我们希望神经网络输出一个分布,所以我们希望输出的不同类别之间是有竞争性的
Softmax计算公式,保证每种分类大于零,且和为1
$$P(y = i) = \frac{e^{Z_i}}{\sum_{j=0}^{K-1} e^{Z_j}}, \quad i \in {0, \ldots, K-1}$$
CrossEntropyLoss()不需要做激活
将图像中的0-255的像素映射到0-1成为一个矩阵
transfroms convert the pil Image to Tensor
图像张量 多通道 CWH
Dataset and Dataloader123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869import torchimport numpy as npfrom torch.utils.data import DataLoader, Datasetimport matplotlib.pyplot as pltclass DiabetesDataset(Dataset): def __init__(self, filepath): xy = np.loadtxt(filepath, delimiter=',', dtype=np.float32) self.len = xy.shape[0] self.x_data = torch.from_numpy(xy[:, :-1]) self.y_data ...
矢量分析前言课程总述
场(静态)-> 麦克斯韦方程组 -> 波(时变)
从麦克斯韦方程组 得到 波动方程
从数学角度 本门课程就是解 麦克斯韦方程组 波动方程
引入矢量的意义
为复杂的物理现象提供紧凑的数学表达
便于直观的想象和运算变换
三重积
标量三重积:
$$A \cdot (B \times C) = B \cdot (C \times A) = C \cdot (A \times B)$$
显然,若三个矢量代表一个六面体的边,则标量三重积是它的体积。
2. 矢量三重积:
$$A \times (B \times C) = (A \cdot C)B - (A \cdot B)C$$
不满足结合律 但满足上述性质
坐标系
矢量函数及其微分在直角坐标下,
$$\frac{\partial \mathbf{F}}{\partial x} = \frac{\partial}{\partial x} (\mathbf{a}_x F_x + \mathbf{a}_y F_y + \mathbf{a}_z F_z)$$
$$= ...
Multiple Dimension Input
对于线性模型的处理,将每个维度的x输入值乘不同的权重再加上偏移量
对于PyTorch支持的函数,是直接作用于1*N矩阵中的每一个值的
尽量把运算转化为矩阵向量运算,可以利用GPU的并行计算的能力提高运算速度
Linear(8,1) 输入维度8维输出维度1维
Linear(8,2)-> Linear (2,1) 多层神经网络 矩阵是空间变换的函数
1234567891011121314151617181920212223242526272829303132333435363738394041424344import torch import numpy as npimport matplotlib.pyplot as pltxy = np.loadtxt('diabetes.csv.gz',delimiter=',',dtype=np.float32)x_data = torch.from_numpy(xy[:,:-1])y_data = torch.from_numpy(xy[:,[-1] ...
存储器存储器的校验汉明码的组成关于纠错理论的介绍,在此不多赘述。
假设需要检测的数据为n位,则我们需要添加的检验位的位数k需要满足下列公式,当理解了如何检验数据的过程后就能对这个公式有一定程度的理解。
$$2^{k} \geq n + k + 1$$
汉明码是如何检验的呢?我们直接从栗子开始看。
假设我们需要传输的数据为1011,根据上面的原理,我们需要三个校验位,我们将它们放在数据的1,2,4位上,分别叫做P1,P2,P3(现在不理解也没关系)
每个校验会负责不同位置的校验,在本例中 P1负责的是1 3 5 7号位置 P2负责2 3 6 7号位置 P3负责 4 5 6 7号位置 (现在不理解没关系)
通常采用偶校验的方式,我们先来介绍如何算出校验位
P1
P2
D1
P3
D2
D3
D4
?
?
1
?
0
1
1
偶校验其实就是,检验位负责的各位置之和要为偶数 所以 对于P1 P1+1+0+1 为偶 所以 P1 = 0
同理 算出P2 = 1 P3 = 0 于是 我们完整的汉明码即为 0110011
假设我们 接受到的数据为 011 ...
逻辑斯蒂回归1234567891011121314151617181920212223242526272829303132333435import torchimport torch.nn.functional as Fx_data= torch.Tensor([[1.0],[2.0],[3.0]])y_data= torch.Tensor([[0],[0],[1]])class Logistic_model(torch.nn.Module): def __init__(self): super(Logistic_model,self).__init__() self.linear = torch.nn.Linear(1,1) def forward(self,x): y_prev = F.sigmoid(self.linear(x)) return y_prev model = Logistic_model()criterion = torch.nn.BCELoss(reduction= 's ...
前言在开始这篇学习笔记之前,笔者先叠个甲(因为笔者感觉CSAPP这门课并不算很容易接受,虽然被普遍认为是计算机学科的基础)并且感觉这门课涉猎甚广多管闲事
另外,为什么计算机系统这门课被称为CSAPP呢,其实CSAPP的全称是ComputerSystem:A programer perspective (程序员视角下的计算机系统)虽然感觉大多数程序员并没有这个视角
闲话少说,开始追求力量
信息的储存十六进制表示法一个字节有8位,如果采用二进制来表示则过于冗长,如果使用十进制转化起来又十分麻烦,所以常用C语言中以0x开头来表示一个十六进制数,来表示16进制数值
寻址与储存在几乎所有的机器上,多字节对象都被存储为连续的字节序列,对象的地址为所使用字节中最小的地址。
例如,假设一个类型为int的变量x的地址为0x100,也就是说,地址表达式&x的值为0x100那么, (假设数据类型int为32位表示)x的4个字节将被存储在内存的0x100、0x101、0x102和0x103位置
虽然位置相同,但存储的时候却有两种规则——大端法和小端法
最低有效字节在最前面的方式,称为小端法(lit ...