def get_inputs_field(mode, cfg): ''' Returns the inputs fields. Args: mode (str): the mode which is used cfg (dict): config dictionary ''' input_type = cfg['data']['input_type'] if input_type is None: inputs_field = None elif input_type == 'pointcloud': transform = transforms.Compose([ data.SubsamplePointcloud(cfg['data']['pointcloud_n']), data.PointcloudNoise(cfg['data']['pointcloud_noise']) ]) inputs_field = data.PointCloudField( cfg['data']['pointcloud_file'], transform=transform, multi_files=cfg['data']['multi_files']) elif input_type == 'idx': inputs_field = data.IndexField() else: raise ValueError('Invalid input type (%s)' % input_type) return inputs_field
# Shorthands out_dir = cfg['training']['out_dir'] generation_dir = os.path.join(out_dir, cfg['generation']['generation_dir']) if not args.eval_input: out_file = os.path.join(generation_dir, 'eval_meshes_full.pkl') out_file_class = os.path.join(generation_dir, 'eval_meshes.csv') else: out_file = os.path.join(generation_dir, 'eval_input_full.pkl') out_file_class = os.path.join(generation_dir, 'eval_input.csv') # Dataset points_field = data.PointsField(cfg['data']['points_iou_file'], unpackbits=cfg['data']['points_unpackbits'], multi_files=cfg['data']['multi_files']) pointcloud_field = data.PointCloudField(cfg['data']['pointcloud_chamfer_file'], multi_files=cfg['data']['multi_files']) fields = { 'points_iou': points_field, 'pointcloud_chamfer': pointcloud_field, 'idx': data.IndexField(), } print('Test split: ', cfg['data']['test_split']) dataset_folder = cfg['data']['path'] dataset = data.Shapes3dDataset(dataset_folder, fields, cfg['data']['test_split'], categories=cfg['data']['classes'], cfg=cfg)