AVOD-代码理解
代码源码链接:https://github.com/kujason/avod
论问链接:https://arxiv.org/abs/1712.02294
本系列博客用于记录学习AVOD代码,其代码注释是本人自己写的,本人是个python新手,很多地方的不对之处欢迎各位指正.整个博客系列全是从pycharm上直接复制下来的,可能不大方便看.
1. run_training.py.整个程序的训练开始部分.主要就是读取训练的config文件,对训练进行相应设置.这个config文件是在avod/configs文件下,在里面可以看到有好几个config设置,在实际训练时我们会选择其中的一个
#coding=utf-8
"""Detection model trainer.
This runs the DetectionModel trainer.
"""
import argparse
import os
import tensorflow as tf
import avod
import avod.builders.config_builder_util as config_builder
from avod.builders.dataset_builder import DatasetBuilder
from avod.core.models.avod_model import AvodModel
from avod.core.models.rpn_model import RpnModel
from avod.core import trainer
tf.logging.set_verbosity(tf.logging.ERROR)
def train(model_config, train_config, dataset_config):
#一堆操作!!!!读取config文件里面的详细内容
dataset = DatasetBuilder.build_kitti_dataset(dataset_config,
use_defaults=False)
train_val_test = 'train'
#avod
model_name = model_config.model_name
with tf.Graph().as_default():
if model_name == 'rpn_model':
model = RpnModel(model_config,
train_val_test=train_val_test,
dataset=dataset)
elif model_name == 'avod_model':
#avod_model,train,dataset.也就是avod_model的相关设置
model = AvodModel(model_config,
train_val_test=train_val_test,
dataset=dataset)
else:
raise ValueError('Invalid model_name')
#avod/core下面.下接trainer.train部分
trainer.train(model, train_config)
#程序开始的地方