![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python
ai-ai360
数据挖掘,自然语言处理,推荐,搜索,语音识别,语音处理相关学习知识笔记
展开
-
ctc网络输出解码
图 1 alpha矩阵大小横坐标是声学特征,x1-x6一共有6帧语音,每一帧语音输出是一个v大小概率分布,v是token词典大小,现在假设token单位是字符,并且字典大小是三个字符,[%,c,a,t],所以v的大小是4。前向概率计算参数包括两点:1.所有声学特征输出概率分布矩阵y2 已插入空白符的label序列, 大小为Lyarray([[0.17914049, 0.27980623, 0.26827714, 0.27277615], [0.23065626, 0.226.原创 2021-05-26 17:36:18 · 490 阅读 · 1 评论 -
pytorch中squeeze()和unsqueeze()函数介绍
squeeze() 在原始数据上增加一个维度,但不改变数据特征值大小,每个数据还是三个特征unsqueeze()减少一个维度,只针对该维度是1的维度维度不为1的作用没有效果,c的原来维度为2,强行减少没有效果。...原创 2021-05-18 16:05:32 · 194 阅读 · 0 评论 -
竞赛结果保存模板
import timedef time_change(timeStamp): timeArray = time.localtime(timeStamp) t = time.strftime("%H:%M", timeArray) day = time.strftime("%Y%m%d", timeArray) return day, tday, t = time_change(time.time())print(day,t)print(day,t[:2], t[-2:原创 2021-05-13 17:13:21 · 62 阅读 · 0 评论 -
torch.nn.utils.rnn.pad_sequence用法
class MyCollate: def __init__(self, pad_idx): self.pad_idx = pad_idx #填充值 def __call__(self, batch): imgs = [item[0].unsqueeze(0) for item in batch] imgs = torch.cat(imgs, dim=0) targets = [item[1] for item in batch原创 2021-05-12 16:22:07 · 5472 阅读 · 0 评论 -
数据处理-padding,DataLoader中collate_fn使用
DataLoader可通过collate_fn参数,对Dataset生成的mini-batch的可迭代数据进行后处理,如数据填充。collate_fn应当是一个可调用对象,常见的可以是外部定义的函数或者lambda函数。其接受DataLoader。在不设置collate_fn参数时,DataLoader的mini-batch样本序列样式取决于对应dataset参数的设置。而dataset只要是覆写了__init__、__getitem__和__len__方法的Dataset子类即可,所以其输出形式可以很原创 2021-05-12 16:04:40 · 1605 阅读 · 0 评论 -
Python_魔法方法__call__使用
概述Python有很多内置魔法方法,一般表现为双下划线开头和结尾。例如 name、doc、new、init、call__等,这些魔法方法会让对象持有特殊行为,今天就介绍,自己平时使用比较多的__call,我称它为:实例魔法方法使用方法什么叫实例魔法方法呢?,就是它可以把类实例当做函数调用。例子class add1(): def __init__(self) -> None: pass def __call__(self, *args) -> in原创 2021-05-12 11:45:14 · 405 阅读 · 0 评论 -
自定义数据集Dataset
模板from torch.utils.data import DataLoader, Datasetclass CatsAndDogsDataset(Dataset): def __init__(self, csv_file, root_dir, transform=None): self.data = pd.read_csv(csv_file) self.root_dir = root_dir self.transform = transform原创 2021-05-11 14:28:41 · 1129 阅读 · 0 评论 -
如何将一个全连接层网络dnn改造为卷积层cnn
#1. Import #2. Create networkclass NN(nn.Module): def __init__(self, input_size, num_classes): super(NN, self).__init__() self.fc1 = nn.Linear(input_size, 50) self.fc2 = nn.Linear(50, num_classes) def forward(self, x)原创 2021-05-08 16:41:00 · 561 阅读 · 0 评论 -
cnn网络conv输出feature_map的大小计算公式
## pytorch卷积层与池化层输出的尺寸的计算公式详解 要设计卷积神经网络的结构,必须匹配层与层之间的输入与输出的尺寸,这就需要较好的计算输出尺寸卷积后,池化后尺寸计算公式:(图像尺寸-卷积核尺寸 + 2填充值)/步长+1(图像尺寸-池化窗尺寸 + 2填充值)/步长+1上图翻译如下:k,p,s是标量,n_out 与n_in的长宽对应卷积神将网络的计算公式为:k=3, p=1, s=1n_out=(n_in + 2 *1 -3) / 1 + 1 = n_in所以 k=3, p=1, s原创 2021-05-08 16:27:05 · 1418 阅读 · 1 评论 -
torch初始化模型的两种方式
全局变量和局部变量局部变量一般存在函数和方法以及类方法中def add(): d = x + y return dprint(add())x = 1y = 2以上代码会报错的,在函数存入内存中时x,y并未赋值, 但如果调整,x,y的位置,如下这段代码能正常运行,输出结果为3def add(): d = x + y return dx = 1y = 2print(add())有局部变量时候优先用局部变量,下面这段代码输出为0而不是3def add(x原创 2021-05-08 13:44:03 · 1168 阅读 · 0 评论 -
pytorch item sum方法使用
item是将tensor类型数据转换为标量sum有三种形式 torch.sum(a), torch.sum(a, axis = 0), torch.sum(a, axis = 1)torch.sum(a):计算a所有元素求和torch.sum(a, axis=0):a是二维矩阵,固定住列,扫描每行求和, 结果就是每一列元素相加torch.sum(a, axis = 1)a是二维矩阵,固定住行,按列求和,结果就是每一行元素相加深度学习里面用得最多就是第一种和第三种, 行原创 2021-03-26 11:59:10 · 1254 阅读 · 0 评论 -
python类方法__getitem__的使用
当一个类中定义了__getitem__方法,那么它的实例对象便拥有了通过下标来索引的能力。class A(): def __getitem__(self, index): return index * 2a = A()索引访问a[2] #output: 4如果切片访问呢,return 返回切片列表class A(): def __getitem__(self, index): import numpy as np tmp.原创 2021-03-25 22:43:11 · 2131 阅读 · 0 评论 -
配置jupyter notebook远程访问
配置jupyter远程访问有的时候我们在linux服务器上安装了jupyter notebook,但有的系统没界面,这个时候可以通过配置远程访问,这样可以在本地浏览器里愉快使用jupyter notebook了创建虚环境安装完anaconda系统自动激活base虚环境,而且base虚环境在anaconda安装时候已自动安装jupyter,所以直接用jupyter notebook 生成配置文件。(base) root@ai-PowerEdge-R740:~# jupyter notebook --g原创 2021-03-08 23:23:59 · 485 阅读 · 0 评论 -
pip and conda 配置多个镜像源
pip原生镜像源速度一般都很慢,替换python的pip源,pip安装速度会快很多cd ~mkdir .pip直接新建并编辑pip.conf:sudo vim ~/.pip/pip.conf添加以下内容:[global]index-url=https://pypi.tuna.tsinghua.edu.cn/simple/extra-index-url= http:/原创 2021-03-04 17:15:10 · 2333 阅读 · 3 评论 -
tqdm用法总结
文章目录前言duo一、tqdm是什么?二、我最常使用的两种分隔1.把迭代对象封装到tqdm2.打开tqdm窗口总结前言duo在进行比较耗时任务时,通常需要查看程序完成了多少任务,比较读取1亿行的数据,通过进度条能可视化展示当前读取了到多少行。又比如进行网络训练时,训练1万个epoch,也可以通过进度条查看训练多少个epoch了,以及检查程序是否运行正常。一、tqdm是什么?示例:python 写的一种进度条可视化工具import tqdmtext = str()for item in t原创 2020-11-27 15:49:56 · 4238 阅读 · 5 评论 -
python异常处理exception
背景人能正常沟通交流后面的逻辑是大家相互遵守语言逻辑和语法规则,类比人类沟通方式程序要能正常运行,必须遵守正确的程序语法规范,计算逻辑等规则,如遇到不符合规范的,程序没法正常往下运行,程序出现了异常,但是设计语言为了解决这些出错点,设置了一系列提示,这些提示就是异常点,python语言怎么捕获异常呢?捕获异常基本结构样式1try: # 先执行语句1,如果异常执行语句k, 反之不执行语句k...原创 2019-11-21 11:53:04 · 328 阅读 · 0 评论 -
python读取文件之前判断文件编码格式
困扰经常用pandas读取csv格式文件,pandas默认使用utf-8编码格式,但有的文件并非这种编码,虽然可以通过记事本打开文件,然后另存为,通过保存格式为utf-8格式,但是这种方式实在是太麻烦太傻,如图1手动查看编码格式。另存为其它格式自动判断类型通过代码自动判断类型,写一个get_encoding函数def get_encoding(file): with ope...原创 2019-11-14 12:35:11 · 9206 阅读 · 5 评论