pytorch 学习记录
2023.10.31
- model.train():启用 Batch Normalization 和 Dropout。作用:对BN层,保证BN层能够用到每一批数据的均值和方差,并进行计算更新;对于Dropout,model.train()是随机取一部分网络连接来训练更新参数。
- model.eval():不启用 Batch Normalization 和 Dropout
- with torch.no_grad():with语句块内停止autograd模块的工作,不计算梯度/不更新梯度,加速和节省显存
- 参考链接:【PyTorch】搞定网络训练中的model.train()和model.eval()模式 - 知乎 (zhihu.com)
2023.11.2
- tqdm(可迭代对象) = 会显示进度条的可迭代对象
- trange() = tqdm(range())
2023.11.6
- (2-layer nn.LSTM + fc layer) model.state_dict() (值似乎就等于model.parameters()中的值)
- embedding.weight: size = len(vocab) * embedding_dim = (10000+1)*128
start: -4.54~0~4.86
1 batch: - lstm.weight_ih_l0: size = 512 * 128
3 batches: -0.0912~0.0002~0.0913
5 batches: -0.0922~0.0002~0.0923
10 batches: -0.0983~0.0003~0.0984
5 batches: -0.0922~0.0002~0.0923 - lstm.weight_hh_l0: size = 512 * 128
- lstm.bias_ih_l0: 512
- lstm.bias_hh_l0: 512
- lstm.weight_ih_l1: size = 512 * 128
- lstm.weight_hh_l1: size = 512 * 128
- lstm.bias_ih_l1: 512
- lstm.bias_hh_l1: 512
- fc.weight: size = 1 * 128
- fc.bias: size = 1
- embedding.weight: size = len(vocab) * embedding_dim = (10000+1)*128
- hidden: size = 2(h0, c0) * LSTM-layerNum * batch_size * hidden_dim
- epochs:
- train: 各层参数在反向传播后改变
- validate: 在model.eval()之后,参数固定
- 验证集上的预测值分布非常集中,不知道是否是epoch数量太小/没有对预测值做反归一化?
- loss曲线完全没有后期上升趋势
2023.11.8
- CUDA error: pytorch和显卡支持的cuda不兼容,一般需要升级pytorch
在python里用torch.cuda.current_device()查看报错提示和帮助
2023.11.16
- transformers.BertTokenizer参数:参考huggingface.co/docs/Bert/...
注意BertTokenizer的父类参数(部分如下)
Tokenizer (huggingface.co)
oth
用代码改变世界!就是这样,喵!
posted on 2023-10-31 11:48 Mju_halcyon 阅读(12) 评论(0) 编辑 收藏 举报