Track R-CNN main.py 记录

10 篇文章 0 订阅
9 篇文章 0 订阅
#!/usr/bin/env python3
import sys
import os

from core.Engine import Engine
from core.Config import Config
from core.Log import log
import tensorflow as tf

# import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'

def init_log(config):  # config是Config类的实例
  log_dir = config.dir("log_dir", "logs") # Config类的方法dir
                                          # 返回log_dir = 'logs/'
  model = config.string("model") # 其实就是在读取配置文件conv3d_sep2中各个关键字的值
                                 # model = ’conv3d_sep2‘
  filename = log_dir + model + ".log" #filename = 'logs/conv3d_sep2.log'
  verbosity = config.int("log_verbosity", 3) # verbosity =  5,3 表示如果配置文件里没有这个值,那就将这个值设置为3
  log.initialize([filename], [verbosity], []) # from core.Log import log
                                              #反正就是生成日志文件吧,懒得看了,跳过


def main(_):
  print(len(sys.argv))
  print(sys.argv)
  assert len(sys.argv)==2 or len(sys.argv)==3, "usage: main.py <config> <optional_config_string>"
  # assert 这句话的意思是如果sys.argv的长度不是2或3就打印提示 "usage: main.py <config> <optional_config_string>"
  # 因为设置了参数configs/conv3d_sep2 所以len(sys.argv)==2
  # 所以assert就是用来提示设置参数的呗,整着么复杂干啥呢
  config_path = sys.argv[1] # sys.argv[1] : configs/conv3d_sep2 手动设置的参数
  assert os.path.exists(config_path), config_path
  # assert 判断config_path是否存在,若不存在则断言语句(assert)失败,将config_path的内容打印出来,即AssertionError:config_path的值
  try:
    if len(sys.argv)==3:  # len(sys.argv)==2 不等于3,执行else下面的语句
      config = Config(config_path, sys.argv[2])
    else:
      config = Config(config_path) # len(sys.argv)==2 执行这句
                                   # Config是一个类,这句话的意思是类的实例化,实例化之后可以使用类的属性和方法
  except ValueError as e:  # ValueError:传入无效的参数
                           #这句话写在这里没有意义吧?无论如何都会执行try,不会执行except啊?或者什么情况下会执行到呢?
    print("Malformed config file:", e)
    return -1
  init_log(config) #config是Config类的实例
  # dump the config into the log
  print(open(config_path).read(), file=log.v4) #config_path = configs/conv3d_sep2
  engine = Engine(config) # config是Config类的实例
  engine.run()  # task = "train_no_val" 这句话开始才是真正的开始运行
  sys.exit(-1)

if __name__ == '__main__':
  tf.app.run(main)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值