自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 资源 (4)
  • 收藏
  • 关注

原创 pytorch转置卷积(ConvTranspose)详解

说明由于最开始接触卷积是通过滑窗的方式了解卷积的计算过程,所以在接触转置卷积时很蒙圈。实际上抛开滑窗的计算过程,用矩阵乘法实现卷积,则理解转置卷积就极其简单了。用矩阵乘法实现卷积这里用二维卷积来举例,为方便观察,把batch size和输入输出通道数都设为1。首先从最简单的情况开始,stride=[1, 1],padding=[0, 0]。此时,如果我们输入4*4的图片,则显然输出尺寸是2*2,如下图。(以下很多图片来自网络,忘记是哪里截取的了,抱歉不能给出引用链接,如果后续获知,会给补上)。

2021-01-24 16:50:39 12418 3

原创 Transformer(self attention)超详解&示例代码

说明attention机制(注意力机制)有效解决了RNN网络对长序列编码效果差的问题。但是attention机制是对RNN网络编码后的特征序列进行打分,如果输入序列长度是30(即输入30个连续的原始特征),则RNN网络会编码出30个编码后的特征。在解码时,每解码一次,都会对这30个编码后的特征进行打分求和,结果作为输入传给解码器。既然每次都是对全部编码后的特征进行打分,即每次解码都使用了全部信息,那么可不可以不使用编码后的特征,直接对原始特征进行打分呢,答案是可以的,即self attention。

2020-09-28 13:40:33 11887 2

原创 pytorch优化器详解:RMSProp

说明模型每次反向传导都会给各个可学习参数p计算出一个偏导数,用于更新对应的参数p。通常偏导数不会直接作用到对应的可学习参数p上,而是通过优化器做一下处理,得到一个新的值,处理过程用函数F表示(不同的优化器对应的F的内容不同),即,然后和学习率lr一起用于更新可学习参数p,即。RMSProp原理假设损失函数是,即我们的目标是学习x和y的值,让Loss尽可能小。如下是绘制损失函数的代码以及绘制出的结果。注意这并不是一个U型槽,它有最小值点,这个点对应的x和y值就是学习的目标。import nu

2020-09-10 18:19:24 45636 14

原创 pytorch优化器详解:SGD

