예제 #1
0
def main():
    args = make_parser().parse_args()
    root = vmdata.dataset_root(args.camera, (8, 0, 0))
    with vmdata.VideoDataset(root) as vdset:
        _analyze_flow = partial(analyze_flow, vdset)
        if args.debug:
            print(args.fids)
            return
        for fid in args.fids:
            print('Running on frame {}'.format(fid), file=sys.stderr)
            _analyze_flow(fid)
예제 #2
0
파일: eval.py 프로젝트: kkew3/dolphins-mc
def parse_cfg(basedir: str, filename: str) -> SimpleNamespace:
    runid = int(re.findall(r'\b(\d+)\b', os.path.splitext(
        os.path.basename(filename))[0])[0])
    ini = ConfigParser()
    ini.read(filename)
    ns = SimpleNamespace()

    camera_id = list(map(int, map(str.strip, ini['data']['camera'].split(','))))
    ns.root = vmdata.dataset_root(camera_id[0], tuple(camera_id[1:4]))
    ns.downsample_scale = int(ini['data']['downsample_scale'].strip())
    ns.model_name = ini['model']['model_name'].strip()
    run_name = ini['model']['run_name'].strip()
    ns.savedir = os.path.join(basedir, '{}.{}'.format(run_name, runid), 'save')
    ns.progress = tuple(map(int, map(str.strip, ini['model']['progress'].split(','))))
    ns.visualize_indices = range(*tuple(map(int, map(
        str.strip, ini['eval']['indices'].split(',')))))
    try:
        temperature = float(ini['eval']['temperature'].strip())
    except (KeyError, ValueError):
        temperature = 1.0
    ns.temperature = temperature
    try:
        bwth = float(ini['eval']['bwth'].strip())
    except (KeyError, ValueError):
        bwth = None
    ns.bwth = bwth
    ns.todir = os.path.join(basedir,
                            '{}.{}.viz'.format(run_name, runid),
                            '{}_{}'.format(*ns.progress),
                            't{:.2f}'.format(ns.temperature))
    try:
        device = ini['eval']['device'].strip()
    except KeyError:
        device = 'cpu'
    ns.device = device
    try:
        batch_size = int(ini['eval']['batch_size'].strip())
    except KeyError:
        batch_size = 8
    ns.batch_size = batch_size
    return ns
예제 #3
0
파일: main.2.py 프로젝트: kkew3/dolphins-mc
import logging

logging.basicConfig(level=logging.INFO, format='%(name)s %(asctime)s -- %(message)s',
                    filename='main.{}.log'.format(_rid))

import sys

import torchvision.transforms as trans

import vmdata
import ezfirstae.loaddata as ld
import ezfirstae.train as train

max_epoch = 1
root = vmdata.dataset_root(9, (8, 0, 0))
normalize = trans.Normalize(*vmdata.get_normalization_stats(root, bw=True))
transform = ld.PreProcTransform(normalize, pool_scale=8, downsample_scale=3)
statdir = 'stat.{}'.format(_rid)
savedir = 'save.{}'.format(_rid)
device = 'cuda'

if __name__ == '__main__':
    logger = logging.getLogger()
    logger.info('Begin training: model=ezfirstae.models.pred9_f1to8(no-attention)')
    with vmdata.VideoDataset(root, transform=transform, max_mmap=3, max_gzcache=100) as vdset:
        trainset, testset = ld.contiguous_partition_dataset(range(len(vdset)), (5, 1))
        try:
            train.train_pred9_f1to8_no_attn(vdset, trainset, testset,
                                            savedir, statdir, device, max_epoch)
        except KeyboardInterrupt: