global_step: 730, lr: 0.000993, acc: 0.000000, norm_edit_dis: 0.000002, loss: 4.916245, avg_reader_cost: 0.10006 s, avg_batch_cost: 2.65327 s, avg_samples: 4.0, ips: 1.50758 samples/s, eta: 9:33:28 分别代表什么意思,这里是 paddleocr 训练时的输出
时间: 2023-02-07 15:43:28 浏览: 171
global_step: 当前训练步数。
lr: 当前学习率。
acc: 当前正确率。
norm_edit_dis: 当前标准编辑距离(此值越小说明模型的预测越接近真实标签)。
loss: 当前损失值。
avg_reader_cost: 平均读取数据的时间。
avg_batch_cost: 平均每批数据的训练时间。
avg_samples: 平均每批训练样本数。
ips: 每秒训练样本数。
eta: 估计剩余训练时间。
相关问题
for batch_idx, (data, target) in enumerate(self.train_loader): data = data[..., :self.args.input_dim] label = target[..., :self.args.output_dim] # (..., 1) self.optimizer.zero_grad() #teacher_forcing for RNN encoder-decoder model #if teacher_forcing_ratio = 1: use label as input in the decoder for all steps if self.args.teacher_forcing: global_step = (epoch - 1) * self.train_per_epoch + batch_idx teacher_forcing_ratio = self._compute_sampling_threshold(global_step, self.args.tf_decay_steps) else: teacher_forcing_ratio = 1. # data and target shape: B, T, N, F; output shape: B, T, N, F data, target维度均为64,12,307,1 output = self.model(data, target, teacher_forcing_ratio=teacher_forcing_ratio) if self.args.real_value: label = self.scaler.inverse_transform(label) loss = self.loss(output, label) loss.backward() # add max grad clipping if self.args.grad_norm: torch.nn.utils.clip_grad_norm_(self.model.parameters(), self.args.max_grad_norm) self.optimizer.step() total_loss += loss.item()
这段代码是一个训练循环的一部分,用于对批次数据进行训练。代码中使用`enumerate(self.train_loader)`来遍历训练数据集,并在每个批次中进行以下操作:
1. 首先,通过`data[..., :self.args.input_dim]`和`target[..., :self.args.output_dim]`对输入数据和标签进行切片,以获取指定维度的子集。这是为了确保输入和标签的维度匹配。
2. 然后,调用`self.optimizer.zero_grad()`来清零模型参数的梯度。
3. 接下来,根据`self.args.teacher_forcing`的值来确定是否使用"teacher forcing"的方法。如果`self.args.teacher_forcing`为真,则计算当前批次的全局步数,并使用`self._compute_sampling_threshold()`方法计算出"teacher forcing"的比例。否则,将"teacher forcing"比例设置为1.0,表示在解码器中的所有步骤都使用标签作为输入。
4. 调用`self.model(data, target, teacher_forcing_ratio=teacher_forcing_ratio)`来获取模型的输出。如果`self.args.real_value`为真,则通过`self.scaler.inverse_transform(label)`将标签逆转换为原始值。
5. 计算模型输出和标签之间的损失,并将损失值添加到总损失`total_loss`中。
6. 调用`loss.backward()`计算梯度,并使用`torch.nn.utils.clip_grad_norm_()`对梯度进行最大梯度裁剪。
7. 最后,调用`self.optimizer.step()`来更新模型参数。
这个循环会遍历整个训练数据集,并在每个批次中计算和更新模型的损失。
MobileNetV3( inverted_residual_setting: List[InvertedResidualConfig], last_channel: int, num_classes: int = 1000, block: Optional[Callable[..., nn.Module]] = None, norm_layer: Optional[Callable[..., nn.Module]] = None)
MobileNetV3是一种轻量级卷积神经网络模型,用于图像分类、目标检测等任务。它由多个倒残差块组成,每个倒残差块包含多个轻量级卷积层和激活函数,可以有效地减少模型的计算量和参数量。
参数inverted_residual_setting是一个包含多个InvertedResidualConfig的列表,每个InvertedResidualConfig包含了该倒残差块的一些参数,比如输入通道数、输出通道数、中间层的扩展因子等。
参数last_channel指定了模型最后输出的通道数。
参数num_classes指定了模型最后分类的类别数。
参数block指定了使用的卷积块类型,默认为None。
参数norm_layer指定了使用的归一化层类型,默认为None。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)