说明模型每次反向传导都会给各个可学习的参数p计算出一个偏导数,用于更新对应的参数p。通常偏导数不会直接作用到对应的参数p上,而是通过优化器做一下处理,得到一个新的值,计算过程用函数F表示(不同的优化器对应的F的内容不同),即,然后和学习率lr一起作用于可学习参数p,即。SGD参数SGD是随机梯度下降(stochastic gradient descent)的首字母。torch.optim.SGD(params, lr=<required paramet

2020-08-31 10:07:01 54221 11

原创 Python装饰器(@符号)的两种写法

目录什么是装饰器用函数做装饰器用类做装饰器内置函数__call__内置函数__enter__和__exit__装饰器实现当前装饰器问题和解决方案什么是装饰器装饰器是用来装饰函数的,装饰器本身可以是一个函数,也可以是一个类。用装饰器装饰一个函数func,就相当于把func作为参数传给装饰器,装饰器会返回一个新的函数func_new。然后调用func时,其实调用的是func_new。func_new的内容是我们自己定义的,通常是先执行一些自定义功能,然后调用func,最后在f

2020-08-17 17:50:31 7636 2

原创 pytorch LayerNorm参数详解,计算过程

说明LayerNorm中不会像BatchNorm那样跟踪统计全局的均值方差,因此train()和eval()对LayerNorm没有影响。LayerNorm参数torch.nn.LayerNorm( normalized_shape: Union[int, List[int], torch.Size], eps: float = 1e-05, elementwise_affine: bool = True)normalized_shape

2020-08-11 18:46:30 91562 23

原创 pytorch BatchNorm参数详解,计算过程

BatchNorm1d的参数:torch.nn.BatchNorm1d(num_features,eps=1e-05,momentum=0.1,affine=True,track_running_stats=True)

2020-08-09 21:35:19 34601 14

原创 STM32CUBE 定时器使用

STM32定时器使用

2022-04-17 18:47:05 1417

原创 信号与系统

线性卷积信号,系统脉冲响应,把信号输入到系统,即做卷积。从直观的时间顺序来看,时间轴从左往右,则应该在的左边,所以把反转一下来展示,如下是0时刻的情况,只有进入系统,则输出是。时间 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 信号 9 8 7 6 5 4 3 2 1 系统 ...

2021-02-25 15:19:13 420

原创 pytorch notes

DataLoadertorch.utils.data.DataLoader参数worker_init_fn创建DataLoader需要传入Dataset对象,如果在Dataset中实现了worker_init_fn成员函数,则把这个函数也一并传给DataLoader。不管传给DataLoader的num_workers等于几,Dataset的构造函数都只会被创建一次,即不同的worker是使用同一个Dataset;但是worker_init_fn会被调用num_workers次,用于初始化每

2021-02-22 10:30:52 5824

原创 用QT开发安卓应用

QT官网参考链接https://doc.qt.io/qt-5/android.html这里的指示是QT5的,和QT6有点不同。安装QT下载地址QT6:http://download.qt.io/archive/qt/6.0/6.0.0/single/安装后,会多出一个Qt文件夹,里边包含了Qt Creator.app和MaintenanceTool.app(用于维护QT开发环境,增删QT模块)等开发QT的工具和文件。安装的时候加入QT5.13.2。安装JDK安装JDK8即可,

2020-12-10 16:52:58 6773 1

原创 note-STM32(macOS)

CubeMX安装进入意法半导体官网https://www.st.com/content/st_com/en.html,搜索并下载CubeMX,其中包含SetupSTM32CubeMX-6.1.0.app。双击运行发现不可以,因为SetupSTM32CubeMX-6.1.0.app/Contents/MacOs/SetupSTM32CubeMX-6_1_0_macos没有执行全线,通过如下命令增加执行权限:chmod +x SetupSTM32CubeMX-6.1.0.app/Contents/

2020-12-08 18:57:44 763

原创 用朴素贝叶斯做垃圾邮件分类&demo

贝叶斯公式全概公式思路和实现最终的目标:对于一封邮件,分词得到,我们需要求出给定的条件下,这封邮件是垃圾邮件的概率,即求出。这里s表示是垃圾邮件(spam)。根据贝叶斯公式:根据全概公式,上式,这里n表示是正常邮件(noraml)。令先验概率,因此上式。根据朴素贝叶斯的独立假设,上式,记为式1。至此,我们很容易统计出和,比如全部的垃圾邮件共计1000封,其中出现800次,则。但是如果这样统计,由于词数量很多,代入式1后,就会有很多小于1的小数连乘,结果趋于零,无法计算

2020-11-12 19:32:19 1102

原创 Phase Sensitive Filter

如下图复数,由于,所以,这个就是复数的三角形式。这里r是模,是辅角。在讨论音频频域,即stft变换后的复数时,分别称为幅值和相位。根据欧拉公式(其中I是虚数符号),可得,这个公式可以方便地把幅值和相位还原回复数,进而做istft,将频域信息转回到时域,即wave波形。...

2020-11-04 16:40:43 2145

原创 Mac os使用笔记

说明系统版本:10.14.6论文保存Safari浏览器再google搜索到论文后,以网页形式打开pdf,将鼠标移动到中间下方位置,会出现四个按钮,点击第三个,以mac自带的软件“预览”打开,然后点击屏幕上方菜单栏的“文件”->“导出为PDF”。串口使用mac系统支持部分USB串口驱动,插入CH340串口后,可查看设备节点,可在/dev中搜索tty.usbserial字样的节点。使用自带的screen即可链接串口,如下命令。screen -L /dev/tty.us

2020-11-03 12:04:43 2551

原创 Mac os使用git,不依赖Xcode

mac自带了git,但是和xcode绑定了,不进行苹果app开发,不用xcode。安装git

2020-10-29 17:47:35 7648

原创 动态规划 Leetcode 32 Longest Valid Parentheses(最长有效括号)

题目给定一个只包含'('和')'的字符串,找出最长的包含有效括号的子串的长度。示例1:输入: "(()"输出: 2解释: 最长有效括号子串为"()"示例2:输入: ")()())"输出: 4解释: 最长有效括号子串为"()()"链接(中文版):https://leetcode-cn.com/problems/longest-valid-parentheses链接(英文版):https://leetcode.com/problems/longest-...

2020-10-13 20:13:21 4120

原创 pytorch中的乘法:mul matmul mm bmm @ *

目录mulbroadcastable运算符*matmul运算符@mmbmmmultorch.mul(a, b)如果a和b的shape相同,则对应元素相乘,输出的shape不变。如果a和b的shape不同,则两个shape必须是broadcastable的(见下文)。首先对a和b进行broadcast,之后a和b的shape就相同了,然后对应元素相乘,输出的shape是broadcast之后的。此外:a和b可以都是标量,此时就是普通标量乘法;a和b也可以一.

2020-10-10 16:19:46 7781

原创 动态规划 Leetcode 72 Edit Distance(编辑距离)

题目给你两个单词word1 和word2,请你计算出将word1转换成word2 所使用的最少操作数。你可以对一个单词进行如下三种操作:1. 插入一个字符2. 删除一个字符3. 替换一个字符示例1:输入:word1 = "horse", word2 = "ros"输出:3解释:horse -> rorse (将 'h' 替换为 'r')rorse -> rose (删除 'r')rose -> ros (删除 'e')...

2020-09-30 16:37:29 6477

原创 attention(注意力机制)原理和pytorch demo

说明demo源自吴恩达老师的课程,从tensorflow修改为pytorch,略有不同。RNN的局限性原始数据是一个字符串:friday august 17 2001,长度是21(包含空格),为了简便这里把每一个字符用一个onehot向量表示。于是数据转化为21个onehot向量。依次输入到一个RNN网络(可以是普通RNN、也可以是LSTM和GRU),最终得到一个向量(即RNN网络中的隐状态)。如果此时用这个向量作为整个字符串的编码信息直接去解码,很可能会丢失一些信息,尤其是输入更长的字符串时,

2020-09-21 23:54:45 13616 1

原创 pytorch优化器详解:Adam

说明模型每次反向传导都会给各个可学习参数p计算出一个偏导数,用于更新对应的参数p。通常偏导数不会直接作用到对应的可学习参数p上,而是通过优化器做一下处理,得到一个新的值,处理过程用函数F表示(不同的优化器对应的F的内容不同),即,然后和学习率lr一起用于更新可学习参数p,即。Adam是在RMSProp和AdaGrad的基础上改进的。...

2020-09-13 15:26:30 83033 8

原创 动态规划 Leetcode 174 Dungeon Game(地下城游戏)

题目一些恶魔抓住了公主(P)并将她关在了地下城的右下角。地下城是由M x N 个房间组成的二维网格。我们英勇的骑士(K)最初被安置在左上角的房间里,他必须穿过地下城并通过对抗恶魔来拯救公主。骑士的初始健康点数为一个正整数。如果他的健康点数在某一时刻降至 0 或以下,他会立即死亡。有些房间由恶魔守卫,因此骑士在进入这些房间时会失去健康点数(若房间里的值为负整数,则表示骑士将损失健康点数);其他房间要么是空的(房间里的值为 0),要么包含增加骑士健康点数的魔法球(若房间里的值为正整数,则表示骑士将.

2020-09-07 16:26:40 6872

原创 动态规划 Leetcode 1458 Max Dot Product of Two Subsequences(两个子序列的最大点积)

题目给你两个数组nums1和nums2。请你返回 nums1 和 nums2 中两个长度相同的 非空 子序列的最大点积。数组的非空子序列是通过删除原数组中某些元素(可能一个也不删除)后剩余数字组成的序列,但不能改变数字间相对顺序。比方说,[2,3,5]是[1,2,3,4,5]的一个子序列而[1,5,3]不是。链接(中文版):https://leetcode-cn.com/problems/max-dot-product-of-two-subsequences/链接(英...

2020-09-03 11:20:45 6809

原创 Python安装lmdb(不使用conda)

说明搜了一圈安装lmdb的方法,都是使用conda,官网也是使用conda安装。安装方法到https://pypi.org/搜索lmdb,点击下图。然后点击左侧Download files,选择最下边的lmdb-1.0.0.tar.gz下载源码(后续版本号可能会升级)。解压后进入目录,通过命令python3 setup.py install进行安装。几乎所有的Python库都可以用这种方法安装。...

2020-09-02 14:18:52 8568 1

原创 动态规划 Leetcode 312 Burst Balloons(戳气球)

题目有 n 个气球,编号为0 到 n-1,每个气球上都标有一个数字,这些数字存在数组nums中。现在要求你戳破所有的气球。如果你戳破气球 i ,就可以获得nums[left] * nums[i] * nums[right]个硬币。这里的left和right代表和i相邻的两个气球的序号。注意当你戳破了气球 i 后,气球left和气球right就变成了相邻的气球。求所能获得硬币的最大数量。说明:你可以假设nums[-1] = nums[n] = 1,但注意它们...

2020-08-30 00:55:52 7001

原创 STM32 USB声卡录音(USB Microphone),基于CubeMX修改

目录说明CubeMX配置PinoutClock ConfigurationConfiguration工程设置代码工程修改USB设备描述符数据传输配置说明CubeMX生成的USB Audio Device只支持播放,基于这个工程,修改为USB录音设备,只需要修改一个文件。CubeMX版本是4.21.0(STM32Cube V1.0),这个关系不大。CubeMX配置Pinout这里没有配置用于连接ADC的IIS和IIC接口,只用于demo,USB声卡最

2020-08-28 12:14:35 14661 11

原创 动态规划 Leetcode 322 Coin Change(零钱兑换)

题目给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回-1。链接(中文版):https://leetcode-cn.com/problems/coin-change链接(英文版):https://leetcode.com/problems/coin-change分析用动态规划解题就是求出递推公式,对于本题,想求总金额为amount的答案(记为Answer(amount)),需要使用.

2020-08-25 15:04:37 7031

原创 Arm Linux平台串口通信,二进制数据流

项目需要通过串口传输音频数据,由于音频数据包含不可显示的字节,属于二进制数据流,因此需要对linux端的串口读取程序设定一些参数。完整的串口配置代码如下:int fd = open("/dev/ttyACM1", O_RDWR | O_NOCTTY | O_NDELAY, 0); //打开串口设备节点if(fd <= 0){ return NULL;}set_config(fd, 3000000); //第二个参数是波特率tcflush(fd, TCIFLUSH);int

2020-08-11 16:10:42 7362

Serial.app.zip

macos上的串口工具,是个app文件,直接运行即可;可以自动枚举/dev/中的串口设备!

2020-11-03

platform-tools

适用于macos上的adb等绿色工具,来自安卓官网,

2020-11-03

git-completion.bash

git-completion.bash,用于补全git的命令,来自git源码目录,使用方法见博客:https://blog.csdn.net/weixin_39228381/article/details/109363881

2020-10-30

usbd_audio.c

基于CubeMX生成的USB Audio Device工程,将播放设备改为录音设备,所需文件,可在我的博客中搜索相关博客,即使用方法。

2020-08-28

空空如也

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

TA关注的人

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