Total params: 379,939 表示整个神经网络的参数量为379939个。
Trainable params: 379,939 表示可以通过训练来更新的参数数量为379939个,是模型通过反向传播算法进行训练时可以调整的参数。
Non-trainable params: 0 表示模型中没有固定的参数,所有的参数都可以通过训练进行调整。
----------------------------------------------------------------
Input size (MB): 0.05 表示模型接受的输入数据的大小。
Forward/backward pass size (MB): 56.35 表示在前向传播(计算预测值)和反向传播(计算梯度以便于参数更新)过程中,内存的使用量。
Params size (MB): 1.45 表示模型中所有可训练参数的内存占用量。
Estimated Total Size (MB): 57.85 这是模型整体估计的内存占用量,包括了输入数据、前向/反向传播的内存使用以及模型参数等。
(转自FFA-Net:文章理解与代码注释_ffanet-CSDN博客)
metrics.py
包含了一些用于图像质量评估的函数和工具。(SSIM,PSNR)
option.py
包含了用于配置模型训练参数的命令行选项解析和一些预定义的默认值。
data_utils.py
包含了用于加载和处理数据集的代码。为模型训练提供了数据输入。定义了自定义数据集类RESIDE_Dataset,并设置了数据加载器,以便在模型训练中使用。
FFA.py
定义了模型FFA
perceptualLoss.py
定义了感知损失网络模块,用于计算感知损失。这个感知损失网络模块通常用于图像去雾等任务中,通过比较模型生成的去雾图像与真实清晰图像之间的特征差异来计算损失。
main.py
模型训练,包括数据加载,训练循环,损失计算,参数更新;
包含训练所需的参数,例如学习率、批次大小、训练路径等;
通常使用训练数据集来训练模型;
通常不涉及模型性能的评估,而是用于生成和保存训练好的模型权重和参数;
包含训练模型的功能,通常使用文件名来指示训练过程中的状态;
(
细节解释:
- 通过调用
opt
对象来获取配置信息,如训练集、测试集、设备类型等。 - 模型训练中使用了
Adam
优化器,并结合了 L1 Loss 和 Perceptual Loss 进行训练。 - 通过调用
torch.nn.DataParallel(net)
将模型放到多个 GPU 上进行并行计算。 - 在训练过程中会根据评价指标的变化保存表现最好的模型参数。
- 最后将训练过程中的损失值、评价指标等信息保存为
.npy
文件。
)
test.py
测试和评估模型,在模型训练后用于验证模型性能,包括加载训练好的模型、对测试数据进行推断,计算性能指标(如准确性,精度,损失等),以及生成预测结果;
包含用于测试的参数,例如测试数据路径、模型文件路径、测试模式等;
通常使用测试数据集来评估模型;
通常涉及评估模型性能,生成性能指标和/或可视化结果,以及保存评估参数;
包含保存测试结果的功能,通常使用文件名来指示测试结果。
(
细节解释:
- 通过 argparse 解析命令行参数,方便指定任务类型和测试图像文件夹。
- 使用 DataParallel 将模型放到多个 GPU 上进行并行计算。
- 对测试集中的每张图像进行推断,并将推断结果保存为图片文件。
- 在推断过程中,使用了数据预处理和后处理操作,包括将图像转换为 Tensor 格式、归一化等。
)
训练步数
也就是迭代步数,在每一步中,模型会通过输入数据进行前向传播、计算损失函数,并利用反向传播算法来更新模型的参数,以使得损失函数尽可能地减小。
训练步数可以被视作训练的进度指标,表示模型已经对训练数据进行了多少次参数更新。通常情况下,随着训练步数的增加,模型会逐渐提升对训练数据的拟合程度,从而提高在未见过的数据上的泛化能力。