SSD代码阅读(1)
github: https://github.com/amdegroot/ssd.pytorch
train.py
参数设置
都是些常用的参数,没有什么需要特别说明的。
关于CUDA的使用
if torch.cuda.is_available(): # 使用cuda的判断
if args.cuda:
torch.set_default_tensor_type('torch.cuda.FloatTensor')
if not args.cuda:
print('')
torch.set_default_tensor_type('torch.FloatTensor')
else:
torch.set_default_tensor_type('torch.FloatTensor')
主要是为了设置默认的 tensor 格式。进行了两个判断,一个是 available,一个是参数设定是否需要使用cuda
除了train()的一些函数
- adjust learning rate
def adjust_learning_rate(optimizer, gamma, step):
"""
args :
optimizer : 优化器
gamma : 调节学习率的超参数
step : 在指定的迭代次数时进行学习率调节
"""
lr = args.lr * (gamma ** (step)) # 是根据 step 来进行调节
for param_group in optimizer.param_groups:
param_group['lr'] = lr # 注意 learning rate 的存放位置,记住
- 初始化网络参数的函数
def xavier(param):
init.xavier_uniform(param