简单的EMA
方法说明
指数移动平均方法,基于近期的数据更高权重的平均方法。
对于n个数据[θ1,θ2,…,θn][\theta_1, \theta_2, \dots, \theta_n][θ1,θ2,…,θn]
普通的平均数为:vˉ=1n∑i=1nθi\bar{v} = \frac{1}{n}\sum_{i=1}^n\theta_ivˉ=n1∑i=1nθi
EMA为:vt=β⋅vt−1+(1−β)⋅θtv_t=\beta\cdot v_{t-1}+(1-\beta)\cdot\theta_tvt=β⋅vt−1+(1−β)⋅θt,其中vtv_tvt代表前ttt条的平均值(v0=0v_0=0v0=0),β\betaβ是加权权重值,一般为0.9到0.999,反正就是非常的大。
在深度学习的梯度下降过程中,θt\theta_tθt是模型在ttt时刻的权重,vtv_tvt是ttt时刻的影子权重,这个影子权重不会参加训练,但是会被一直维护,而是用来进行优化。在模型训练的最后阶段,由于它在最优点抖动,所以一般取影子权重的平均就好了。
实现代码
下面是一个简单的实现代码:
12345 ...
简单的对比学习
学习目的
区分相似和不相似的数据点,学习数据的表示,以捕捉不同数据点之间的基本结构和关系。
数据组成
基本的对比学习框架包括选择一个数据样本,被称为“锚点”,一个与锚点属于相同分布的数据点,称为“正”样本,以及一个属于不同分布的数据点,成为“负”样本。学习的目标是在潜在空间中最小化锚点和正样本之间的距离,同时最大化锚点和负样本之间的距离。
损失函数
Max Margin Contrastive Loss
若不属于同一个分布,则最大化样本之间的距离,若属于同一分布,则最小化它们之间的距离。
Lconstrastive(si,sj,θ)=1[yi=yj]⋅∣∣θ(si)−θ(sj)∣∣22+1[yi≠yj]⋅max(0,ϵ−∣∣θ(si)−θ(sj)∣∣22)L_{\text{constrastive}}(s_i, s_j, \theta) = \mathbb{1}[y_i=y_j]\cdot||\theta(s_i)-\theta(s_j)||^2_2+\mathbb{1}[y_i\neq y_j]\cdot\max(0, \epsilon-||\theta(s_i)-\theta( ...
Git使用指北
创建与提交
在当前文件夹创立一个版本库
1git init
把文件添加到暂存区
1git add [文件名或文件路径]
把添加到暂存区中的文件提交到版本库
1git commit -m "[提交说明]"
版本管理
更新和回退的操作是一样的,其实都是维护一个HEAD的指针指向哪一个commit
查看版本记录
12git log # 显示提交日志git log --pretty=oneline # 用一行显示提交日志
版本回退
--hard代表回到上次提交时的状态,文件被修改(修改暂存区,文件)
--soft代表回到上次提交后的状态,暂存区和文件均未被修改(都不修改)
--mixed或不添加参数代表回到上次提交后的状态,暂存区与指定版本相同,文件未被修改(修改暂存区,不修改文件)
123git reset --hard HEAD^ # 回退对上一个版本的已提交状态git reset --hard HEAD^^ # 回退到上两个版本的已提交状态git reset --hard HEAD~100 # 回退到100 ...
wsl设置代理
设置代理
为保证能够正确的设置代理,以Clash为例,需要开启Windows端的Allow LAN选项,并记住Clash此时的端口号。
然后,在~/.bashrc文件的末尾中添加如下内容:
1234hostip=$(cat /etc/resolv.conf |grep -oP '(?<=nameserver\ ).*')export https_proxy="http://${hostip}:7890"export http_proxy="http://${hostip}:7890"export all_proxy="socks5://${hostip}:7890"
这里的7890是Clash的默认端口号,若有更改,需要相应的修改。
第一次使用时,需要使用source ~/.bashrc命令使配置生效。在后续的使用中,每次登录WSL都会自动设置代理,无需进一步操作。
git设置代理
还是比较简单的,使用git config命令即可。
设置代理
12git config --global http.proxy http://localhost:<port>git config --global https.proxy http://localhost:<port>
这里的<port>是代理服务器的端口号。以Clash为例,端口号默认为7890。若存在冲突,也可以查看自己使用的端口号是多少。
取消代理
12git config --global --unset http.proxygit config --global --unset https.proxy
物联网技术与应用笔记
一些感想
一门概述性质的课程,要难的话还是能够很难的,但是好在最后考试的时候并没有特别难为人。
没有什么特别指定的教材,主要掌握物联网的四层架构就好了。
PDF预览
下载
如果上述的PDF框架无法进行预览调用,也可以直接下载其PDF源文件物联网技术与应用.pdf。
除了PDF文件外,这里还提供了可供修改的XMind源文件物联网技术与应用.xmind,点击链接即可下载。
舒适写作大法
舒适写作大法
省流概览
一篇可能会有些长的真正博客文章,介绍一下天天写报告的我在与学校报告的斗法中有些怎样的小方法、小工具和小技巧。上面的几个工具是所用到的软件或语言,如果你全部熟的不能再熟了,其实还是可以批判性地看看下面的文章的。
写作和排版,以及一些关于字体的小知识
MS Word的一些小Tricks,Word从入门到放弃
用PPT画画?是的!
Markdown写作体验以及样式上的小Tricks
怎么从Markdown到LaTeX(文章没写好,但是工具md2tex以及模板SYSU-Report-LaTeX已经写好了)
非常新颖小众的Typst(文章没写好,但是模板SYSU-Report-Typst已经写好了)
写作和排版
在介绍下面的内容前,我觉得有必要介绍一下写作和排版的区别。
正如你初高中时期在纸上写作文一样,你写的东西就叫做写作。那考试的格子框住了你每个字所在的位置,你的任务就是把脑袋里的每一个字规规矩矩的放进去就好。转移到电脑上,最为纯粹而简单的写作就是在txt文件上一 ...
智能机器人技术笔记
一些感想
这门课上的有点乱,也没有一本固定的参考书目,但是核心还是一个坐标系的变换。方法分为了传统的D-H方法以及目前更为常用的旋量方法。课程难度不是特别大,但是比较折磨人,尤其是D-H方法计算时候的一堆参数,以及矩阵的一堆变换,很明显要线性代数学的不错才可以。
PDF预览
下载
如果上述的PDF框架无法进行预览调用,也可以直接下载其PDF源文件微机原理.pdf。
除了PDF文件外,这里还提供了可供修改的XMind源文件微机原理.xmind,点击链接即可下载。
注意力评分函数
最近在一个一个写《动手学深度学习》,这是一篇我觉得我加入了许多补充阐释的Notebook。学了多少我也已经放进去Github里面去了,里面都不是原文照抄的说明,还是有一点价值的。。。
10.3 注意力评分函数
下图以实现注意力框架。
下面使用注意力汇聚函数fff表示成值的加权和。
f(q,(k1,v1),…,(km,vm))=∑i=1nα(q,ki)vi∈Rv\bm{f(q,(k_1,v_1),\dots,(k_m,v_m))=\sum_{i=1}^n\alpha(q,k_i)v_i}\in\mathbb{R}^v
f(q,(k1,v1),…,(km,vm))=i=1∑nα(q,ki)vi∈Rv
本节会介绍两个流行的评分函数。
1234import mathimport torchfrom torch import nnfrom d2l import torch as d2l
10.3.1 遮蔽softmax操作
也就是指定一个有效的序列长度,以便在计算softmax时候过滤掉超出指定范围的位置。
12345678910111213141516#@savedef mas ...
基于JMAG的表贴式三项永磁同步电机仿真分析
基于JMAG的表贴式三项永磁同步电机仿真分析
我也不是电机专业的学生,我的JMAG也不是特别会用,放上一些公式的目的还是为了显得有一点的知识含量,不过怎么说,还是水平有点次的,出错的可能性不小,还请各位大佬原谅!
概述
JMAG是由日本公司JRI Solutions Ltd.开发的一款计算机辅助工程(CAE)软件,专门用句电磁场仿真和电磁设备设计。其主要功能是通过有限元方法(Finite Element Method, FEM)对电磁场进行数值求解,它可以模拟和分析各种电磁现象,例如电机、发电机、变压器、传感器、电磁阀等电磁设备的性能和行为。JMAG允许用户创建复杂的三维电磁场模型,并允许自定义材料属性、几何形状和边界条件,并设置设当的电磁激励。此外,JMAG可以模拟电磁设备的性能,如电机转矩、发电输出功率等等,为设计进行参数的优化调整,改进设备性能。JMAG还提供了强大 ...