CVPR2018 MAttNet源码攻坚

本文介绍了MAttNet源码中的关键部分,包括训练数据准备脚本prepro.py的运行方式及参数设置方法,深入剖析了Python argparse模块的使用,并解释了如何通过sys.path插入自定义模块路径。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MAttNet源码攻坚

Training

  1. Prepare the training and evaluation data by running tools/prepro.py:
python tools/prepro.py --dataset refcoco --splitBy unc

prepro.py脚本

  • 289行:if __name__ == '__main__':,__name__是Python脚本
    的内置属性变量,这行语句的意思是只有当该脚本被直接执行时(区别于被其他脚本import调用)后面的语句才会被执行。
  • 291-303行:
    argparse是一个Python模块:命令行选项、参数和子命令解析器。 主要有三个步骤:
    创建 ArgumentParser() 对象:parser = argparse.ArgumentParser()
    调用 add_argument() 方法添加参数:parser.add_argument('--output_json', default='data.json', help='output json file')
    使用 parse_args() 解析添加的参数:args = parser.parse_args()
  • 第304行:params = vars(args)将对象转换成字典
    举个例子:
>>> a.__dict__
{}
>>> vars(a)
{}
>>> a.name = 'Kim'
>>> a.__dict__
{'name': 'Kim'}
>>> vars(a)
{'name': 'Kim'}
  • 主函数main先是进一步确定了几个参数,新建了存储cache/prepro/dataset_splitBy的文件夹
    第247行sys.path.insert(0, 'pyutils/refer')
    sys.path是python的搜索模块的路径集,是一个list.添加相关的路径,但在退出python环境后自己添加的路径就会自动消失!这样就可以直接importpyutils/refer下面的模块。
    第248行import refer.py中的REFER类模块之后,249行对REFER类进行了一个实例化。
    251-254行创建词汇表,使用了build_vocab()函数;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值