if gpus: for gpu in gpus: tf.config.experimental.set_memory_growth(gpu, True) anchor_sizes = tf.convert_to_tensor(l_config.anchor_sizes, tf.float32) anchor_sizes = anchor_sizes / l_config.image_target_size[0] anchor_instance = l_anchors.Anchor(anchor_sizes, l_config.grid_sizes, l_config.image_target_size) anchors = anchor_instance.get_anchors() train_parse = l_datasets.Parse(l_config.train_image_dir, anchors, l_config.grid_sizes, l_config.image_target_size) val_parse = l_datasets.Parse(l_config.val_image_dir, anchors, l_config.grid_sizes, l_config.image_target_size) model = l_models.YoloV3(l_config.filters, anchors, l_config.grid_sizes, l_config.class_num) last_time = time.time() count = 0 images = tf.ones([1] + list(l_config.image_target_size) + [3]) @tf.function def pre(images): return model(images, training=False) while True: now = time.time() if now - last_time > 1: print(now - last_time)
val_parse = l_datasets.Parse(l_config.val_image_dir, anchors, l_config.grid_sizes, l_config.image_target_size) train_ds = tf.data.TextLineDataset(l_config.train_label_file) train_ds = train_ds.map(train_parse) train_ds = train_ds.shuffle(128) train_ds = train_ds.batch(l_config.batch_size) train_ds = train_ds.prefetch(tf.data.experimental.AUTOTUNE) val_ds = tf.data.TextLineDataset(l_config.val_label_file) val_ds = val_ds.map(val_parse) val_ds = val_ds.batch(l_config.batch_size) val_ds = val_ds.prefetch(tf.data.experimental.AUTOTUNE) model = l_models.YoloV3(anchors, l_config.grid_sizes, l_config.class_num, is_decode=True) loca_loss = l_losses.LocationLoss(anchors) conf_loss = l_losses.ConfidenceLoss() cate_loss = l_losses.CategoricalLoss() all_loss = l_losses.AllLoss() loca_metric = l_metrics.Location() conf_metric = l_metrics.Confidence() true_conf_metric = l_metrics.TrueConfidence() false_conf_metric = l_metrics.FalseConfidence() cate_metric = l_metrics.Categorical() precision = l_metrics.Precision() recall = l_metrics.Recall()