python代码模块引用说明

模型训练时,只要在实例化一个对象中传入对应的参数就可以自动调用forward函数

argparse模块:用于解析命令行参数

import argparse
parser = argparse.ArgumentParser()  # 创建一个解析对象
parser.add_argument()   # 每一个都对应一个要关注的参数或选项
'''
add_argument()中的参数解释:
第一个为属性名,前面加两条杠"__"表示可选参数
help=""为参数描述
'''
arg = parser.parse_args()  # 进行解析

logging模块:用于简单日志说明

'''一些说明
DEBUG:详组信息
INFO:证明事情按预期工作
WARNING:警告提示,但仍正常工作
EMOR:不能执行一些功能
CRITICAL: 严重错误,不能继续运行
Formatter: 格式化, 指明输出日志记录布局,
getloger: 设置日志等级
setlevel:设置日志输出格式,
FileHandler:文件输出
streamHandler:获取处理器
setFormatter: 添加到处理器的日志在前出格式
addHandler: 添加到处理器中
'''

pytorch模块:

torch.cuda.device_count()  # 返回GPU的数量
nn.CrossEntropyloss()      # 交叉熵损失函数,
nn.ModuleList()            # 储存不同module 并将每个moduk的参数添加到网络之中的容器
nn.GRUCell()               # 门控循环单元
nn.Sequential()            # 将特定神经网络按照在传入构造器的顺序依次添加到计算图中执行
nn.Linear()                # 用于设置网络中的主连接层,第一个参数为输入二维张量的大小, 
                           # 第二个参数为输出张量的大小,也表示链接层的神经元个数.
torch.from_numpy()         # 把数组转换成张量,且二者共享内存,对张量进行修改比如重新赋值,那么原始数组也会相应发生改变

tqdm库

进度条可视化库,监测程序运行的进度,估计运行的时长

from tqdm import trange

for i in tqdm(range(100)):
    sleep(0.01)
100%|██████████| 100/100 [00:01<00:00, 98.62it/s]

Vocab

vocab.itos得到一个列表,返回词表中的每一个词;通过vocab.itos[2]返回得到词表中对应索引位置上的词;通过vocab.stoi得到一个字典,返回词表中每个词的索引;通过vocab.stoi['月']返回得到词表中对应词的索引;通过len(vocab)来返回词表的长度。

np

np.random.permutation():对序列进行随机排序

np.concatenate():对array进行拼接

一些杂乱知识

../data/  # 表示退出当前层,回到上一层
./data/   # 表示当前层

# enumerate()的作用是返回列表中元素的索引号和值。
for id, row in enumerate(data):

# Transformers模块中的RobertaModel
# 他们中的参数一般是模型路径,目的是重新初始化权重
# 一般再下游任务中,用于预测和推理
RobertaModel.from_pretrained()
RobertaTokenizer.from_pretrained()
# 我理解的是以上想法,但是不知道其是否正确,也没有找到更加具体的解释,源码也看不懂

tensor:张量,其实是多维数组,在卷积中常用

permute:函数的作用是对tensor进行转置,其参数表示的是转置后的向量位置

contiguous():函数把tensor变成在内存中连续分布的形式。

torch.cat():拼接tensor,相当于串联,在现有维度上进行数据的增加(改变了现有维度大小),不增加新的维度。

device():显示执行操作的设备


版权声明:本文为weixin_42227243原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。