From 73e2e40caeb623f11b9d54c65c7ead3006aaf70b Mon Sep 17 00:00:00 2001 From: madisi98 Date: Wed, 18 Nov 2020 17:33:12 +0000 Subject: [PATCH 1/3] Packaged application --- efficientdet/aug/autoaugment.py | 2 +- efficientdet/aug/autoaugment_test.py | 2 +- efficientdet/aug/gridmask_test.py | 2 +- efficientdet/aug/mosaic_test.py | 2 +- efficientdet/backbone/backbone_factory.py | 6 +-- efficientdet/backbone/efficientnet_builder.py | 4 +- .../backbone/efficientnet_builder_test.py | 2 +- .../backbone/efficientnet_lite_builder.py | 6 +-- .../efficientnet_lite_builder_test.py | 2 +- efficientdet/backbone/efficientnet_model.py | 2 +- .../backbone/efficientnet_model_test.py | 4 +- efficientdet/coco_metric.py | 2 +- efficientdet/coco_metric_test.py | 2 +- efficientdet/dataloader.py | 8 ++-- efficientdet/dataloader_test.py | 10 ++--- efficientdet/dataset/create_coco_tfrecord.py | 9 ++-- .../dataset/create_coco_tfrecord_test.py | 2 +- .../dataset/create_pascal_tfrecord.py | 7 ++- .../dataset/create_pascal_tfrecord_test.py | 2 +- efficientdet/dataset/inspect_tfrecords.py | 13 +++--- efficientdet/det_model_fn.py | 16 +++---- efficientdet/det_model_fn_test.py | 2 +- efficientdet/efficientdet_arch.py | 10 ++--- efficientdet/efficientdet_arch_test.py | 6 +-- efficientdet/g3doc/__init__.py | 0 efficientdet/hparams_config_test.py | 2 +- efficientdet/inference.py | 16 +++---- efficientdet/iou_utils_test.py | 2 +- efficientdet/keras/anchors.py | 12 +++--- efficientdet/keras/efficientdet_keras.py | 18 ++++---- efficientdet/keras/efficientdet_keras_test.py | 6 +-- efficientdet/keras/eval.py | 21 +++++---- efficientdet/keras/fpn_configs.py | 2 +- efficientdet/keras/fpn_configs_test.py | 2 +- efficientdet/keras/infer.py | 6 +-- efficientdet/keras/inference.py | 12 +++--- efficientdet/keras/inference_test.py | 4 +- efficientdet/keras/inspector.py | 11 +++-- efficientdet/keras/inspector_test.py | 2 +- efficientdet/keras/label_util.py | 2 +- efficientdet/keras/postprocess.py | 6 +-- efficientdet/keras/postprocess_test.py | 2 +- efficientdet/keras/segmentation.py | 4 +- efficientdet/keras/train.py | 17 +++++--- efficientdet/keras/train_lib.py | 16 +++---- efficientdet/keras/train_lib_test.py | 6 +-- efficientdet/keras/util_keras.py | 2 +- efficientdet/keras/util_keras_test.py | 4 +- efficientdet/keras/wbf_test.py | 2 +- efficientdet/main.py | 13 +++--- efficientdet/model_inspect.py | 12 ++++-- efficientdet/model_inspect_test.py | 4 +- .../object_detection/argmax_matcher.py | 4 +- .../object_detection/faster_rcnn_box_coder.py | 4 +- efficientdet/object_detection/preprocessor.py | 2 +- .../object_detection/target_assigner.py | 4 +- efficientdet/testdata/__init__.py | 0 efficientdet/utils_test.py | 2 +- efficientdet/visualize/shape_utils.py | 2 +- efficientdet/visualize/vis_utils.py | 4 +- efficientdet/visualize/vis_utils_test.py | 4 +- setup.py | 43 +++++++++++++++++++ 62 files changed, 233 insertions(+), 165 deletions(-) create mode 100644 efficientdet/g3doc/__init__.py create mode 100644 efficientdet/testdata/__init__.py create mode 100644 setup.py diff --git a/efficientdet/aug/autoaugment.py b/efficientdet/aug/autoaugment.py index a2faf124b..c4ad67d26 100644 --- a/efficientdet/aug/autoaugment.py +++ b/efficientdet/aug/autoaugment.py @@ -23,7 +23,7 @@ import tensorflow.compat.v1 as tf from tensorflow_addons import image as image_ops -import hparams_config +from .. import hparams_config # This signifies the max integer that the controller RNN could predict for the # augmentation scheme. diff --git a/efficientdet/aug/autoaugment_test.py b/efficientdet/aug/autoaugment_test.py index 2c0e1c3b2..6fcde16c6 100644 --- a/efficientdet/aug/autoaugment_test.py +++ b/efficientdet/aug/autoaugment_test.py @@ -16,7 +16,7 @@ from absl import logging import tensorflow.compat.v1 as tf -from aug import autoaugment +from . import autoaugment class AutoaugmentTest(tf.test.TestCase): diff --git a/efficientdet/aug/gridmask_test.py b/efficientdet/aug/gridmask_test.py index cad712a39..322ffae67 100644 --- a/efficientdet/aug/gridmask_test.py +++ b/efficientdet/aug/gridmask_test.py @@ -16,7 +16,7 @@ from absl import logging import tensorflow.compat.v1 as tf -from aug import gridmask +from . import gridmask class GridMaskTest(tf.test.TestCase): diff --git a/efficientdet/aug/mosaic_test.py b/efficientdet/aug/mosaic_test.py index 65e6d572f..b32df1bc8 100644 --- a/efficientdet/aug/mosaic_test.py +++ b/efficientdet/aug/mosaic_test.py @@ -16,7 +16,7 @@ from absl import logging import tensorflow.compat.v1 as tf -from aug import mosaic +from . import mosaic class MosaicTest(tf.test.TestCase): diff --git a/efficientdet/backbone/backbone_factory.py b/efficientdet/backbone/backbone_factory.py index 69cb1a743..0c44603f0 100644 --- a/efficientdet/backbone/backbone_factory.py +++ b/efficientdet/backbone/backbone_factory.py @@ -17,9 +17,9 @@ from absl import logging import tensorflow as tf -from backbone import efficientnet_builder -from backbone import efficientnet_lite_builder -from backbone import efficientnet_model +from . import efficientnet_builder +from . import efficientnet_lite_builder +from . import efficientnet_model def get_model_builder(model_name): diff --git a/efficientdet/backbone/efficientnet_builder.py b/efficientdet/backbone/efficientnet_builder.py index b173a48e9..dc373728b 100644 --- a/efficientdet/backbone/efficientnet_builder.py +++ b/efficientdet/backbone/efficientnet_builder.py @@ -24,8 +24,8 @@ import numpy as np import tensorflow as tf -import utils -from backbone import efficientnet_model +from .. import utils +from . import efficientnet_model def efficientnet_params(model_name): diff --git a/efficientdet/backbone/efficientnet_builder_test.py b/efficientdet/backbone/efficientnet_builder_test.py index 42480a0db..4dd6f4497 100644 --- a/efficientdet/backbone/efficientnet_builder_test.py +++ b/efficientdet/backbone/efficientnet_builder_test.py @@ -17,7 +17,7 @@ import numpy as np import tensorflow.compat.v1 as tf -from backbone import efficientnet_builder +from . import efficientnet_builder class EfficientnetBuilderTest(tf.test.TestCase): diff --git a/efficientdet/backbone/efficientnet_lite_builder.py b/efficientdet/backbone/efficientnet_lite_builder.py index abd537080..d4c6d71f0 100644 --- a/efficientdet/backbone/efficientnet_lite_builder.py +++ b/efficientdet/backbone/efficientnet_lite_builder.py @@ -21,9 +21,9 @@ from absl import logging import tensorflow.compat.v1 as tf -import utils -from backbone import efficientnet_builder -from backbone import efficientnet_model +from .. import utils +from . import efficientnet_builder +from . import efficientnet_model # Edge models use inception-style MEAN and STDDEV for better post-quantization. MEAN_RGB = [127.0, 127.0, 127.0] diff --git a/efficientdet/backbone/efficientnet_lite_builder_test.py b/efficientdet/backbone/efficientnet_lite_builder_test.py index b4af3be7b..99738cd03 100644 --- a/efficientdet/backbone/efficientnet_lite_builder_test.py +++ b/efficientdet/backbone/efficientnet_lite_builder_test.py @@ -17,7 +17,7 @@ import numpy as np import tensorflow.compat.v1 as tf -from backbone import efficientnet_lite_builder +from . import efficientnet_lite_builder class EfficientnetBuilderTest(tf.test.TestCase): diff --git a/efficientdet/backbone/efficientnet_model.py b/efficientdet/backbone/efficientnet_model.py index bd7c19754..323b825af 100644 --- a/efficientdet/backbone/efficientnet_model.py +++ b/efficientdet/backbone/efficientnet_model.py @@ -29,7 +29,7 @@ from six.moves import xrange import tensorflow as tf -import utils +from .. import utils GlobalParams = collections.namedtuple('GlobalParams', [ 'batch_norm_momentum', 'batch_norm_epsilon', 'dropout_rate', 'data_format', diff --git a/efficientdet/backbone/efficientnet_model_test.py b/efficientdet/backbone/efficientnet_model_test.py index beb7e46fa..a4a9ae7f5 100644 --- a/efficientdet/backbone/efficientnet_model_test.py +++ b/efficientdet/backbone/efficientnet_model_test.py @@ -16,8 +16,8 @@ from absl import logging import tensorflow.compat.v1 as tf -import utils -from backbone import efficientnet_model +from .. import utils +from . import efficientnet_model class ModelTest(tf.test.TestCase): diff --git a/efficientdet/coco_metric.py b/efficientdet/coco_metric.py index f9f454af8..747585664 100644 --- a/efficientdet/coco_metric.py +++ b/efficientdet/coco_metric.py @@ -25,7 +25,7 @@ from pycocotools.cocoeval import COCOeval import tensorflow as tf -from keras import label_util +from .keras import label_util class EvaluationMetric(): diff --git a/efficientdet/coco_metric_test.py b/efficientdet/coco_metric_test.py index e184bef22..862a58656 100644 --- a/efficientdet/coco_metric_test.py +++ b/efficientdet/coco_metric_test.py @@ -16,7 +16,7 @@ from absl import logging import tensorflow.compat.v1 as tf -import coco_metric +from . import coco_metric class CocoMetricTest(tf.test.TestCase): diff --git a/efficientdet/dataloader.py b/efficientdet/dataloader.py index be4986baf..06b816610 100644 --- a/efficientdet/dataloader.py +++ b/efficientdet/dataloader.py @@ -16,10 +16,10 @@ from absl import logging import tensorflow as tf -import utils -from keras import anchors -from object_detection import preprocessor -from object_detection import tf_example_decoder +from . import utils +from .keras import anchors +from .object_detection import preprocessor +from .object_detection import tf_example_decoder class InputProcessor: diff --git a/efficientdet/dataloader_test.py b/efficientdet/dataloader_test.py index 8f5f6c51b..7a4bf0e40 100644 --- a/efficientdet/dataloader_test.py +++ b/efficientdet/dataloader_test.py @@ -17,11 +17,11 @@ import tempfile import tensorflow as tf -import dataloader -import hparams_config -from dataset import tfrecord_util -from keras import anchors -from object_detection import tf_example_decoder +from . import dataloader +from . import hparams_config +from .dataset import tfrecord_util +from .keras import anchors +from .object_detection import tf_example_decoder class DataloaderTest(tf.test.TestCase): diff --git a/efficientdet/dataset/create_coco_tfrecord.py b/efficientdet/dataset/create_coco_tfrecord.py index b7904fe48..0cd204247 100644 --- a/efficientdet/dataset/create_coco_tfrecord.py +++ b/efficientdet/dataset/create_coco_tfrecord.py @@ -39,8 +39,8 @@ from pycocotools import mask import tensorflow as tf -from dataset import label_map_util -from dataset import tfrecord_util +from . import label_map_util +from . import tfrecord_util flags.DEFINE_boolean( 'include_masks', False, 'Whether to include instance segmentations masks ' @@ -359,5 +359,8 @@ def main(_): FLAGS.include_masks) -if __name__ == '__main__': +def launcher(): app.run(main) + +if __name__ == '__main__': + launcher() diff --git a/efficientdet/dataset/create_coco_tfrecord_test.py b/efficientdet/dataset/create_coco_tfrecord_test.py index e12c1e7d8..ea555a1e7 100644 --- a/efficientdet/dataset/create_coco_tfrecord_test.py +++ b/efficientdet/dataset/create_coco_tfrecord_test.py @@ -25,7 +25,7 @@ import six import tensorflow as tf -from dataset import create_coco_tfrecord +from . import create_coco_tfrecord class CreateCocoTFRecordTest(tf.test.TestCase): diff --git a/efficientdet/dataset/create_pascal_tfrecord.py b/efficientdet/dataset/create_pascal_tfrecord.py index d7000a1e6..2b44f627c 100644 --- a/efficientdet/dataset/create_pascal_tfrecord.py +++ b/efficientdet/dataset/create_pascal_tfrecord.py @@ -31,7 +31,7 @@ import PIL.Image import tensorflow as tf -from dataset import tfrecord_util +from . import tfrecord_util flags.DEFINE_string('data_dir', '', 'Root directory to raw PASCAL VOC dataset.') flags.DEFINE_string('set', 'train', 'Convert training set, validation set or ' @@ -315,5 +315,8 @@ def main(_): json.dump(ann_json_dict, f) -if __name__ == '__main__': +def launcher(): app.run(main) + +if __name__ == '__main__': + launcher() diff --git a/efficientdet/dataset/create_pascal_tfrecord_test.py b/efficientdet/dataset/create_pascal_tfrecord_test.py index 4b51b0b95..72feae963 100644 --- a/efficientdet/dataset/create_pascal_tfrecord_test.py +++ b/efficientdet/dataset/create_pascal_tfrecord_test.py @@ -22,7 +22,7 @@ import six import tensorflow as tf -from dataset import create_pascal_tfrecord +from . import create_pascal_tfrecord class CreatePascalTFRecordTest(tf.test.TestCase): diff --git a/efficientdet/dataset/inspect_tfrecords.py b/efficientdet/dataset/inspect_tfrecords.py index d6d9b0e85..2ae7d1e86 100644 --- a/efficientdet/dataset/inspect_tfrecords.py +++ b/efficientdet/dataset/inspect_tfrecords.py @@ -23,10 +23,10 @@ from PIL import Image sys.path.append('./') -import dataloader -import hparams_config -import utils -from visualize import vis_utils +from .. import dataloader +from .. import hparams_config +from .. import utils +from ..visualize import vis_utils flags.DEFINE_string('save_samples_dir', 'tfrecord_samples', 'Location of samples to save') @@ -134,5 +134,8 @@ def main(_): ) -if __name__ == '__main__': +def launcher(): app.run(main) + +if __name__ == '__main__': + launcher() diff --git a/efficientdet/det_model_fn.py b/efficientdet/det_model_fn.py index 91ac57c1b..dea70eb42 100644 --- a/efficientdet/det_model_fn.py +++ b/efficientdet/det_model_fn.py @@ -18,14 +18,14 @@ from absl import logging import numpy as np import tensorflow.compat.v1 as tf -import coco_metric -import efficientdet_arch -import hparams_config -import nms_np -import utils -from keras import anchors -from keras import efficientdet_keras -from keras import postprocess +from . import coco_metric +from . import efficientdet_arch +from . import hparams_config +from . import nms_np +from . import utils +from .keras import anchors +from .keras import efficientdet_keras +from .keras import postprocess _DEFAULT_BATCH_SIZE = 64 diff --git a/efficientdet/det_model_fn_test.py b/efficientdet/det_model_fn_test.py index 1b33758b2..e74fb8ffe 100644 --- a/efficientdet/det_model_fn_test.py +++ b/efficientdet/det_model_fn_test.py @@ -14,7 +14,7 @@ # ============================================================================== """Tests for det_model_fn.""" import tensorflow as tf -import det_model_fn +from . import det_model_fn def legacy_focal_loss(logits, targets, alpha, gamma, normalizer, _=0): diff --git a/efficientdet/efficientdet_arch.py b/efficientdet/efficientdet_arch.py index 543ea0713..03967b43a 100644 --- a/efficientdet/efficientdet_arch.py +++ b/efficientdet/efficientdet_arch.py @@ -25,11 +25,11 @@ import numpy as np import tensorflow.compat.v1 as tf -import hparams_config -import utils -from backbone import backbone_factory -from backbone import efficientnet_builder -from keras import fpn_configs +from . import hparams_config +from . import utils +from .backbone import backbone_factory +from .backbone import efficientnet_builder +from .keras import fpn_configs ################################################################################ diff --git a/efficientdet/efficientdet_arch_test.py b/efficientdet/efficientdet_arch_test.py index f09392686..0ca392e13 100644 --- a/efficientdet/efficientdet_arch_test.py +++ b/efficientdet/efficientdet_arch_test.py @@ -16,9 +16,9 @@ from absl import logging import tensorflow.compat.v1 as tf -import efficientdet_arch -import hparams_config -import utils +from . import efficientdet_arch +from . import hparams_config +from . import utils class EfficientDetArchTest(tf.test.TestCase): diff --git a/efficientdet/g3doc/__init__.py b/efficientdet/g3doc/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/efficientdet/hparams_config_test.py b/efficientdet/hparams_config_test.py index 70c75d503..cc14505e9 100644 --- a/efficientdet/hparams_config_test.py +++ b/efficientdet/hparams_config_test.py @@ -19,7 +19,7 @@ import tensorflow.compat.v1 as tf import yaml -import hparams_config +from . import hparams_config class HparamsConfigTest(tf.test.TestCase): diff --git a/efficientdet/inference.py b/efficientdet/inference.py index aeafce165..442d74143 100644 --- a/efficientdet/inference.py +++ b/efficientdet/inference.py @@ -23,14 +23,14 @@ from PIL import Image import tensorflow.compat.v1 as tf -import dataloader -import det_model_fn -import hparams_config -import utils -from keras import efficientdet_keras -from keras import label_util -from keras import postprocess -from visualize import vis_utils +from . import dataloader +from . import det_model_fn +from . import hparams_config +from . import utils +from .keras import efficientdet_keras +from .keras import label_util +from .keras import postprocess +from .visualize import vis_utils from tensorflow.python.client import timeline # pylint: disable=g-direct-tensorflow-import diff --git a/efficientdet/iou_utils_test.py b/efficientdet/iou_utils_test.py index f02e00091..e3709cc05 100644 --- a/efficientdet/iou_utils_test.py +++ b/efficientdet/iou_utils_test.py @@ -15,7 +15,7 @@ """Tests for iou_utils.""" from absl import logging import tensorflow as tf -import iou_utils +from . import iou_utils class IouUtilsTest(tf.test.TestCase): diff --git a/efficientdet/keras/anchors.py b/efficientdet/keras/anchors.py index e4d4b1f1a..4b221d806 100644 --- a/efficientdet/keras/anchors.py +++ b/efficientdet/keras/anchors.py @@ -17,12 +17,12 @@ import numpy as np import tensorflow as tf -import utils -from object_detection import argmax_matcher -from object_detection import box_list -from object_detection import faster_rcnn_box_coder -from object_detection import region_similarity_calculator -from object_detection import target_assigner +from .. import utils +from ..object_detection import argmax_matcher +from ..object_detection import box_list +from ..object_detection import faster_rcnn_box_coder +from ..object_detection import region_similarity_calculator +from ..object_detection import target_assigner MAX_DETECTION_POINTS = 5000 diff --git a/efficientdet/keras/efficientdet_keras.py b/efficientdet/keras/efficientdet_keras.py index 271d08c76..0aad884b4 100644 --- a/efficientdet/keras/efficientdet_keras.py +++ b/efficientdet/keras/efficientdet_keras.py @@ -18,15 +18,15 @@ import numpy as np import tensorflow as tf -import dataloader -import hparams_config -import utils -from backbone import backbone_factory -from backbone import efficientnet_builder -from keras import fpn_configs -from keras import postprocess -from keras import tfmot -from keras import util_keras +from .. import dataloader +from .. import hparams_config +from .. import utils +from ..backbone import backbone_factory +from ..backbone import efficientnet_builder +from . import fpn_configs +from . import postprocess +from . import tfmot +from . import util_keras # pylint: disable=arguments-differ # fo keras layers. diff --git a/efficientdet/keras/efficientdet_keras_test.py b/efficientdet/keras/efficientdet_keras_test.py index 87528ccee..3b7d21907 100644 --- a/efficientdet/keras/efficientdet_keras_test.py +++ b/efficientdet/keras/efficientdet_keras_test.py @@ -17,9 +17,9 @@ import tempfile from absl import logging import tensorflow.compat.v1 as tf -import efficientdet_arch as legacy_arch -import hparams_config -from keras import efficientdet_keras +from .. import efficientdet_arch as legacy_arch +from .. import hparams_config +from . import efficientdet_keras SEED = 111111 diff --git a/efficientdet/keras/eval.py b/efficientdet/keras/eval.py index cbf4924ae..ceb5e29d3 100644 --- a/efficientdet/keras/eval.py +++ b/efficientdet/keras/eval.py @@ -18,15 +18,15 @@ from absl import logging import tensorflow as tf -import coco_metric -import dataloader -import hparams_config -import utils +from .. import coco_metric +from .. import dataloader +from .. import hparams_config +from .. import utils -from keras import anchors -from keras import efficientdet_keras -from keras import label_util -from keras import postprocess +from . import anchors +from . import efficientdet_keras +from . import label_util +from . import postprocess # Cloud TPU Cluster Resolvers flags.DEFINE_string('tpu', None, 'The Cloud TPU name.') @@ -124,8 +124,11 @@ def eval_update(gt, pred): print(FLAGS.model_name, metric_dict) -if __name__ == '__main__': +def launcher(): flags.mark_flag_as_required('val_file_pattern') flags.mark_flag_as_required('model_dir') logging.set_verbosity(logging.WARNING) app.run(main) + +if __name__ == '__main__': + launcher() diff --git a/efficientdet/keras/fpn_configs.py b/efficientdet/keras/fpn_configs.py index d1104bfe5..90c098c31 100644 --- a/efficientdet/keras/fpn_configs.py +++ b/efficientdet/keras/fpn_configs.py @@ -18,7 +18,7 @@ QuFPN is proposed in https://github.com/google/automl/pull/580 """ import itertools -import hparams_config +from .. import hparams_config def bifpn_config(min_level, max_level, weight_method): diff --git a/efficientdet/keras/fpn_configs_test.py b/efficientdet/keras/fpn_configs_test.py index 1e37ba5b8..1d4eeabc7 100644 --- a/efficientdet/keras/fpn_configs_test.py +++ b/efficientdet/keras/fpn_configs_test.py @@ -15,7 +15,7 @@ """Tests for fpn_configs.""" from absl import logging import tensorflow as tf -from keras import fpn_configs +from . import fpn_configs class FpnConfigTest(tf.test.TestCase): diff --git a/efficientdet/keras/infer.py b/efficientdet/keras/infer.py index 15b0a45f2..cbecb6ce0 100644 --- a/efficientdet/keras/infer.py +++ b/efficientdet/keras/infer.py @@ -21,9 +21,9 @@ from PIL import Image import tensorflow as tf -import hparams_config -import inference -from keras import efficientdet_keras +from .. import hparams_config +from .. import inference +from . import efficientdet_keras flags.DEFINE_string('image_path', None, 'Location of test image.') flags.DEFINE_string('output_dir', None, 'Directory of annotated output images.') diff --git a/efficientdet/keras/inference.py b/efficientdet/keras/inference.py index cbe82ba59..750ed5e5f 100644 --- a/efficientdet/keras/inference.py +++ b/efficientdet/keras/inference.py @@ -21,12 +21,12 @@ import numpy as np import tensorflow as tf -import hparams_config -import utils -from keras import efficientdet_keras -from keras import label_util -from keras import util_keras -from visualize import vis_utils +from .. import hparams_config +from .. import utils +from . import efficientdet_keras +from . import label_util +from . import util_keras +from ..visualize import vis_utils def visualize_image(image, diff --git a/efficientdet/keras/inference_test.py b/efficientdet/keras/inference_test.py index 66bd42c87..806cf8dc2 100644 --- a/efficientdet/keras/inference_test.py +++ b/efficientdet/keras/inference_test.py @@ -17,8 +17,8 @@ import tempfile from absl import logging import tensorflow as tf -from keras import efficientdet_keras -from keras import inference +from . import efficientdet_keras +from . import inference class InferenceTest(tf.test.TestCase): diff --git a/efficientdet/keras/inspector.py b/efficientdet/keras/inspector.py index 555a19942..b0b891155 100644 --- a/efficientdet/keras/inspector.py +++ b/efficientdet/keras/inspector.py @@ -23,9 +23,9 @@ from PIL import Image import tensorflow as tf -import hparams_config -import utils -from keras import inference +from .. import hparams_config +from .. import utils +from . import inference flags.DEFINE_string('model_name', 'efficientdet-d0', 'Model.') flags.DEFINE_string('mode', 'infer', @@ -177,6 +177,9 @@ def main(_): break -if __name__ == '__main__': +def launcher(): logging.set_verbosity(logging.ERROR) app.run(main) + +if __name__ == '__main__': + launcher() diff --git a/efficientdet/keras/inspector_test.py b/efficientdet/keras/inspector_test.py index 2c7c80e8f..38b429053 100644 --- a/efficientdet/keras/inspector_test.py +++ b/efficientdet/keras/inspector_test.py @@ -23,7 +23,7 @@ from PIL import Image import tensorflow as tf -from keras import inspector +from . import inspector FLAGS = flags.FLAGS diff --git a/efficientdet/keras/label_util.py b/efficientdet/keras/label_util.py index 5cb009102..44c15741a 100644 --- a/efficientdet/keras/label_util.py +++ b/efficientdet/keras/label_util.py @@ -15,7 +15,7 @@ """A few predefined label id mapping.""" import tensorflow as tf import yaml -from hparams_config import Config +from ..hparams_config import Config coco = { # 0: 'background', diff --git a/efficientdet/keras/postprocess.py b/efficientdet/keras/postprocess.py index b506cfc8a..8c5f90f18 100644 --- a/efficientdet/keras/postprocess.py +++ b/efficientdet/keras/postprocess.py @@ -19,9 +19,9 @@ from absl import logging import tensorflow as tf -import nms_np -import utils -from keras import anchors +from .. import nms_np +from .. import utils +from . import anchors T = tf.Tensor # a shortcut for typing check. CLASS_OFFSET = 1 diff --git a/efficientdet/keras/postprocess_test.py b/efficientdet/keras/postprocess_test.py index 89e210c08..1e1104138 100644 --- a/efficientdet/keras/postprocess_test.py +++ b/efficientdet/keras/postprocess_test.py @@ -16,7 +16,7 @@ from absl import logging import tensorflow as tf -from keras import postprocess +from . import postprocess class PostprocessTest(tf.test.TestCase): diff --git a/efficientdet/keras/segmentation.py b/efficientdet/keras/segmentation.py index c7f6b7e4a..527ba9be8 100644 --- a/efficientdet/keras/segmentation.py +++ b/efficientdet/keras/segmentation.py @@ -18,8 +18,8 @@ import tensorflow as tf import tensorflow_datasets as tfds -import hparams_config -from keras import efficientdet_keras +from .. import hparams_config +from . import efficientdet_keras def create_mask(pred_mask): diff --git a/efficientdet/keras/train.py b/efficientdet/keras/train.py index 0e9d2d68b..9d379fc64 100644 --- a/efficientdet/keras/train.py +++ b/efficientdet/keras/train.py @@ -19,12 +19,12 @@ from absl import logging import tensorflow as tf -import dataloader -import hparams_config -import utils -from keras import tfmot -from keras import train_lib -from keras import util_keras +from .. import dataloader +from .. import hparams_config +from .. import utils +from . import tfmot +from . import train_lib +from . import util_keras # Cloud TPU Cluster Resolvers @@ -233,6 +233,9 @@ def get_dataset(is_training, config): model.save_weights(os.path.join(FLAGS.model_dir, 'ckpt-final')) -if __name__ == '__main__': +def launcher(): logging.set_verbosity(logging.INFO) app.run(main) + +if __name__ == '__main__': + launcher() diff --git a/efficientdet/keras/train_lib.py b/efficientdet/keras/train_lib.py index acdf4013d..2218bde78 100644 --- a/efficientdet/keras/train_lib.py +++ b/efficientdet/keras/train_lib.py @@ -21,12 +21,12 @@ import numpy as np import tensorflow as tf -import inference -import iou_utils -import utils -from keras import anchors -from keras import efficientdet_keras -from keras import postprocess +from .. import inference +from .. import iou_utils +from .. import utils +from . import anchors +from . import efficientdet_keras +from . import postprocess from tensorflow_model_optimization.python.core.sparsity.keras import pruning_wrapper @@ -316,8 +316,8 @@ def __init__(self, test_dataset, update_freq=None): self.update_freq = update_freq def set_model(self, model: tf.keras.Model): - import coco_metric - from keras import label_util + from .. import coco_metric + from . import label_util self.model = model config = model.config self.config = config diff --git a/efficientdet/keras/train_lib_test.py b/efficientdet/keras/train_lib_test.py index db740850b..3b4220344 100644 --- a/efficientdet/keras/train_lib_test.py +++ b/efficientdet/keras/train_lib_test.py @@ -16,9 +16,9 @@ from absl import logging import tensorflow as tf -import det_model_fn as legacy_fn -import hparams_config -from keras import train_lib +from .. import det_model_fn as legacy_fn +from .. import hparams_config +from . import train_lib class TrainLibTest(tf.test.TestCase): diff --git a/efficientdet/keras/util_keras.py b/efficientdet/keras/util_keras.py index 1da47e999..bbe1514f5 100644 --- a/efficientdet/keras/util_keras.py +++ b/efficientdet/keras/util_keras.py @@ -16,7 +16,7 @@ from typing import Text from absl import logging import tensorflow as tf -import utils +from .. import utils def build_batch_norm(is_training_bn: bool, diff --git a/efficientdet/keras/util_keras_test.py b/efficientdet/keras/util_keras_test.py index 91eafccb6..1993fbecc 100644 --- a/efficientdet/keras/util_keras_test.py +++ b/efficientdet/keras/util_keras_test.py @@ -16,8 +16,8 @@ from absl.testing import parameterized import tensorflow as tf -import utils -from keras import util_keras +from .. import utils +from . import util_keras class KerasUtilTest(tf.test.TestCase, parameterized.TestCase): diff --git a/efficientdet/keras/wbf_test.py b/efficientdet/keras/wbf_test.py index 5eebc6202..79f78b70f 100644 --- a/efficientdet/keras/wbf_test.py +++ b/efficientdet/keras/wbf_test.py @@ -16,7 +16,7 @@ from absl import logging import tensorflow as tf -from keras import wbf +from . import wbf class WbfTest(tf.test.TestCase): diff --git a/efficientdet/main.py b/efficientdet/main.py index 219e21c67..7e6da5910 100644 --- a/efficientdet/main.py +++ b/efficientdet/main.py @@ -21,10 +21,10 @@ import numpy as np import tensorflow.compat.v1 as tf -import dataloader -import det_model_fn -import hparams_config -import utils +from . import dataloader +from . import det_model_fn +from . import hparams_config +from . import utils flags.DEFINE_string( 'tpu', @@ -363,5 +363,8 @@ def run_train_and_eval(e): logging.info('Invalid mode: %s', FLAGS.mode) -if __name__ == '__main__': +def launcher(): app.run(main) + +if __name__ == '__main__': + launcher() diff --git a/efficientdet/model_inspect.py b/efficientdet/model_inspect.py index f9d98c748..92ab72005 100644 --- a/efficientdet/model_inspect.py +++ b/efficientdet/model_inspect.py @@ -25,9 +25,9 @@ from PIL import Image import tensorflow.compat.v1 as tf -import hparams_config -import inference -import utils +from . import hparams_config +from . import inference +from . import utils from tensorflow.python.client import timeline # pylint: disable=g-direct-tensorflow-import flags.DEFINE_string('model_name', 'efficientdet-d0', 'Model.') @@ -513,8 +513,12 @@ def main(_): trace_filename=FLAGS.trace_filename) -if __name__ == '__main__': +def launcher(): logging.set_verbosity(logging.WARNING) tf.enable_v2_tensorshape() tf.disable_eager_execution() app.run(main) + + +if __name__ == '__main__': + launcher() diff --git a/efficientdet/model_inspect_test.py b/efficientdet/model_inspect_test.py index 6fd0a5dd8..3cf4bdc9b 100644 --- a/efficientdet/model_inspect_test.py +++ b/efficientdet/model_inspect_test.py @@ -23,8 +23,8 @@ from PIL import Image import tensorflow.compat.v1 as tf -import model_inspect -import utils +from . import model_inspect +from . import utils FLAGS = flags.FLAGS diff --git a/efficientdet/object_detection/argmax_matcher.py b/efficientdet/object_detection/argmax_matcher.py index 56ffdd0d4..c33f22613 100644 --- a/efficientdet/object_detection/argmax_matcher.py +++ b/efficientdet/object_detection/argmax_matcher.py @@ -27,8 +27,8 @@ """ import tensorflow.compat.v1 as tf -from object_detection import matcher -from object_detection import shape_utils +from . import matcher +from . import shape_utils class ArgMaxMatcher(matcher.Matcher): diff --git a/efficientdet/object_detection/faster_rcnn_box_coder.py b/efficientdet/object_detection/faster_rcnn_box_coder.py index a06ba10f0..87bfd4a39 100644 --- a/efficientdet/object_detection/faster_rcnn_box_coder.py +++ b/efficientdet/object_detection/faster_rcnn_box_coder.py @@ -29,8 +29,8 @@ import tensorflow.compat.v1 as tf -from object_detection import box_coder -from object_detection import box_list +from . import box_coder +from . import box_list EPSILON = 1e-8 diff --git a/efficientdet/object_detection/preprocessor.py b/efficientdet/object_detection/preprocessor.py index 557d5f7e3..174e0dc2b 100644 --- a/efficientdet/object_detection/preprocessor.py +++ b/efficientdet/object_detection/preprocessor.py @@ -41,7 +41,7 @@ import tensorflow.compat.v1 as tf -from object_detection import box_list +from . import box_list def _flip_boxes_left_right(boxes): diff --git a/efficientdet/object_detection/target_assigner.py b/efficientdet/object_detection/target_assigner.py index a7297d2d2..2ff4a9f48 100644 --- a/efficientdet/object_detection/target_assigner.py +++ b/efficientdet/object_detection/target_assigner.py @@ -32,8 +32,8 @@ """ import tensorflow.compat.v1 as tf -from object_detection import box_list -from object_detection import shape_utils +from . import box_list +from . import shape_utils KEYPOINTS_FIELD_NAME = 'keypoints' diff --git a/efficientdet/testdata/__init__.py b/efficientdet/testdata/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/efficientdet/utils_test.py b/efficientdet/utils_test.py index 79ba89038..87a94fa49 100644 --- a/efficientdet/utils_test.py +++ b/efficientdet/utils_test.py @@ -17,7 +17,7 @@ from absl import logging import tensorflow.compat.v1 as tf -import utils +from . import utils class UtilsTest(tf.test.TestCase): diff --git a/efficientdet/visualize/shape_utils.py b/efficientdet/visualize/shape_utils.py index 6aed19f62..f335b7b72 100644 --- a/efficientdet/visualize/shape_utils.py +++ b/efficientdet/visualize/shape_utils.py @@ -16,7 +16,7 @@ from six.moves import zip import tensorflow.compat.v1 as tf -from visualize import static_shape +from . import static_shape def _is_tensor(t): diff --git a/efficientdet/visualize/vis_utils.py b/efficientdet/visualize/vis_utils.py index 2d30bda1d..fb6c630eb 100644 --- a/efficientdet/visualize/vis_utils.py +++ b/efficientdet/visualize/vis_utils.py @@ -32,8 +32,8 @@ from six.moves import zip import tensorflow.compat.v1 as tf -from visualize import shape_utils -from visualize import standard_fields as fields +from . import shape_utils +from . import standard_fields as fields _TITLE_LEFT_MARGIN = 10 _TITLE_TOP_MARGIN = 10 diff --git a/efficientdet/visualize/vis_utils_test.py b/efficientdet/visualize/vis_utils_test.py index 66f710bc9..1e2c91235 100644 --- a/efficientdet/visualize/vis_utils_test.py +++ b/efficientdet/visualize/vis_utils_test.py @@ -21,8 +21,8 @@ from six.moves import range import tensorflow.compat.v1 as tf -from visualize import standard_fields as fields -from visualize import vis_utils +from . import standard_fields as fields +from . import vis_utils _TESTDATA_PATH = 'testdata' diff --git a/setup.py b/setup.py new file mode 100644 index 000000000..ce39e4d6a --- /dev/null +++ b/setup.py @@ -0,0 +1,43 @@ +import setuptools + + +setuptools.setup( + name = 'efficientdet', + version = '0.0.0', + description = '', + url = '', + author = 'PyPackager', + author_email = '', + maintainer = '', + maintainer_email = '', + packages = setuptools.find_packages(), + install_requires = [ + 'lxml>=4.6.1', + 'absl-py>=0.7.1', + 'matplotlib>=3.0.3', + 'numpy>=1.16.4', + 'Pillow>=6.0.0', + 'PyYAML>=5.1', + 'six>=1.12.0', + 'tensorflow>=2.3.0', + 'tensorflow-addons>=0.11.2', + 'neural-structured-learning>=1.3.1', + 'tensorflow-model-optimization>=0.5', + 'Cython>=0.29.13', + ], + dependency_links = [ + 'git+https://github.com/cocodataset/cocoapi.git#subdirectory=PythonAPI' + ], + entry_points = { + 'console_scripts': [ + 'efficientdet-tf-model-inspect=efficientdet.model_inspect:launcher', + 'efficientdet-tf-main=efficientdet.main:launcher', + 'efficientdet-keras-train=efficientdet.keras.train:launcher', + 'efficientdet-keras-inspector=efficientdet.keras.inspector:launcher', + 'efficientdet-keras-eval=efficientdet.keras.eval:launcher', + 'efficientdet-create-coco-tfrecord=efficientdet.dataset.create_coco_tfrecord:launcher', + 'efficientdet-create-pascal-tfrecord=efficientdet.dataset.create_pascal_tfrecord:launcher', + 'efficientdet-inspect-tfrecord=efficientdet.dataset.inspect_tfrecords:launcher' + ] + } +) From a2667c65592274ef0ed42ba02b32a0e778625bde Mon Sep 17 00:00:00 2001 From: madisi98 Date: Sun, 22 Nov 2020 12:47:43 +0000 Subject: [PATCH 2/3] Added support for script execution (which was removed in the previous commit). Added pycocotools requirement instead of its dependency link. --- efficientdet/aug/autoaugment_test.py | 8 ++++++++ efficientdet/aug/gridmask_test.py | 8 ++++++++ efficientdet/aug/mosaic_test.py | 8 ++++++++ efficientdet/backbone/efficientnet_builder_test.py | 8 ++++++++ .../backbone/efficientnet_lite_builder_test.py | 8 ++++++++ efficientdet/backbone/efficientnet_model_test.py | 8 ++++++++ efficientdet/coco_metric_test.py | 8 ++++++++ efficientdet/dataloader_test.py | 8 ++++++++ efficientdet/dataset/create_coco_tfrecord.py | 9 ++++++++- efficientdet/dataset/create_coco_tfrecord_test.py | 8 ++++++++ efficientdet/dataset/create_pascal_tfrecord.py | 10 +++++++++- .../dataset/create_pascal_tfrecord_test.py | 8 ++++++++ efficientdet/dataset/inspect_tfrecords.py | 9 ++++++++- efficientdet/det_model_fn_test.py | 8 ++++++++ efficientdet/efficientdet_arch_test.py | 8 ++++++++ efficientdet/hparams_config_test.py | 8 ++++++++ efficientdet/iou_utils_test.py | 8 ++++++++ efficientdet/keras/efficientdet_keras_test.py | 8 ++++++++ efficientdet/keras/eval.py | 9 ++++++++- efficientdet/keras/fpn_configs_test.py | 8 ++++++++ efficientdet/keras/infer.py | 13 ++++++++++++- efficientdet/keras/inference_test.py | 8 ++++++++ efficientdet/keras/inspector.py | 11 +++++++++-- efficientdet/keras/inspector_test.py | 8 ++++++++ efficientdet/keras/postprocess_test.py | 8 ++++++++ efficientdet/keras/segmentation.py | 8 ++++++++ efficientdet/keras/train.py | 11 +++++++++-- efficientdet/keras/train_lib_test.py | 8 ++++++++ efficientdet/keras/util_keras_test.py | 8 ++++++++ efficientdet/keras/wbf_test.py | 8 ++++++++ efficientdet/main.py | 9 ++++++++- efficientdet/model_inspect.py | 11 +++++++++-- efficientdet/model_inspect_test.py | 8 ++++++++ efficientdet/requirements.txt | 2 +- efficientdet/tensorrt.py | 14 ++++++++++++-- efficientdet/utils_test.py | 8 ++++++++ efficientdet/visualize/vis_utils_test.py | 8 ++++++++ setup.py | 12 +++++------- 38 files changed, 306 insertions(+), 22 deletions(-) diff --git a/efficientdet/aug/autoaugment_test.py b/efficientdet/aug/autoaugment_test.py index 6fcde16c6..b8a0fd0a2 100644 --- a/efficientdet/aug/autoaugment_test.py +++ b/efficientdet/aug/autoaugment_test.py @@ -13,6 +13,14 @@ # limitations under the License. # ============================================================================== """Tests for Autoaugment.""" + +import os +import sys +if __name__ == "__main__" and __package__ is None: + sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) + import efficientdet.aug + __package__ = "efficientdet.aug" + from absl import logging import tensorflow.compat.v1 as tf diff --git a/efficientdet/aug/gridmask_test.py b/efficientdet/aug/gridmask_test.py index 322ffae67..85c57cacd 100644 --- a/efficientdet/aug/gridmask_test.py +++ b/efficientdet/aug/gridmask_test.py @@ -13,6 +13,14 @@ # limitations under the License. # ============================================================================== """GridMask Augmentation simple test.""" + +import os +import sys +if __name__ == "__main__" and __package__ is None: + sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) + import efficientdet.aug + __package__ = "efficientdet.aug" + from absl import logging import tensorflow.compat.v1 as tf diff --git a/efficientdet/aug/mosaic_test.py b/efficientdet/aug/mosaic_test.py index b32df1bc8..6472bb74b 100644 --- a/efficientdet/aug/mosaic_test.py +++ b/efficientdet/aug/mosaic_test.py @@ -13,6 +13,14 @@ # limitations under the License. # ============================================================================== """Mosaic Augmentation simple test.""" + +import os +import sys +if __name__ == "__main__" and __package__ is None: + sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) + import efficientdet.aug + __package__ = "efficientdet.aug" + from absl import logging import tensorflow.compat.v1 as tf diff --git a/efficientdet/backbone/efficientnet_builder_test.py b/efficientdet/backbone/efficientnet_builder_test.py index 4dd6f4497..569365197 100644 --- a/efficientdet/backbone/efficientnet_builder_test.py +++ b/efficientdet/backbone/efficientnet_builder_test.py @@ -13,6 +13,14 @@ # limitations under the License. # ============================================================================== """Tests for efficientnet_builder.""" + +import os +import sys +if __name__ == "__main__" and __package__ is None: + sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) + import efficientdet.backbone + __package__ = "efficientdet.backbone" + from absl import logging import numpy as np import tensorflow.compat.v1 as tf diff --git a/efficientdet/backbone/efficientnet_lite_builder_test.py b/efficientdet/backbone/efficientnet_lite_builder_test.py index 99738cd03..3e9af8d02 100644 --- a/efficientdet/backbone/efficientnet_lite_builder_test.py +++ b/efficientdet/backbone/efficientnet_lite_builder_test.py @@ -13,6 +13,14 @@ # limitations under the License. # ============================================================================== """Tests for efficientnet_lite_builder.""" + +import os +import sys +if __name__ == "__main__" and __package__ is None: + sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) + import efficientdet.backbone + __package__ = "efficientdet.backbone" + from absl import logging import numpy as np import tensorflow.compat.v1 as tf diff --git a/efficientdet/backbone/efficientnet_model_test.py b/efficientdet/backbone/efficientnet_model_test.py index a4a9ae7f5..e4e91e1ba 100644 --- a/efficientdet/backbone/efficientnet_model_test.py +++ b/efficientdet/backbone/efficientnet_model_test.py @@ -13,6 +13,14 @@ # limitations under the License. # ============================================================================== """Tests for efficientnet_model.""" + +import os +import sys +if __name__ == "__main__" and __package__ is None: + sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) + import efficientdet.backbone + __package__ = "efficientdet.backbone" + from absl import logging import tensorflow.compat.v1 as tf diff --git a/efficientdet/coco_metric_test.py b/efficientdet/coco_metric_test.py index 862a58656..97baba179 100644 --- a/efficientdet/coco_metric_test.py +++ b/efficientdet/coco_metric_test.py @@ -14,6 +14,14 @@ # ============================================================================== """Tests for coco_metric.""" +import os +import sys +if __name__ == "__main__" and __package__ is None: + sys.path.insert(0, os.path.join(os.path.dirname(__file__), )) + import efficientdet + __package__ = "efficientdet" + + from absl import logging import tensorflow.compat.v1 as tf from . import coco_metric diff --git a/efficientdet/dataloader_test.py b/efficientdet/dataloader_test.py index 7a4bf0e40..f6f357a96 100644 --- a/efficientdet/dataloader_test.py +++ b/efficientdet/dataloader_test.py @@ -13,6 +13,14 @@ # limitations under the License. # ============================================================================== """Data loader and processing test cases.""" + +import os +import sys +if __name__ == "__main__" and __package__ is None: + sys.path.insert(0, os.path.join(os.path.dirname(__file__), )) + import efficientdet + __package__ = "efficientdet" + import os import tempfile import tensorflow as tf diff --git a/efficientdet/dataset/create_coco_tfrecord.py b/efficientdet/dataset/create_coco_tfrecord.py index 0cd204247..865201176 100644 --- a/efficientdet/dataset/create_coco_tfrecord.py +++ b/efficientdet/dataset/create_coco_tfrecord.py @@ -12,6 +12,14 @@ # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================== + +import os +import sys +if __name__ == "__main__" and __package__ is None: + sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) + import efficientdet.dataset + __package__ = "efficientdet.dataset" + r"""Convert raw COCO 2017 dataset to TFRecord. Example usage: @@ -358,7 +366,6 @@ def main(_): FLAGS.caption_annotations_file, FLAGS.include_masks) - def launcher(): app.run(main) diff --git a/efficientdet/dataset/create_coco_tfrecord_test.py b/efficientdet/dataset/create_coco_tfrecord_test.py index ea555a1e7..f08970aa8 100644 --- a/efficientdet/dataset/create_coco_tfrecord_test.py +++ b/efficientdet/dataset/create_coco_tfrecord_test.py @@ -14,6 +14,14 @@ # ============================================================================== """Test for create_coco_tfrecord.py.""" +import os +import sys +if __name__ == "__main__" and __package__ is None: + sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) + import efficientdet.dataset + __package__ = "efficientdet.dataset" + + import io import json import os diff --git a/efficientdet/dataset/create_pascal_tfrecord.py b/efficientdet/dataset/create_pascal_tfrecord.py index 2b44f627c..04f04383b 100644 --- a/efficientdet/dataset/create_pascal_tfrecord.py +++ b/efficientdet/dataset/create_pascal_tfrecord.py @@ -12,6 +12,14 @@ # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================== + +import os +import sys +if __name__ == "__main__" and __package__ is None: + sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) + import efficientdet.dataset + __package__ = "efficientdet.dataset" + r"""Convert PASCAL dataset to TFRecord. Example usage: @@ -314,9 +322,9 @@ def main(_): with tf.io.gfile.GFile(json_file_path, 'w') as f: json.dump(ann_json_dict, f) - def launcher(): app.run(main) if __name__ == '__main__': launcher() + \ No newline at end of file diff --git a/efficientdet/dataset/create_pascal_tfrecord_test.py b/efficientdet/dataset/create_pascal_tfrecord_test.py index 72feae963..0425dc267 100644 --- a/efficientdet/dataset/create_pascal_tfrecord_test.py +++ b/efficientdet/dataset/create_pascal_tfrecord_test.py @@ -14,6 +14,14 @@ # ============================================================================== """Test for create_pascal_tfrecord.py.""" +import os +import sys +if __name__ == "__main__" and __package__ is None: + sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) + import efficientdet.dataset + __package__ = "efficientdet.dataset" + + import os from absl import logging diff --git a/efficientdet/dataset/inspect_tfrecords.py b/efficientdet/dataset/inspect_tfrecords.py index 2ae7d1e86..e43eb091b 100644 --- a/efficientdet/dataset/inspect_tfrecords.py +++ b/efficientdet/dataset/inspect_tfrecords.py @@ -14,6 +14,14 @@ # ============================================================================== """Inspection of dataset""" +import os +import sys +if __name__ == "__main__" and __package__ is None: + sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) + import efficientdet.dataset + __package__ = "efficientdet.dataset" + + import os import sys @@ -133,7 +141,6 @@ def main(_): f"Done Visualization, please find samples at \'{FLAGS.save_samples_dir}\'" ) - def launcher(): app.run(main) diff --git a/efficientdet/det_model_fn_test.py b/efficientdet/det_model_fn_test.py index e74fb8ffe..2679f83db 100644 --- a/efficientdet/det_model_fn_test.py +++ b/efficientdet/det_model_fn_test.py @@ -13,6 +13,14 @@ # limitations under the License. # ============================================================================== """Tests for det_model_fn.""" + +import os +import sys +if __name__ == "__main__" and __package__ is None: + sys.path.insert(0, os.path.join(os.path.dirname(__file__), )) + import efficientdet + __package__ = "efficientdet" + import tensorflow as tf from . import det_model_fn diff --git a/efficientdet/efficientdet_arch_test.py b/efficientdet/efficientdet_arch_test.py index 0ca392e13..815cb7cea 100644 --- a/efficientdet/efficientdet_arch_test.py +++ b/efficientdet/efficientdet_arch_test.py @@ -13,6 +13,14 @@ # limitations under the License. # ============================================================================== """Tests for efficientdet_arch.""" + +import os +import sys +if __name__ == "__main__" and __package__ is None: + sys.path.insert(0, os.path.join(os.path.dirname(__file__), )) + import efficientdet + __package__ = "efficientdet" + from absl import logging import tensorflow.compat.v1 as tf diff --git a/efficientdet/hparams_config_test.py b/efficientdet/hparams_config_test.py index cc14505e9..f53b3817d 100644 --- a/efficientdet/hparams_config_test.py +++ b/efficientdet/hparams_config_test.py @@ -13,6 +13,14 @@ # limitations under the License. # ====================================== """Tests for hparams_config.""" + +import os +import sys +if __name__ == "__main__" and __package__ is None: + sys.path.insert(0, os.path.join(os.path.dirname(__file__), )) + import efficientdet + __package__ = "efficientdet" + import os import tempfile from absl import logging diff --git a/efficientdet/iou_utils_test.py b/efficientdet/iou_utils_test.py index e3709cc05..eb71a0ce7 100644 --- a/efficientdet/iou_utils_test.py +++ b/efficientdet/iou_utils_test.py @@ -13,6 +13,14 @@ # limitations under the License. # ====================================== """Tests for iou_utils.""" + +import os +import sys +if __name__ == "__main__" and __package__ is None: + sys.path.insert(0, os.path.join(os.path.dirname(__file__), )) + import efficientdet + __package__ = "efficientdet" + from absl import logging import tensorflow as tf from . import iou_utils diff --git a/efficientdet/keras/efficientdet_keras_test.py b/efficientdet/keras/efficientdet_keras_test.py index 3b7d21907..e5a236596 100644 --- a/efficientdet/keras/efficientdet_keras_test.py +++ b/efficientdet/keras/efficientdet_keras_test.py @@ -13,6 +13,14 @@ # limitations under the License. # ============================================================================== """Tests for efficientdet_keras.""" + +import os +import sys +if __name__ == "__main__" and __package__ is None: + sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) + import efficientdet.keras + __package__ = "efficientdet.keras" + import os import tempfile from absl import logging diff --git a/efficientdet/keras/eval.py b/efficientdet/keras/eval.py index ceb5e29d3..6d1f0fc68 100644 --- a/efficientdet/keras/eval.py +++ b/efficientdet/keras/eval.py @@ -13,6 +13,14 @@ # limitations under the License. # ============================================================================== """Eval libraries.""" + +import os +import sys +if __name__ == "__main__" and __package__ is None: + sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) + import efficientdet.keras + __package__ = "efficientdet.keras" + from absl import app from absl import flags from absl import logging @@ -123,7 +131,6 @@ def eval_update(gt, pred): metric_dict[name] = metrics[i + len(evaluator.metric_names)] print(FLAGS.model_name, metric_dict) - def launcher(): flags.mark_flag_as_required('val_file_pattern') flags.mark_flag_as_required('model_dir') diff --git a/efficientdet/keras/fpn_configs_test.py b/efficientdet/keras/fpn_configs_test.py index 1d4eeabc7..edab802ba 100644 --- a/efficientdet/keras/fpn_configs_test.py +++ b/efficientdet/keras/fpn_configs_test.py @@ -13,6 +13,14 @@ # limitations under the License. # ============================================================================== """Tests for fpn_configs.""" + +import os +import sys +if __name__ == "__main__" and __package__ is None: + sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) + import efficientdet.keras + __package__ = "efficientdet.keras" + from absl import logging import tensorflow as tf from . import fpn_configs diff --git a/efficientdet/keras/infer.py b/efficientdet/keras/infer.py index cbecb6ce0..9e021fd8a 100644 --- a/efficientdet/keras/infer.py +++ b/efficientdet/keras/infer.py @@ -13,6 +13,14 @@ # limitations under the License. # ============================================================================== """A simple example on how to use keras model for inference.""" + +import os +import sys +if __name__ == "__main__" and __package__ is None: + sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) + import efficientdet.keras + __package__ = "efficientdet.keras" + import os from absl import app from absl import flags @@ -101,9 +109,12 @@ def f(self, imgs): print('writing annotated image to %s' % output_image_path) -if __name__ == '__main__': +def launcher(): flags.mark_flag_as_required('image_path') flags.mark_flag_as_required('output_dir') flags.mark_flag_as_required('model_dir') logging.set_verbosity(logging.ERROR) app.run(main) + +if __name__ == '__main__': + launcher() diff --git a/efficientdet/keras/inference_test.py b/efficientdet/keras/inference_test.py index 806cf8dc2..cecd2c2f8 100644 --- a/efficientdet/keras/inference_test.py +++ b/efficientdet/keras/inference_test.py @@ -12,6 +12,14 @@ # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================== + +import os +import sys +if __name__ == "__main__" and __package__ is None: + sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) + import efficientdet.keras + __package__ = "efficientdet.keras" + r"""Inference test cases.""" import os import tempfile diff --git a/efficientdet/keras/inspector.py b/efficientdet/keras/inspector.py index b0b891155..d941495f2 100644 --- a/efficientdet/keras/inspector.py +++ b/efficientdet/keras/inspector.py @@ -12,6 +12,14 @@ # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================== + +import os +import sys +if __name__ == "__main__" and __package__ is None: + sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) + import efficientdet.keras + __package__ = "efficientdet.keras" + r"""Tool to inspect a model.""" import os @@ -176,10 +184,9 @@ def main(_): if cv2.waitKey(1) & 0xFF == ord('q'): break - def launcher(): logging.set_verbosity(logging.ERROR) app.run(main) if __name__ == '__main__': - launcher() + launcher() diff --git a/efficientdet/keras/inspector_test.py b/efficientdet/keras/inspector_test.py index 38b429053..a84f558ae 100644 --- a/efficientdet/keras/inspector_test.py +++ b/efficientdet/keras/inspector_test.py @@ -12,6 +12,14 @@ # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================== + +import os +import sys +if __name__ == "__main__" and __package__ is None: + sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) + import efficientdet.keras + __package__ = "efficientdet.keras" + r"""Tests for model inspect tool.""" import os import shutil diff --git a/efficientdet/keras/postprocess_test.py b/efficientdet/keras/postprocess_test.py index 1e1104138..921a9a11f 100644 --- a/efficientdet/keras/postprocess_test.py +++ b/efficientdet/keras/postprocess_test.py @@ -13,6 +13,14 @@ # limitations under the License. # ============================================================================= """Test for postprocess.""" + +import os +import sys +if __name__ == "__main__" and __package__ is None: + sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) + import efficientdet.keras + __package__ = "efficientdet.keras" + from absl import logging import tensorflow as tf diff --git a/efficientdet/keras/segmentation.py b/efficientdet/keras/segmentation.py index 527ba9be8..5fea0b581 100644 --- a/efficientdet/keras/segmentation.py +++ b/efficientdet/keras/segmentation.py @@ -13,6 +13,14 @@ # limitations under the License. # ============================================================================== """A demo script to show to train a segmentation model.""" + +import os +import sys +if __name__ == "__main__" and __package__ is None: + sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) + import efficientdet.keras + __package__ = "efficientdet.keras" + from absl import app from absl import logging import tensorflow as tf diff --git a/efficientdet/keras/train.py b/efficientdet/keras/train.py index 9d379fc64..662c7f000 100644 --- a/efficientdet/keras/train.py +++ b/efficientdet/keras/train.py @@ -13,6 +13,14 @@ # limitations under the License. # ============================================================================== """The main training script.""" + +import os +import sys +if __name__ == "__main__" and __package__ is None: + sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) + import efficientdet.keras + __package__ = "efficientdet.keras" + import os from absl import app from absl import flags @@ -232,10 +240,9 @@ def get_dataset(is_training, config): validation_steps=(FLAGS.eval_samples // FLAGS.batch_size)) model.save_weights(os.path.join(FLAGS.model_dir, 'ckpt-final')) - def launcher(): logging.set_verbosity(logging.INFO) app.run(main) if __name__ == '__main__': - launcher() + launcher() \ No newline at end of file diff --git a/efficientdet/keras/train_lib_test.py b/efficientdet/keras/train_lib_test.py index 3b4220344..a63f6811f 100644 --- a/efficientdet/keras/train_lib_test.py +++ b/efficientdet/keras/train_lib_test.py @@ -12,6 +12,14 @@ # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================== + +import os +import sys +if __name__ == "__main__" and __package__ is None: + sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) + import efficientdet.keras + __package__ = "efficientdet.keras" + import tempfile from absl import logging import tensorflow as tf diff --git a/efficientdet/keras/util_keras_test.py b/efficientdet/keras/util_keras_test.py index 1993fbecc..26752c176 100644 --- a/efficientdet/keras/util_keras_test.py +++ b/efficientdet/keras/util_keras_test.py @@ -12,6 +12,14 @@ # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================== + +import os +import sys +if __name__ == "__main__" and __package__ is None: + sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) + import efficientdet.keras + __package__ = "efficientdet.keras" + from absl import logging from absl.testing import parameterized import tensorflow as tf diff --git a/efficientdet/keras/wbf_test.py b/efficientdet/keras/wbf_test.py index 79f78b70f..8b95c7625 100644 --- a/efficientdet/keras/wbf_test.py +++ b/efficientdet/keras/wbf_test.py @@ -13,6 +13,14 @@ # limitations under the License. # ============================================================================== """Test for wbf.""" + +import os +import sys +if __name__ == "__main__" and __package__ is None: + sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) + import efficientdet.keras + __package__ = "efficientdet.keras" + from absl import logging import tensorflow as tf diff --git a/efficientdet/main.py b/efficientdet/main.py index 7e6da5910..8debea89f 100644 --- a/efficientdet/main.py +++ b/efficientdet/main.py @@ -13,6 +13,14 @@ # limitations under the License. # ============================================================================== """The main training script.""" + +import os +import sys +if __name__ == "__main__" and __package__ is None: + sys.path.insert(0, os.path.join(os.path.dirname(__file__), )) + import efficientdet + __package__ = "efficientdet" + import multiprocessing import os from absl import app @@ -362,7 +370,6 @@ def run_train_and_eval(e): else: logging.info('Invalid mode: %s', FLAGS.mode) - def launcher(): app.run(main) diff --git a/efficientdet/model_inspect.py b/efficientdet/model_inspect.py index 92ab72005..0a90e2214 100644 --- a/efficientdet/model_inspect.py +++ b/efficientdet/model_inspect.py @@ -12,6 +12,14 @@ # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================== + +import os +import sys +if __name__ == "__main__" and __package__ is None: + sys.path.insert(0, os.path.join(os.path.dirname(__file__), )) + import efficientdet + __package__ = "efficientdet" + r"""Tool to inspect a model.""" import os import time @@ -512,13 +520,12 @@ def main(_): threads=FLAGS.threads, trace_filename=FLAGS.trace_filename) - def launcher(): logging.set_verbosity(logging.WARNING) tf.enable_v2_tensorshape() tf.disable_eager_execution() app.run(main) - if __name__ == '__main__': launcher() + diff --git a/efficientdet/model_inspect_test.py b/efficientdet/model_inspect_test.py index 3cf4bdc9b..3f6c770be 100644 --- a/efficientdet/model_inspect_test.py +++ b/efficientdet/model_inspect_test.py @@ -12,6 +12,14 @@ # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================== + +import os +import sys +if __name__ == "__main__" and __package__ is None: + sys.path.insert(0, os.path.join(os.path.dirname(__file__), )) + import efficientdet + __package__ = "efficientdet" + r"""Tests for model inspect tool.""" import os import shutil diff --git a/efficientdet/requirements.txt b/efficientdet/requirements.txt index c9b6dace4..baf99bc7f 100644 --- a/efficientdet/requirements.txt +++ b/efficientdet/requirements.txt @@ -10,4 +10,4 @@ tensorflow-addons>=0.11.2 neural-structured-learning>=1.3.1 tensorflow-model-optimization>=0.5 Cython>=0.29.13 -git+https://github.com/cocodataset/cocoapi.git#subdirectory=PythonAPI +pycocotools diff --git a/efficientdet/tensorrt.py b/efficientdet/tensorrt.py index 06675f969..22e84bff6 100644 --- a/efficientdet/tensorrt.py +++ b/efficientdet/tensorrt.py @@ -12,6 +12,14 @@ # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================== + +import os +import sys +if __name__ == "__main__" and __package__ is None: + sys.path.insert(0, os.path.join(os.path.dirname(__file__), )) + import efficientdet + __package__ = "efficientdet" + r"""Simple tools for TensorRT. Example usage: @@ -77,8 +85,10 @@ def main(_): convert2trt(FLAGS.tf_savedmodel_dir, FLAGS.trt_savedmodel_dir) benchmark(FLAGS.trt_savedmodel_dir, FLAGS.warmup_runs, FLAGS.bm_runs) - -if __name__ == '__main__': +def launcher(): flags.mark_flag_as_required('trt_savedmodel_dir') tf.disable_v2_behavior() app.run(main) + +if __name__ == '__main__': + launcher() diff --git a/efficientdet/utils_test.py b/efficientdet/utils_test.py index 87a94fa49..910c4dc58 100644 --- a/efficientdet/utils_test.py +++ b/efficientdet/utils_test.py @@ -13,6 +13,14 @@ # limitations under the License. # ============================================================================== """Tests for utils.""" + +import os +import sys +if __name__ == "__main__" and __package__ is None: + sys.path.insert(0, os.path.join(os.path.dirname(__file__), )) + import efficientdet + __package__ = "efficientdet" + import os from absl import logging import tensorflow.compat.v1 as tf diff --git a/efficientdet/visualize/vis_utils_test.py b/efficientdet/visualize/vis_utils_test.py index 1e2c91235..7a2de159e 100644 --- a/efficientdet/visualize/vis_utils_test.py +++ b/efficientdet/visualize/vis_utils_test.py @@ -13,6 +13,14 @@ # limitations under the License. # ============================================================================== """Tests for visualize.""" + +import os +import sys +if __name__ == "__main__" and __package__ is None: + sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) + import efficientdet.visualize + __package__ = "efficientdet.visualize" + import os from absl import logging import numpy as np diff --git a/setup.py b/setup.py index ce39e4d6a..f4b25048f 100644 --- a/setup.py +++ b/setup.py @@ -5,8 +5,8 @@ name = 'efficientdet', version = '0.0.0', description = '', - url = '', - author = 'PyPackager', + url = 'https://github.com/google/automl', + author = 'Google', author_email = '', maintainer = '', maintainer_email = '', @@ -24,11 +24,9 @@ 'neural-structured-learning>=1.3.1', 'tensorflow-model-optimization>=0.5', 'Cython>=0.29.13', + 'pycocotools' ], - dependency_links = [ - 'git+https://github.com/cocodataset/cocoapi.git#subdirectory=PythonAPI' - ], - entry_points = { + entry_points = { 'console_scripts': [ 'efficientdet-tf-model-inspect=efficientdet.model_inspect:launcher', 'efficientdet-tf-main=efficientdet.main:launcher', @@ -38,6 +36,6 @@ 'efficientdet-create-coco-tfrecord=efficientdet.dataset.create_coco_tfrecord:launcher', 'efficientdet-create-pascal-tfrecord=efficientdet.dataset.create_pascal_tfrecord:launcher', 'efficientdet-inspect-tfrecord=efficientdet.dataset.inspect_tfrecords:launcher' - ] + ], } ) From 560d41b059833817a187aeb09a260e22d4bc7309 Mon Sep 17 00:00:00 2001 From: madisi98 Date: Sun, 22 Nov 2020 13:11:28 +0000 Subject: [PATCH 3/3] Fixed relative imports in script mode --- efficientdet/aug/autoaugment_test.py | 3 ++- efficientdet/aug/gridmask_test.py | 3 ++- efficientdet/aug/mosaic_test.py | 3 ++- efficientdet/backbone/efficientnet_builder_test.py | 3 ++- .../backbone/efficientnet_lite_builder_test.py | 3 ++- efficientdet/backbone/efficientnet_model_test.py | 3 ++- efficientdet/coco_metric_test.py | 3 ++- efficientdet/dataloader_test.py | 3 ++- efficientdet/dataset/create_coco_tfrecord.py | 7 +++---- efficientdet/dataset/create_coco_tfrecord_test.py | 3 ++- efficientdet/dataset/create_pascal_tfrecord.py | 8 +++----- efficientdet/dataset/create_pascal_tfrecord_test.py | 3 ++- efficientdet/dataset/inspect_tfrecords.py | 7 +++---- efficientdet/det_model_fn_test.py | 3 ++- efficientdet/efficientdet_arch_test.py | 3 ++- efficientdet/hparams_config_test.py | 3 ++- efficientdet/iou_utils_test.py | 3 ++- efficientdet/keras/efficientdet_keras_test.py | 3 ++- efficientdet/keras/eval.py | 9 ++++----- efficientdet/keras/fpn_configs_test.py | 3 ++- efficientdet/keras/infer.py | 8 +++----- efficientdet/keras/inference_test.py | 3 ++- efficientdet/keras/inspector.py | 9 ++++----- efficientdet/keras/inspector_test.py | 3 ++- efficientdet/keras/postprocess_test.py | 3 ++- efficientdet/keras/segmentation.py | 3 ++- efficientdet/keras/train.py | 9 ++++----- efficientdet/keras/train_lib_test.py | 3 ++- efficientdet/keras/util_keras_test.py | 3 ++- efficientdet/keras/wbf_test.py | 3 ++- efficientdet/main.py | 7 +++---- efficientdet/model_inspect.py | 10 ++++------ efficientdet/model_inspect_test.py | 3 ++- efficientdet/tensorrt.py | 9 ++++----- efficientdet/utils_test.py | 3 ++- efficientdet/visualize/vis_utils_test.py | 3 ++- 36 files changed, 87 insertions(+), 74 deletions(-) diff --git a/efficientdet/aug/autoaugment_test.py b/efficientdet/aug/autoaugment_test.py index b8a0fd0a2..cfbf0a10b 100644 --- a/efficientdet/aug/autoaugment_test.py +++ b/efficientdet/aug/autoaugment_test.py @@ -16,8 +16,9 @@ import os import sys +# Allow relative imports when being executed as script. if __name__ == "__main__" and __package__ is None: - sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) + sys.path.insert(0, os.path.join(os.path.dirname(__file__), '../..')) import efficientdet.aug __package__ = "efficientdet.aug" diff --git a/efficientdet/aug/gridmask_test.py b/efficientdet/aug/gridmask_test.py index 85c57cacd..e241e9c9b 100644 --- a/efficientdet/aug/gridmask_test.py +++ b/efficientdet/aug/gridmask_test.py @@ -16,8 +16,9 @@ import os import sys +# Allow relative imports when being executed as script. if __name__ == "__main__" and __package__ is None: - sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) + sys.path.insert(0, os.path.join(os.path.dirname(__file__), '../..')) import efficientdet.aug __package__ = "efficientdet.aug" diff --git a/efficientdet/aug/mosaic_test.py b/efficientdet/aug/mosaic_test.py index 6472bb74b..cc786f9c0 100644 --- a/efficientdet/aug/mosaic_test.py +++ b/efficientdet/aug/mosaic_test.py @@ -16,8 +16,9 @@ import os import sys +# Allow relative imports when being executed as script. if __name__ == "__main__" and __package__ is None: - sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) + sys.path.insert(0, os.path.join(os.path.dirname(__file__), '../..')) import efficientdet.aug __package__ = "efficientdet.aug" diff --git a/efficientdet/backbone/efficientnet_builder_test.py b/efficientdet/backbone/efficientnet_builder_test.py index 569365197..47ec2b08b 100644 --- a/efficientdet/backbone/efficientnet_builder_test.py +++ b/efficientdet/backbone/efficientnet_builder_test.py @@ -16,8 +16,9 @@ import os import sys +# Allow relative imports when being executed as script. if __name__ == "__main__" and __package__ is None: - sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) + sys.path.insert(0, os.path.join(os.path.dirname(__file__), '../..')) import efficientdet.backbone __package__ = "efficientdet.backbone" diff --git a/efficientdet/backbone/efficientnet_lite_builder_test.py b/efficientdet/backbone/efficientnet_lite_builder_test.py index 3e9af8d02..359c6fb9f 100644 --- a/efficientdet/backbone/efficientnet_lite_builder_test.py +++ b/efficientdet/backbone/efficientnet_lite_builder_test.py @@ -16,8 +16,9 @@ import os import sys +# Allow relative imports when being executed as script. if __name__ == "__main__" and __package__ is None: - sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) + sys.path.insert(0, os.path.join(os.path.dirname(__file__), '../..')) import efficientdet.backbone __package__ = "efficientdet.backbone" diff --git a/efficientdet/backbone/efficientnet_model_test.py b/efficientdet/backbone/efficientnet_model_test.py index e4e91e1ba..5498b8f4d 100644 --- a/efficientdet/backbone/efficientnet_model_test.py +++ b/efficientdet/backbone/efficientnet_model_test.py @@ -16,8 +16,9 @@ import os import sys +# Allow relative imports when being executed as script. if __name__ == "__main__" and __package__ is None: - sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) + sys.path.insert(0, os.path.join(os.path.dirname(__file__), '../..')) import efficientdet.backbone __package__ = "efficientdet.backbone" diff --git a/efficientdet/coco_metric_test.py b/efficientdet/coco_metric_test.py index 97baba179..60834d010 100644 --- a/efficientdet/coco_metric_test.py +++ b/efficientdet/coco_metric_test.py @@ -16,8 +16,9 @@ import os import sys +# Allow relative imports when being executed as script. if __name__ == "__main__" and __package__ is None: - sys.path.insert(0, os.path.join(os.path.dirname(__file__), )) + sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) import efficientdet __package__ = "efficientdet" diff --git a/efficientdet/dataloader_test.py b/efficientdet/dataloader_test.py index f6f357a96..dd47ef637 100644 --- a/efficientdet/dataloader_test.py +++ b/efficientdet/dataloader_test.py @@ -16,8 +16,9 @@ import os import sys +# Allow relative imports when being executed as script. if __name__ == "__main__" and __package__ is None: - sys.path.insert(0, os.path.join(os.path.dirname(__file__), )) + sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) import efficientdet __package__ = "efficientdet" diff --git a/efficientdet/dataset/create_coco_tfrecord.py b/efficientdet/dataset/create_coco_tfrecord.py index 865201176..20d56820d 100644 --- a/efficientdet/dataset/create_coco_tfrecord.py +++ b/efficientdet/dataset/create_coco_tfrecord.py @@ -15,8 +15,9 @@ import os import sys +# Allow relative imports when being executed as script. if __name__ == "__main__" and __package__ is None: - sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) + sys.path.insert(0, os.path.join(os.path.dirname(__file__), '../..')) import efficientdet.dataset __package__ = "efficientdet.dataset" @@ -366,8 +367,6 @@ def main(_): FLAGS.caption_annotations_file, FLAGS.include_masks) -def launcher(): - app.run(main) if __name__ == '__main__': - launcher() + app.run(main) diff --git a/efficientdet/dataset/create_coco_tfrecord_test.py b/efficientdet/dataset/create_coco_tfrecord_test.py index f08970aa8..5de7debe3 100644 --- a/efficientdet/dataset/create_coco_tfrecord_test.py +++ b/efficientdet/dataset/create_coco_tfrecord_test.py @@ -16,8 +16,9 @@ import os import sys +# Allow relative imports when being executed as script. if __name__ == "__main__" and __package__ is None: - sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) + sys.path.insert(0, os.path.join(os.path.dirname(__file__), '../..')) import efficientdet.dataset __package__ = "efficientdet.dataset" diff --git a/efficientdet/dataset/create_pascal_tfrecord.py b/efficientdet/dataset/create_pascal_tfrecord.py index 04f04383b..b08c107e4 100644 --- a/efficientdet/dataset/create_pascal_tfrecord.py +++ b/efficientdet/dataset/create_pascal_tfrecord.py @@ -15,8 +15,9 @@ import os import sys +# Allow relative imports when being executed as script. if __name__ == "__main__" and __package__ is None: - sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) + sys.path.insert(0, os.path.join(os.path.dirname(__file__), '../..')) import efficientdet.dataset __package__ = "efficientdet.dataset" @@ -322,9 +323,6 @@ def main(_): with tf.io.gfile.GFile(json_file_path, 'w') as f: json.dump(ann_json_dict, f) -def launcher(): - app.run(main) if __name__ == '__main__': - launcher() - \ No newline at end of file + app.run(main) diff --git a/efficientdet/dataset/create_pascal_tfrecord_test.py b/efficientdet/dataset/create_pascal_tfrecord_test.py index 0425dc267..a00c38244 100644 --- a/efficientdet/dataset/create_pascal_tfrecord_test.py +++ b/efficientdet/dataset/create_pascal_tfrecord_test.py @@ -16,8 +16,9 @@ import os import sys +# Allow relative imports when being executed as script. if __name__ == "__main__" and __package__ is None: - sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) + sys.path.insert(0, os.path.join(os.path.dirname(__file__), '../..')) import efficientdet.dataset __package__ = "efficientdet.dataset" diff --git a/efficientdet/dataset/inspect_tfrecords.py b/efficientdet/dataset/inspect_tfrecords.py index e43eb091b..dc3384177 100644 --- a/efficientdet/dataset/inspect_tfrecords.py +++ b/efficientdet/dataset/inspect_tfrecords.py @@ -16,8 +16,9 @@ import os import sys +# Allow relative imports when being executed as script. if __name__ == "__main__" and __package__ is None: - sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) + sys.path.insert(0, os.path.join(os.path.dirname(__file__), '../..')) import efficientdet.dataset __package__ = "efficientdet.dataset" @@ -141,8 +142,6 @@ def main(_): f"Done Visualization, please find samples at \'{FLAGS.save_samples_dir}\'" ) -def launcher(): - app.run(main) if __name__ == '__main__': - launcher() + app.run(main) diff --git a/efficientdet/det_model_fn_test.py b/efficientdet/det_model_fn_test.py index 2679f83db..73474e5ce 100644 --- a/efficientdet/det_model_fn_test.py +++ b/efficientdet/det_model_fn_test.py @@ -16,8 +16,9 @@ import os import sys +# Allow relative imports when being executed as script. if __name__ == "__main__" and __package__ is None: - sys.path.insert(0, os.path.join(os.path.dirname(__file__), )) + sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) import efficientdet __package__ = "efficientdet" diff --git a/efficientdet/efficientdet_arch_test.py b/efficientdet/efficientdet_arch_test.py index 815cb7cea..43982737f 100644 --- a/efficientdet/efficientdet_arch_test.py +++ b/efficientdet/efficientdet_arch_test.py @@ -16,8 +16,9 @@ import os import sys +# Allow relative imports when being executed as script. if __name__ == "__main__" and __package__ is None: - sys.path.insert(0, os.path.join(os.path.dirname(__file__), )) + sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) import efficientdet __package__ = "efficientdet" diff --git a/efficientdet/hparams_config_test.py b/efficientdet/hparams_config_test.py index f53b3817d..18382a631 100644 --- a/efficientdet/hparams_config_test.py +++ b/efficientdet/hparams_config_test.py @@ -16,8 +16,9 @@ import os import sys +# Allow relative imports when being executed as script. if __name__ == "__main__" and __package__ is None: - sys.path.insert(0, os.path.join(os.path.dirname(__file__), )) + sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) import efficientdet __package__ = "efficientdet" diff --git a/efficientdet/iou_utils_test.py b/efficientdet/iou_utils_test.py index eb71a0ce7..b74ee7a8c 100644 --- a/efficientdet/iou_utils_test.py +++ b/efficientdet/iou_utils_test.py @@ -16,8 +16,9 @@ import os import sys +# Allow relative imports when being executed as script. if __name__ == "__main__" and __package__ is None: - sys.path.insert(0, os.path.join(os.path.dirname(__file__), )) + sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) import efficientdet __package__ = "efficientdet" diff --git a/efficientdet/keras/efficientdet_keras_test.py b/efficientdet/keras/efficientdet_keras_test.py index e5a236596..7cbc44b84 100644 --- a/efficientdet/keras/efficientdet_keras_test.py +++ b/efficientdet/keras/efficientdet_keras_test.py @@ -16,8 +16,9 @@ import os import sys +# Allow relative imports when being executed as script. if __name__ == "__main__" and __package__ is None: - sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) + sys.path.insert(0, os.path.join(os.path.dirname(__file__), '../..')) import efficientdet.keras __package__ = "efficientdet.keras" diff --git a/efficientdet/keras/eval.py b/efficientdet/keras/eval.py index 6d1f0fc68..f362a79ad 100644 --- a/efficientdet/keras/eval.py +++ b/efficientdet/keras/eval.py @@ -16,8 +16,9 @@ import os import sys +# Allow relative imports when being executed as script. if __name__ == "__main__" and __package__ is None: - sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) + sys.path.insert(0, os.path.join(os.path.dirname(__file__), '../..')) import efficientdet.keras __package__ = "efficientdet.keras" @@ -131,11 +132,9 @@ def eval_update(gt, pred): metric_dict[name] = metrics[i + len(evaluator.metric_names)] print(FLAGS.model_name, metric_dict) -def launcher(): + +if __name__ == '__main__': flags.mark_flag_as_required('val_file_pattern') flags.mark_flag_as_required('model_dir') logging.set_verbosity(logging.WARNING) app.run(main) - -if __name__ == '__main__': - launcher() diff --git a/efficientdet/keras/fpn_configs_test.py b/efficientdet/keras/fpn_configs_test.py index edab802ba..df183a782 100644 --- a/efficientdet/keras/fpn_configs_test.py +++ b/efficientdet/keras/fpn_configs_test.py @@ -16,8 +16,9 @@ import os import sys +# Allow relative imports when being executed as script. if __name__ == "__main__" and __package__ is None: - sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) + sys.path.insert(0, os.path.join(os.path.dirname(__file__), '../..')) import efficientdet.keras __package__ = "efficientdet.keras" diff --git a/efficientdet/keras/infer.py b/efficientdet/keras/infer.py index 9e021fd8a..0a652d910 100644 --- a/efficientdet/keras/infer.py +++ b/efficientdet/keras/infer.py @@ -16,8 +16,9 @@ import os import sys +# Allow relative imports when being executed as script. if __name__ == "__main__" and __package__ is None: - sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) + sys.path.insert(0, os.path.join(os.path.dirname(__file__), '../..')) import efficientdet.keras __package__ = "efficientdet.keras" @@ -109,12 +110,9 @@ def f(self, imgs): print('writing annotated image to %s' % output_image_path) -def launcher(): +if __name__ == '__main__': flags.mark_flag_as_required('image_path') flags.mark_flag_as_required('output_dir') flags.mark_flag_as_required('model_dir') logging.set_verbosity(logging.ERROR) app.run(main) - -if __name__ == '__main__': - launcher() diff --git a/efficientdet/keras/inference_test.py b/efficientdet/keras/inference_test.py index cecd2c2f8..3c35a68f2 100644 --- a/efficientdet/keras/inference_test.py +++ b/efficientdet/keras/inference_test.py @@ -15,8 +15,9 @@ import os import sys +# Allow relative imports when being executed as script. if __name__ == "__main__" and __package__ is None: - sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) + sys.path.insert(0, os.path.join(os.path.dirname(__file__), '../..')) import efficientdet.keras __package__ = "efficientdet.keras" diff --git a/efficientdet/keras/inspector.py b/efficientdet/keras/inspector.py index d941495f2..491aee38f 100644 --- a/efficientdet/keras/inspector.py +++ b/efficientdet/keras/inspector.py @@ -15,8 +15,9 @@ import os import sys +# Allow relative imports when being executed as script. if __name__ == "__main__" and __package__ is None: - sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) + sys.path.insert(0, os.path.join(os.path.dirname(__file__), '../..')) import efficientdet.keras __package__ = "efficientdet.keras" @@ -184,9 +185,7 @@ def main(_): if cv2.waitKey(1) & 0xFF == ord('q'): break -def launcher(): - logging.set_verbosity(logging.ERROR) - app.run(main) if __name__ == '__main__': - launcher() + logging.set_verbosity(logging.ERROR) + app.run(main) diff --git a/efficientdet/keras/inspector_test.py b/efficientdet/keras/inspector_test.py index a84f558ae..0fdfcb1e9 100644 --- a/efficientdet/keras/inspector_test.py +++ b/efficientdet/keras/inspector_test.py @@ -15,8 +15,9 @@ import os import sys +# Allow relative imports when being executed as script. if __name__ == "__main__" and __package__ is None: - sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) + sys.path.insert(0, os.path.join(os.path.dirname(__file__), '../..')) import efficientdet.keras __package__ = "efficientdet.keras" diff --git a/efficientdet/keras/postprocess_test.py b/efficientdet/keras/postprocess_test.py index 921a9a11f..58278ef5a 100644 --- a/efficientdet/keras/postprocess_test.py +++ b/efficientdet/keras/postprocess_test.py @@ -16,8 +16,9 @@ import os import sys +# Allow relative imports when being executed as script. if __name__ == "__main__" and __package__ is None: - sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) + sys.path.insert(0, os.path.join(os.path.dirname(__file__), '../..')) import efficientdet.keras __package__ = "efficientdet.keras" diff --git a/efficientdet/keras/segmentation.py b/efficientdet/keras/segmentation.py index 5fea0b581..f655609e5 100644 --- a/efficientdet/keras/segmentation.py +++ b/efficientdet/keras/segmentation.py @@ -16,8 +16,9 @@ import os import sys +# Allow relative imports when being executed as script. if __name__ == "__main__" and __package__ is None: - sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) + sys.path.insert(0, os.path.join(os.path.dirname(__file__), '../..')) import efficientdet.keras __package__ = "efficientdet.keras" diff --git a/efficientdet/keras/train.py b/efficientdet/keras/train.py index 662c7f000..a69c46a8f 100644 --- a/efficientdet/keras/train.py +++ b/efficientdet/keras/train.py @@ -16,8 +16,9 @@ import os import sys +# Allow relative imports when being executed as script. if __name__ == "__main__" and __package__ is None: - sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) + sys.path.insert(0, os.path.join(os.path.dirname(__file__), '../..')) import efficientdet.keras __package__ = "efficientdet.keras" @@ -240,9 +241,7 @@ def get_dataset(is_training, config): validation_steps=(FLAGS.eval_samples // FLAGS.batch_size)) model.save_weights(os.path.join(FLAGS.model_dir, 'ckpt-final')) -def launcher(): - logging.set_verbosity(logging.INFO) - app.run(main) if __name__ == '__main__': - launcher() \ No newline at end of file + logging.set_verbosity(logging.INFO) + app.run(main) diff --git a/efficientdet/keras/train_lib_test.py b/efficientdet/keras/train_lib_test.py index a63f6811f..6b32cd9c9 100644 --- a/efficientdet/keras/train_lib_test.py +++ b/efficientdet/keras/train_lib_test.py @@ -15,8 +15,9 @@ import os import sys +# Allow relative imports when being executed as script. if __name__ == "__main__" and __package__ is None: - sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) + sys.path.insert(0, os.path.join(os.path.dirname(__file__), '../..')) import efficientdet.keras __package__ = "efficientdet.keras" diff --git a/efficientdet/keras/util_keras_test.py b/efficientdet/keras/util_keras_test.py index 26752c176..73684b166 100644 --- a/efficientdet/keras/util_keras_test.py +++ b/efficientdet/keras/util_keras_test.py @@ -15,8 +15,9 @@ import os import sys +# Allow relative imports when being executed as script. if __name__ == "__main__" and __package__ is None: - sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) + sys.path.insert(0, os.path.join(os.path.dirname(__file__), '../..')) import efficientdet.keras __package__ = "efficientdet.keras" diff --git a/efficientdet/keras/wbf_test.py b/efficientdet/keras/wbf_test.py index 8b95c7625..e65193b6a 100644 --- a/efficientdet/keras/wbf_test.py +++ b/efficientdet/keras/wbf_test.py @@ -16,8 +16,9 @@ import os import sys +# Allow relative imports when being executed as script. if __name__ == "__main__" and __package__ is None: - sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) + sys.path.insert(0, os.path.join(os.path.dirname(__file__), '../..')) import efficientdet.keras __package__ = "efficientdet.keras" diff --git a/efficientdet/main.py b/efficientdet/main.py index 8debea89f..2848d019d 100644 --- a/efficientdet/main.py +++ b/efficientdet/main.py @@ -16,8 +16,9 @@ import os import sys +# Allow relative imports when being executed as script. if __name__ == "__main__" and __package__ is None: - sys.path.insert(0, os.path.join(os.path.dirname(__file__), )) + sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) import efficientdet __package__ = "efficientdet" @@ -370,8 +371,6 @@ def run_train_and_eval(e): else: logging.info('Invalid mode: %s', FLAGS.mode) -def launcher(): - app.run(main) if __name__ == '__main__': - launcher() + app.run(main) diff --git a/efficientdet/model_inspect.py b/efficientdet/model_inspect.py index 0a90e2214..0f8bf8361 100644 --- a/efficientdet/model_inspect.py +++ b/efficientdet/model_inspect.py @@ -15,8 +15,9 @@ import os import sys +# Allow relative imports when being executed as script. if __name__ == "__main__" and __package__ is None: - sys.path.insert(0, os.path.join(os.path.dirname(__file__), )) + sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) import efficientdet __package__ = "efficientdet" @@ -520,12 +521,9 @@ def main(_): threads=FLAGS.threads, trace_filename=FLAGS.trace_filename) -def launcher(): + +if __name__ == '__main__': logging.set_verbosity(logging.WARNING) tf.enable_v2_tensorshape() tf.disable_eager_execution() app.run(main) - -if __name__ == '__main__': - launcher() - diff --git a/efficientdet/model_inspect_test.py b/efficientdet/model_inspect_test.py index 3f6c770be..3b31e6409 100644 --- a/efficientdet/model_inspect_test.py +++ b/efficientdet/model_inspect_test.py @@ -15,8 +15,9 @@ import os import sys +# Allow relative imports when being executed as script. if __name__ == "__main__" and __package__ is None: - sys.path.insert(0, os.path.join(os.path.dirname(__file__), )) + sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) import efficientdet __package__ = "efficientdet" diff --git a/efficientdet/tensorrt.py b/efficientdet/tensorrt.py index 22e84bff6..38e765f18 100644 --- a/efficientdet/tensorrt.py +++ b/efficientdet/tensorrt.py @@ -15,8 +15,9 @@ import os import sys +# Allow relative imports when being executed as script. if __name__ == "__main__" and __package__ is None: - sys.path.insert(0, os.path.join(os.path.dirname(__file__), )) + sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) import efficientdet __package__ = "efficientdet" @@ -85,10 +86,8 @@ def main(_): convert2trt(FLAGS.tf_savedmodel_dir, FLAGS.trt_savedmodel_dir) benchmark(FLAGS.trt_savedmodel_dir, FLAGS.warmup_runs, FLAGS.bm_runs) -def launcher(): + +if __name__ == '__main__': flags.mark_flag_as_required('trt_savedmodel_dir') tf.disable_v2_behavior() app.run(main) - -if __name__ == '__main__': - launcher() diff --git a/efficientdet/utils_test.py b/efficientdet/utils_test.py index 910c4dc58..00259da13 100644 --- a/efficientdet/utils_test.py +++ b/efficientdet/utils_test.py @@ -16,8 +16,9 @@ import os import sys +# Allow relative imports when being executed as script. if __name__ == "__main__" and __package__ is None: - sys.path.insert(0, os.path.join(os.path.dirname(__file__), )) + sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) import efficientdet __package__ = "efficientdet" diff --git a/efficientdet/visualize/vis_utils_test.py b/efficientdet/visualize/vis_utils_test.py index 7a2de159e..c944d566a 100644 --- a/efficientdet/visualize/vis_utils_test.py +++ b/efficientdet/visualize/vis_utils_test.py @@ -16,8 +16,9 @@ import os import sys +# Allow relative imports when being executed as script. if __name__ == "__main__" and __package__ is None: - sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) + sys.path.insert(0, os.path.join(os.path.dirname(__file__), '../..')) import efficientdet.visualize __package__ = "efficientdet.visualize"