模型训练时,只要在实例化一个对象中传入对应的参数就可以自动调用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版权协议,转载请附上原文出处链接和本声明。