pytorch常用函数总结:nlp的任务中遇到的。

由于自己在啃代码,所以不自己写了,只给链接。

1.torchtext:处理数据,包含Field, Example, Dataset, BucketIterator, Iterator等一系列的知识。

参考

2.torch.nn.Embedding:参数,第一个,字典中词的个数 第二个,embedding的维度 。

参考
官网官方

3.glove2word2vec:将glove预训练词向量转为word2vector形式。(没啥高级的,好像就是加了一个第一行,词的个数 词的维度)

参考

4.torch.nn.LSTM():

参考

5.nn.Sequential

参考

6.nn.Linear:神经网络的最后一个如果是线性层,那么第二个参数对应的就是几分类。

参考

7.transpose:将张量的两个维度进行交换。

参考
在这里插入图片描述

8.parse:类似linux命令的选择一样。

parse.add_argument('--max_len', type=int, default = 100, help='文本截取长度')
parse.add_argument('--glove840_path',type=str, default='../TextClassification_based_on_textCNN/Dataset/glove.840B.300d.txt',help='词向量路径')
parse.add_argument('--batch_size', type=int, default = 32, help='一个批次训练样本个数')
parse.add_argument('--embed_size', type=int, default = 300, help='词向量维度')
parse.add_argument('--hidden_size', type=int, default = 300, help='隐藏层维度')
parse.add_argument('--output_size', type=int, default = 3, help='最终的标签Label数')
parse.add_argument('--lr', type=float, default = 0.0004 , help='学习率')
parse.add_argument('--num_epochs', type=int, default = 10 , help='训练迭代次数')
args = parse.parse_args(args = [])

在pytorch中直接run的话:
在这里插入图片描述
args.max_len 使用的就是 default 指定的值。当然,也可以在下面的Terminal 执行给定给的。

9.torch.cat:将两个张量拼接在一起。

torch.cat是将两个张量(tensor)拼接在一起,cat是concatnate的意思,即拼接,联系在一起。
参考

10.net.train() 和 net.eval()

当网络中有 dropout,bn 的时候。训练的要记得 net.train(), 测试 要记得 net.eval()。
在这里插入图片描述

参考1
参考2
参考3

11.

optimizer.zero_grad():

loss.backward():

optimizer.step()

批处理中,写上就完事。
参考
参考2

12.accuracy_score:正确的值所占的比例。

在这里插入图片描述
参考

13.loss.item():用于将一个零维张量转换成浮点数

在这里插入图片描述
参考。

14.strip() :方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。

菜鸟教程
return_str=True 值的就是返回的是字符串了。 False 返回的应该就是列表了.

15.MosesTokenizer:把句子直接分成单个词组成的列表。

在这里插入图片描述
参考

print(test_feature_line)
# 转换大小写开分词存入列表
mt = MosesTokenizer(lang='en')  
test_feature_line = [mt.tokenize(line.lower(), return_str=True) for line in test_feature_line]
print(test_feature_line)

这样则是:将符号和单词分开了。
在这里插入图片描述

16.nn.ModuleList:仅仅类似于pytho中的list类型,只是将一系列层装入列表,并没有实现forward()方法,

參考

17.torch.nn.Conv1d:

在这里插入图片描述
参考

18.permute:张量的维度进行变换。

在这里插入图片描述
参考

19.torch.LongTensor:

torch.Tensor默认是torch.FloatTensor是32位浮点类型数据,torch.LongTensor是64位整型!

20.TensorDataset和DataLoader:

TensorDataset 可以用来对 tensor 进行打包,就好像 python 中的 zip 功能。该类通过每一个 tensor 的第一个维度进行索引。因此,该类中的 tensor 第一维度必须相等。
TensorDataset:
在这里插入图片描述
分片输出:
在这里插入图片描述
结果:
在这里插入图片描述
遍历输出:
在这里插入图片描述
结果:
在这里插入图片描述
DataLoader的使用:

DataLoader的基本使用,:
batch_size (int, optional) – how many samples per batch to load (default: 1).
#shuffle (bool, optional) – set to True to have the data reshuffled at every epoch (default: False).
num_workers (int, optional) – how many subprocesses to use for data loading. 0 means that the data will be loaded in the main process. (default: 0)

在这里插入图片描述
结果:
在这里插入图片描述
官方使用
参考

21.max_pool2d:

在这里插入图片描述
应该只是对最后两个维度进行操作。

22.with torch.no_grad():

在这里插入图片描述
参考

23.nn.Conv2d:

nn.Conv2d(1, 16, kernel_size=3, stride=2, padding=1)

24.np.transpose: 进行指定维度的变换:

在这里插入图片描述

hree=np.arange(18).reshape(2, 3, 3)
print(three.transpose().shape)
print(three.transpose(1, 0, 2).shape)
print(three.transpose(1, 2, 0).shape)

结果:
在这里插入图片描述

25.transforms.Compose()类:

torchvision是pytorch的一个图形库

transform = transforms.Compose(
    [transforms.ToTensor(),
    transforms.Normalize((0.5,), (0.5,))])

ToTensor()能够把灰度范围从0-255变换到0-1之间,而后面的transform.Normalize()则把0-1变换到(-1,1).
参考1
参考2

26.torch.optim.lr_scheduler.StepLR:学习率调整的一种。

在这里插入图片描述
参考

27.torch.triu:把张量的某一部分三角全部变成0.

参考

28.nn.utils.clip_grad_norm_:处理梯度。

在这里插入图片描述

参考

29.glob.glob() 函数:返回所有匹配的文件路径列表。

def findFiles(path): return glob.glob(path)
print(findFiles('data/names/*.txt'))

查看一下目录里面有什么:
在这里插入图片描述

结果:
在这里插入图片描述

参考

30.string.ascii_letters和string.digits

print(string.ascii_letters)
print(string.digits)
輸出:
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
0123456789

31.os.path.splitext()与os.path.split():

os.path.splitext() 将文件名和扩展名分开:列表形式,如:
os.path.splitext(filename)[0]
os.path.split() 返回文件的路径和文件名

参考

32.nn.LogSoftmax:对softmax求log,因此值为负的。

参考

33.topk:按照某一维度求最值:

import torch
a = torch.randn((3,5))
print(a)
_, pre = a.topk(1, dim=1, largest=True)
print(_)
print(pre)

34.nn.gru:

参考
很棒的知乎教程 https://zhuanlan.zhihu.com/p/37217734
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

34.cumsum:求和

在这里插入图片描述
参考

35.

36.

37.

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值