![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
pytorch
文章平均质量分 81
主要记录学习使用pytorch时遇到的问题
皮皮宽
某家芯片公司的打工仔
展开
-
使用argparse改变python文件中的变量
使用argparse改变python文件中的变量这篇博客主要讲怎么改变python文件中的变量值假设我们有一个python程序,名为1.py, 我们想得到python程序里某个变量aada分别为1,5, 7时的运行结果。1.py :import argparseparser = argparse.ArgumentParser()parser.add_argument('-a', '--aada', type=int, default=100) #该变量default默认值为100,缩写为原创 2021-06-28 11:43:04 · 877 阅读 · 0 评论 -
pytorch下可训练分段函数的写法
pytorch下可训练分段函数的写法这篇博客主要讲如何写一个可训练求导的分段函数,并通过代码验证其可行性假设我们要实现这样一个分段函数:F(a)={+1a>2.50.25∗a+0.3750.5<a≤2.5a−0.5<a≤0.50.25∗a−0.375−2.5<a≤−0.5−1a≤−2.5 F(a)=\left\{\begin{array}{rcl}+1 & & {a > 2.5}\\0.25*a + 0.375 & & {0.原创 2021-06-24 11:58:40 · 3296 阅读 · 6 评论 -
ubuntu系统设置快捷指令
ubuntu系统设置快捷指令Ubuntu下进入spyder就感觉很麻烦,先进入目录anaconda3/bin,在激活环境,在进入spyder。每次都要输三条指令。这篇博客以打开软件spyder为例子,写如何在Ubuntu系统下设置快捷指令先打开环境变量文件vi ~/.bashrc刚进入时,默认进入命令行模式,因此需要先按 i 键,进入插入模式不进入插入模式的话,很难正常编辑插入想要设置的快捷指令alias command1='command2' 这样输入command1时,原创 2021-05-25 11:14:16 · 888 阅读 · 0 评论 -
python:flatten()参数详解
python:flatten()参数详解这篇博客主要写flatten()作用,及其参数的含义flatten()是对多维数据的降维函数。flatten(),默认缺省参数为0,也就是说flatten()和flatte(0)效果一样。python里的flatten(dim)表示,从第dim个维度开始展开,将后面的维度转化为一维.也就是说,只保留dim之前的维度,其他维度的数据全都挤在dim这一维。比如一个数据的维度是(S1,S2,S3.........,Sn)(S1,S2,S3........原创 2021-05-18 14:34:49 · 99315 阅读 · 28 评论 -
PyTorch定义新的自动求导(Autograd) 函数
PyTorch定义新的自动求导(Autograd) 函数pytorch官网提供了定义新的求导函数的方法(链接放在文章末尾了),官网举得例子,可能我比较笨,愣是反应了好一会儿才理解。这篇博客主要讲 PyTorch求导的计算,以及定义新的自动求导函数,它怎么用。pytorch求导时,用的是链式求导法则,例如:y=k∗fun1(c∗x)+by = k* fun1(c * x) + by=k∗fun1(c∗x)+b,其中fun1(p)=p2fun1(p) = p^{2}fun1(p)=p2 (yyy的表达式原创 2021-05-12 17:49:54 · 807 阅读 · 8 评论 -
pytorch对TIMIT数据集的预处理(不需要kaldi,Windows系统)
使用pytorch,在Windows系统下处理语音信号(附代码)这篇博客以TIMIT数据集为例,在Windows系统下,使用pytorch自带的语音处理库,将语音文件处理成pytroch模型能直接加载训练的文件。文章目录使用pytorch,在Windows系统下处理语音信号(附代码)前言一、引入库二、构建词汇表三、处理TIMIT数据集总结前言语言信号处理好麻烦,github上好多ASR项目,Windows系统都运行不了,还要安装kalid,好麻烦,还好pytorch有自带的语音处理库。处理好原创 2021-04-07 10:17:13 · 2063 阅读 · 0 评论 -
pytorch自定义RNN结构(附代码)
pytorch自定义LSTM结构(附代码)有时我们可能会需要修改LSTM的结构,比如用分段线性函数替代非线性函数,这篇博客主要写如何用pytorch自定义一个LSTM结构,并在IMDB数据集上搭建了一个单层反向的LSTM网络,验证了自定义LSTM结构的功能。文章目录pytorch自定义LSTM结构(附代码)一、整体程序框架二、LSTMcell三、LSTM整体程序1. 多层LSTMcell2. 多层LSTM处理不同长度的输入3. 整体程序三、反向LSTM四、实验五、项目下载:一、整体程序框架如果要原创 2021-03-11 11:20:14 · 2806 阅读 · 4 评论 -
pytorch实现topk剪枝
pytorch框架下实现top-k剪枝这篇博客,以MNIST数据集为例,对LSTM的权重矩阵实现top-k剪枝(7,2),介绍了如何在pytorch框架下实现top-k剪枝。文章目录pytorch框架下实现top-k剪枝一、top-k剪枝二、生成掩模(mask)矩阵三.定义剪枝函数总结参考文献一、top-k剪枝LSTM常被应用自然语言处理(NLP)相关的应用,由于引入了memory cell和gate unit,其含有大量参数,即使被剪枝90%的参数,仍然不会给模型带来太大的精度损失,较多的冗余原创 2020-12-25 11:47:54 · 2692 阅读 · 30 评论 -
Pytorch加载txt格式的数据集文件(以PTB数据集为例)
pytorch加载txt文件pytor提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录pytorch加载txt文件前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具原创 2020-12-08 16:47:11 · 5324 阅读 · 33 评论 -
No audio IO backend is available
解决方案:安装SoundFile : 运行指令 pip install SoundFile或者安装SoX : 运行指令: pip install sox我只安装了SoundFile,就可以读取wav文件了。。Sox没试,应该效果一样。原创 2020-11-02 08:37:48 · 7417 阅读 · 12 评论 -
pycharm使用anaconda里的配置环境
应用场景: anaconda里面配置好的环境,想在pycharm中直接使用。比如,我在anaconda里创建了名为NLP的环境,里面存放了pytorch相关的很多库,我想用pycharm直接使用这个环境。流程如下所示:我在anaconda里有一个NLP环境,里面放了很多pytorch相关的库,现在使用pycharm运行这些库点击File ——> Settings打开环境配置选中你想配置的环境名字,比如NLP,找到里面的python.exe 文件,OK之后该环境就被添加到列表中了,原创 2020-10-31 20:20:44 · 1090 阅读 · 0 评论 -
图解squeeze()和unsqueeze()函数
这篇文章是我对数组,张量的理解,以及对squeeze()和unsqueeze()函数功能的分析原创 2020-10-21 21:27:03 · 12516 阅读 · 11 评论 -
Pytorch中loss.backward(),loss为矢量时,对参数的理解
对Pytorch中backward()函数参数的理解y.backward(v)代码验证运行结果y.backward(v)以y = w x为例,计算x关于y的梯度: y对x的导数,包含了y中各个元素对x的导数,所以,计算时y中各个元素对x的偏导需要一个权重,因此,v需要和y同维度。代码验证import torchx = torch.tensor([[[1.],[3.]]],requires_grad = True) #requires_grad打开梯度计算,必须是浮点数W = torch.ten原创 2020-09-27 14:52:47 · 5783 阅读 · 0 评论 -
pytorch框架下的参数量化(量化为任意位数,或2的幂次方)
pytorch框架下参数渐进量化的实现将pytorch框架下的参数量化为特定形式,会产生一定的误差,这篇博客以MINIST数据集,LSTM量化为例,主要写了量化的详细流程,并附上完整程序。文章目录pytorch框架下参数渐进量化的实现一、量化原理二、自定义RNN框架三、MNIST数据集和建模,初始化四、量化函数介绍五、量化权重矩阵总结一、量化原理本博客介绍的量化方式,可以将参数量化成任何形式,但量化后的参数不支持反向传播,即不能再训练。LSTM共有8个权重矩阵,如果直接量化,会产生较大的误差原创 2021-01-10 14:04:16 · 3704 阅读 · 16 评论 -
pytorch的官网提供的三种量化方式详解
pytorch的三种量化方式详解这篇博客详细介绍了pytorch官方教程提到的三种量化方式的原理,详细解释了三种量化方式的区别;1. 静态量化 :torch.quantize_per_tensorscale (标度)和 zero_point(零点位置)需要自定义。量化后的模型,不能训练(不能方向传播),也不能推理,需要解量化后,才能进行运算详细的解释,参考这篇博客: 静态量化2. 动态量化 : torch.quantization.quantize_dynamic系统自动选择最合适的原创 2020-12-26 22:40:48 · 18636 阅读 · 8 评论 -
将参数量化为二进制补码定点数的形式
python计算一个小数的补码这篇博客主要讲如何将小数转换为补码形式文章目录python计算一个小数的补码前言一、补码是什么?二、代码实现1.引入库2.转换正数3.转换负数4.任意数求它的补码形式5.代码验证总结前言随着人工智能的不断发展,FPGA实现LSTM算法加速成为人工智能的研究热点之一,使用FPGA实现LSTM算法的第一步,就是将LSTM中的矩阵参数变成二进制补码形式,存储到FPGA中,这篇文章主要将如何用python实现求补码操作一、补码是什么?关于补码是什么,以及它的作用可以参原创 2020-11-22 22:07:10 · 1409 阅读 · 6 评论 -
pytorch动态量化函数torch.quantization.quantize_dynamic详解
pytorch 提供torch.quantization.quantize_dynamic函数,对模型中的某些层进行量化文章目录pytorch 提供torch.quantization.quantize_dynamic函数,对模型中的某些层进行量化1.初始化一个RNN模型,里面包含了LSTM层和全连接层,使用torch.quantization.quantize_dynamic对模型进行量化。2.检查量化后各层参数3.什么是动态量化4.量化后的训练和验证总结1.初始化一个RNN模型,里面包含了LST原创 2020-11-06 21:24:23 · 15369 阅读 · 20 评论 -
pytorch量化中torch.quantize_per_tensor()函数参数详解
torch.quantize_per_tensor()实现8位量化:提示:对该函数各个参数的分析量化:计算机运算时,默认32位浮点数,若将32位浮点数,变成8位定点数,会快很多。目前并不支持pytorch中的反向传播不支持量化,所以该量化只用于评估训练好的模型,或者将32位浮点数模型存储1为8位定点数模型,读取8位定点数模型后需要转换为32位浮点数才能进行神经网络参数的训练。量化函数原型:Q = torch.quantize_per_tensor(input,scale = 0.025 , zer原创 2020-10-05 15:14:51 · 11855 阅读 · 15 评论 -
对pytorch的可训练参数进行定点量化(模拟FPGA加速神经网络计算过程):
对pytorch的训练参数进行定点量化:PS:只是模拟FPGA实现时的定点数量化训练过程…哪个大佬有好的量化方案,求给个连接,官网的pytorch量化训练教程看不懂,以后看懂了再更吧目录对pytorch的训练参数进行定点量化:1.建立模型2.查看模型参数3.转换公式总结1.建立模型建立一个含有两个线性层的模型import torchimport numpy as npimport torch.nn as nnclass FC(nn.Module): def __init__原创 2020-10-03 21:41:41 · 4026 阅读 · 14 评论