电磁场与波的部分定理证明
电磁场与波的部分定理证明
最近在学习电磁场与波的时候,看到书上有些公式定理没给证明就直接在用,就尝试着推导了一下
关于1R的微分\frac{1}{R}的微分R1的微分
∇(1R)=−RR3\nabla(\frac{1}{R}) = -\frac{\pmb R}{R^3}
∇(R1)=−R3R
这个式子第一眼看过去好怪,一个标量求散度之后得到了一个矢量,所以想推导一下
推导过程如下所示
设位置矢量为R=r−r′,其中r=xex+yey+zez,r′=x′ex+y′ey+z′ez设位置矢量为\pmb R = \pmb r - \pmb r',其中\pmb r = xe_x + ye_y + ze_z,\pmb r' = x'e_x + y'e_y + z'e_z
设位置矢量为R=r−r′,其中r=xex+yey+zez,r′=x′ex+y′ey+z′ez
先推导∇R\pmb\nabla R∇R
∇R=∂R∂xex+∂R∂yey+∂R∂zez=x−x′(x−x′)2+(y−y′)2+(z−z′)2ex+y−y′(x−x ...
DSP学习
DSP汇编指令
在DSP编程时经常会使用到一些汇编指令
我们可以在DSP2833x_Device.h当中找到它们的定义
1234567#define EINT asm(" clrc INTM")#define DINT asm(" setc INTM")#define ERTM asm(" clrc DBGM")#define DRTM asm(" setc DBGM")#define EALLOW asm(" EALLOW")#define EDIS asm(" EDIS")#define ESTOP0 asm(" ESTOP0")
汇编指令
作用
EINT
打开中断
DINT
关闭中断
ERTM
使能调试事件
DRTM
禁止调试事件
EALLOW
解禁处于禁写状态的寄存器
EDIS
重新恢复禁止写入状态
ESTOP0
当仿真器连接时,若ESTOP0=1,则DSP运行到此处 ...
人工智能基础
无监督聚类分析
聚类指的是给定一组无标签样本,按照一定的准则将其划分为不同的样本簇,其中每个簇的样本都具有相似的属性和特征,而簇间的样本具有明显的差异
聚类≠\neq=分类,分类是有监督的,给定标签和数据类别条件下的学习,而聚类是面向无监督学习的,是人工参与度极低的一种学习方法
聚类中样本距离的计算方法
设样本x\pmb{x}x和y\pmb{y}y之间的距离d(x,y)d(x,y)d(x,y)一般满足以下四项基本性质:
非负性:d(x,y)≥0d(x,y) \ge 0d(x,y)≥0
自反性:d(x,y)=0d(x,y) = 0d(x,y)=0,当且仅当x=yx = yx=y
对称性:d(x,y)=d(y,x)d(x,y) = d(y,x)d(x,y)=d(y,x)
三角不等式:d(x,y)≤d(x,z)+d(z,y)d(x,y) \le d(x,z) + d(z,y)d(x,y)≤d(x,z)+d(z,y)
下面有一些常用的计算距离的方法
曼哈顿距离
曼哈顿距离在二维空间表示为
d(x,y)=∣x1−y1∣+∣x2−y2∣d(x,y) = |x_1 - y_1| + ...
Pytorch数据并行处理
在这个教程中,我们将学习如何用DataParallel来使用多 GPU
通过 PyTorch 使用多个 GPU 非常简单。你可以将模型放在一个 GPU:
12device = torch.device("cuda: 0")model.to(device)
然后可以复制所有的张量到GPU上:
1mytensor = my_tensor.to(device)
请注意,调用my_tensor.to(device)返回一个GPU上的my_tensor副本,而不是重写my_tensor
你需要把它赋值给一个新的张量并在GPU上使用这个张量
在多GPU上执行正向和反向传播是自然而然的事。然而,PyTorch 默认将只是用一个GPU
你可以使用DataParallel让模型并行运行来轻易的在多个GPU上运行你的操作
1mytensor = net.to(device)
这是这篇教程背后的核心,我们接下来将更详细的介绍它
导入和参数
导入 PyTorch 模块和定义参数
12345678910import torchimport torch.nn as nnfrom torch ...
torch.nn入门
PyTorch 提供设计优雅的模块和类torch.nn,torch.optim,Dataset 和 DataLoader来帮助您创建和训练神经网络
为了充分利用它们的功能并针对您的问题对其进行自定义,您需要真正地了解他们的工作
为了建立这种理解,我们将首先在 MNIST 数据集上训练基本神经网络,而无需使用这些模型的任何功能; 我们最初只会使用最基本的 PyTorch 张量功能。
然后,我们将一次从torch.nn,torch.optim,Dataset或DataLoader中逐个添加一个功能,确切地显示每个功能,以及如何使代码更简洁或更灵活
本教程假定您已经安装了 PyTorch,并且熟悉张量操作的基础知识
(如果您熟悉 Numpy 数组操作,将会发现此处使用的 PyTorch 张量操作几乎相同)
MNIST 数据设置
我们将使用经典的MNIST数据集,该数据集由手绘数字的黑白图像组成(介于 0 到 9 之间)
我们将使用pathlib 处理路径(Python 3 标准库的一部分),并下载数据集
我们只会在使用模块时才导入它们,因此您可以确切地看到正在使用模块的每个细节
1234 ...
生活已经够累了,开心一点
9e956e92eff64aa8bfafdb47fa74e12d5c21f63504d9bb5ca5b72f917da5aff890d3f8440805b62426bfda0746c32874a8187c38c744d3193b5bdbad6fd40ebeab9b2f8f76c030c8aa932df94e17d93067c173084422766cc9025718981c2480efe59b079e3d74aefa65cc86e48e196e90d4b8691dc73f5edda51fb8ae6c874e99a7bfa17257045cd5d06a9bab59a50f529a73e03d8923afa1f09ccda3b551bdf386946eab0bb5ae7d02e530503c43eafab3fd36a5424b2f022d4d2eaf545aa370f96a27510f5f113570a0f00e10d87b3e0347a9f67ff3559150fb2e2d11b6289222d43e0fe0340cbbad5a49b9c32f76bd98644e79bb83fc5 ...
Pytorch训练分类器
目前为止,我们已经看到了如何定义网络,计算损失,并更新网络的权重。所以你现在可能会想
数据应该怎么办呢?
通常来说,当必须处理图像、文本、音频或视频数据时,可以使用python标准库将数据加载到numpy数组里。然后将这个数组转化成torch.*Tensor
对于图片,有 Pillow,OpenCV 等包可以使用
对于音频,有 scipy 和 librosa 等包可以使用
对于文本,不管是原生 python 的或者是基于 Cython 的文本,可以使用 NLTK 和SpaCy
特别对于视觉方面,我们有一个包,名字叫torchvision,其中包含了针对Imagenet、CIFAR10、MNIST 等常用数据集的数据加载器 (data loaders),还有对图像数据转换的操作,即torchvision.datasets和torch.utils.data.DataLoader
这提供了极大的便利,可以避免编写样板代码。
在这个教程中,我们将使用CIFAR10数据集,它有如下的分类:“飞机”,“汽车”,“鸟”,“猫”,“鹿”,“狗”,“青蛙”,“马”,“船”,“卡车”等。在CIFA ...
Pytorch DQN入门
本教程介绍了如何使用 PyTorch 在OpenAI Gym上的 CartPole-v0 任务上训练深度 Q-learning(DQN)智能体
任务
智能体必须在两个动作之间做出决定-向左或向右移动小车来使其上的杆保持直立
您可以在Gym 网站上找到具有各种算法和可视化的官方排行榜
当智能体观察环境的当前状态并选择一个动作时,环境将转换到新状态,并且还会返回表示该动作结果的奖励
在此任务中,每前进一个时间步,奖励为+1,并且如果杆子掉落得太远或小车离中心的距离超过2.4个单位,则对局终止
这意味着性能更好的操作方案将持续更长的时间,从而积累更大的回报
Cartpole任务的设计为智能点输入代表环境状态(位置、速度等)的4个实际值
但是,神经网络可以完全通过查看场景来解决任务,因此我们将以小车为中心的一部分屏幕作为输入
因此,我们的结果无法直接与官方排行榜上的结果进行比较-我们的任务更加艰巨
不幸的是,这确实减慢了训练速度,因为我们必须渲染所有帧
严格地说,我们将以当前帧和前一个帧之间的差异来呈现状态
这将允许代理从一张图像中考虑杆子的速度
软件包
首先,让我们导入所需的软件包 ...
Markdown数学符号整理
Markdown常用希腊字母
符号
代码
符号
代码
α\alphaα
\alpha
A\AlphaA
\Alpha
β\betaβ
\beta
B\BetaB
\Beta
γ\gammaγ
\gamma
Γ\GammaΓ
\Gamma
δ\deltaδ
\delta
Δ\DeltaΔ
\Delta
ϵ\epsilonϵ
\epsilon
E\EpsilonE
\Epsilon
ζ\zetaζ
\zeta
Z\ZetaZ
\Zeta
η\etaη
\eta
H\EtaH
\Eta
θ\thetaθ
\theta
Θ\ThetaΘ
\Theta
ι\iotaι
\iota
I\IotaI
\Iota
κ\kappaκ
\kappa
K\KappaK
\Kappa
λ\lambdaλ
\lambda
Λ\LambdaΛ
\Lambda
μ\muμ
\mu
M\MuM
\Mu
ν\nuν
\nu
N\NuN
\Nu
ξ\xiξ
\xi
Ξ\XiΞ
\Xi
ο\omicronο
\omicron
O\OmicronO
\O ...
信号与系统知识点整理
LTI系统
基本信号分类
基本连续时间信号
指数信号
x(t)=Ceatx(t) = Ce^{at}
x(t)=Ceat
特殊形式:x(t)=ejω0t特殊形式:x(t) = e^{j\omega_0t}
特殊形式:x(t)=ejω0t
正弦信号
x(t)=Acos(ω0+ϕ)x(t) = A\cos(\omega_0 + \phi)
x(t)=Acos(ω0+ϕ)
单位冲激信号
{δ(t)={0,t≠0∞,t=0∫−∞∞δ(t)dt=1\begin{cases}\delta(t) = \begin{cases}0,t\neq 0 \\ \infty,t = 0 \end{cases}\\ \\ \int^\infty_{-\infty} \delta(t)dt = 1 \end{cases}
⎩⎨⎧δ(t)={0,t=0∞,t=0∫−∞∞δ(t)dt=1
单位阶跃信号
u(t)={0,t<01,t>0u(t) = \begin{cases}0,t < 0 \\ 1,t > 0\end{cases}
u(t)={0,t< ...