pytorch:项目结构

见到了一个非常elegant的项目代码结构,来自https://github.com/michuanhaohao/reid-strong-baseline.git

~
|- utils
	|- logger.py: 			初始化logger,有正对多卡训练的代码
	|- iotools.py			关于读写的工具库,例如mkdir_if_missing
|- tests
	|- lr_scheduler_test.py	测试了lr_scheduler
|- tools
	|-train.py: 			训练的主体代码
|- data
	|- build.py: 			make_data_loader(): 构造dataloader对象
	|- tranforms
		|- build.py: 		根据train和test,Compose构造不同的transforms
		|- transforms.py: 	自定义transform,随机擦除
	|- datasets
		|- __init__.py		使用工厂模式,对外统一了接口init_dataset,根据传入name去选择。其中存放了一个字典,键是name,值是对象。
		|- base.py:		基类,所有数据集都会用到的一些基础类别
		|- cuhk03.py		特定数据集,只起到存放数据的作用,不继承pytorch的dataset类 
		|- dataset_loader.py	继承pytorch的dataset类,重写__getitem__方法	
	|- samplers
		|- triplet_sampler.py	定义数据集的sampler
	|- collate_batch.py		根据train和test,改变dataloader的行为(非常elegant)
|- modeling
	|- backbones
		|- resnet.py		定义backbone
		|- senet.py			定义backbone
	|- __init__.py
	|- baseline.py			定义实际使用的baseline,在已有模型的基础上进行结构修改。定义了前向传递,加载参数的过程
|- solver					训练器(求解器)
	|- build.py				构造optimizer, 其中有一个利用getattr函数构造optimizer的过程,十分elegant
	|- lr_scheduler.py		定义了lr_scheduler
|- layers					构造不同的损失函数,使用了工厂模式
	|- center_loss.py
|- engine
	|- trainer.py			使用ignite库,似乎是一个很高级优雅灵活的训练库(后面可以再研究)
	|- inference.py			使用ignite库,似乎是一个很高级优雅灵活的训练库(后面可以再研究)
		
	
	

# 以上所有文件夹里都有__init__.py

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值