Autoformer代码阅读笔记——exp_main部分

前言:

有一些特别细节的部分不用阅读特别详细,主要搞清楚train的作用

问题汇总:

1、参数更新是如何实现的?
if self.args.use_amp:
    scaler.scale(loss).backward()
    scaler.step(model_optim)
    scaler.update()
else:
    loss.backward()
    model_optim.step()
2、上述两行代码的作用?

loss.backward() 会将模型预测值与真实值差距转换成一个信号,反向传递给网络的每一层,从而计算出每个参数的梯度(损失函数对每个参数的偏导数)

3、loss.backward()中的这个loss是什么?

一个batch的loss

4、下面三个loss分别有什么含义?
train_loss = np.average(train_loss)
vali_loss = self.vali(vali_data, vali_loader, criterion)
test_loss = self.vali(test_data, test_loader, criterion)

train_loss:训练集上的平均损失(一个epoch的loss,数值上等于一个epoch中每个batch的loss的平均值),通过最小化这个损失函数,模型能够学习到数据中的模式和特征。在训练过程中,训练损失通常会随着时间的推移而逐渐减小,这表明模型正在学习并改善其性能。

vail_loss: 验证集上的平均损失。验证集是模型在训练过程中从未见过的数据,用于评估模型的泛化能力,即模型对新数据的预测能力。通过在验证集上计算损失,我们可以监控模型是否过拟合(即模型在训练数据上表现很好,但在新数据上表现差)。

test_loss:测试集上的平均损失。测试数据集是模型在整个训练和验证过程之后才接触到的数据,用于最终评估模型的性能。测试损失提供了一个指标,表明模型在未见过的数据上的表现如何,是模型最终性能的最重要指标。

5、模型参数的更新频率?模型参数的更新策略?

每个batch更新一次

更新策略:adam+mse?

6、 batch_x,batch_y,batch_x_mark,batch_y_mark的shape?各个维度的含义以及变量本身的含义?

batch_x: 

shape:[batch_size, seq_len, num_features],print出来是32*96*7

各个维度含义:

(1)time step(seq_len):输入时间序列的长度

(2)batch size:一次喂给模型的序列的个数

(3)num_features:每个时间步长上的特征数量

本身含义:训练序列

batch_y:

shape:[batch_size, label_len + pred_len, num_features],print出来是[32*144*7]

各个维度含义:

(1)label_len + pred_len :输入时间序列的长度

(2)batch size :一次喂给模型的序列的个数

(3)num_features:每个时间步长上的特征数量

本身含义:标签序列以及预测序列

batch_x_mark:

shape:[batch_size, seq_len, num_time_features],print出来是[32*96*4]

(1)time step(seq_len):输入时间序列的长度

(2)batch size:一次喂给模型的序列的个数

(3)num_features:每个时间步长上的特征数量(4个,对应month,day,weekday,hour)

本身含义:batch_x所对应的时间戳

batch_y_mark:

shape:[batch_size, label_len + pred_len, num_time_features],print出来是[32*144*4]

(1) label_len + pred_len:输入时间序列的长度

(2)batch size:一次喂给模型的序列的个数

(3)num_features:每个时间步长上的特征数量(4个,对应month,day,weekday,hour)

本身含义:batch_y所对应的时间戳

各个部分的长度可以从下面这张图片更直观地反映出来

batch_xbatch_y用于模型的前向传播,而batch_x_markbatch_y_mark则用于提供时间信息(时间戳)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值