segmodels-keras 0.1.0.dev3__tar.gz → 0.1.0.dev4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. {segmodels_keras-0.1.0.dev3 → segmodels_keras-0.1.0.dev4}/PKG-INFO +1 -1
  2. {segmodels_keras-0.1.0.dev3 → segmodels_keras-0.1.0.dev4}/segmodels_keras/__init__.py +2 -2
  3. {segmodels_keras-0.1.0.dev3 → segmodels_keras-0.1.0.dev4}/segmodels_keras/_version.py +1 -1
  4. {segmodels_keras-0.1.0.dev3 → segmodels_keras-0.1.0.dev4}/segmodels_keras/backbones/backbones_factory.py +5 -0
  5. {segmodels_keras-0.1.0.dev3 → segmodels_keras-0.1.0.dev4}/segmodels_keras/backbones/inception_resnet_v2.py +19 -9
  6. {segmodels_keras-0.1.0.dev3 → segmodels_keras-0.1.0.dev4}/segmodels_keras.egg-info/PKG-INFO +1 -1
  7. {segmodels_keras-0.1.0.dev3 → segmodels_keras-0.1.0.dev4}/LICENSE +0 -0
  8. {segmodels_keras-0.1.0.dev3 → segmodels_keras-0.1.0.dev4}/MANIFEST.in +0 -0
  9. {segmodels_keras-0.1.0.dev3 → segmodels_keras-0.1.0.dev4}/README.rst +0 -0
  10. {segmodels_keras-0.1.0.dev3 → segmodels_keras-0.1.0.dev4}/pyproject.toml +0 -0
  11. {segmodels_keras-0.1.0.dev3 → segmodels_keras-0.1.0.dev4}/segmodels_keras/_compat.py +0 -0
  12. {segmodels_keras-0.1.0.dev3 → segmodels_keras-0.1.0.dev4}/segmodels_keras/backbones/__init__.py +0 -0
  13. {segmodels_keras-0.1.0.dev3 → segmodels_keras-0.1.0.dev4}/segmodels_keras/backbones/inception_v3.py +0 -0
  14. {segmodels_keras-0.1.0.dev3 → segmodels_keras-0.1.0.dev4}/segmodels_keras/base/__init__.py +0 -0
  15. {segmodels_keras-0.1.0.dev3 → segmodels_keras-0.1.0.dev4}/segmodels_keras/base/functional.py +0 -0
  16. {segmodels_keras-0.1.0.dev3 → segmodels_keras-0.1.0.dev4}/segmodels_keras/base/objects.py +0 -0
  17. {segmodels_keras-0.1.0.dev3 → segmodels_keras-0.1.0.dev4}/segmodels_keras/losses.py +0 -0
  18. {segmodels_keras-0.1.0.dev3 → segmodels_keras-0.1.0.dev4}/segmodels_keras/metrics.py +0 -0
  19. {segmodels_keras-0.1.0.dev3 → segmodels_keras-0.1.0.dev4}/segmodels_keras/models/__init__.py +0 -0
  20. {segmodels_keras-0.1.0.dev3 → segmodels_keras-0.1.0.dev4}/segmodels_keras/models/_common_blocks.py +0 -0
  21. {segmodels_keras-0.1.0.dev3 → segmodels_keras-0.1.0.dev4}/segmodels_keras/models/_utils.py +0 -0
  22. {segmodels_keras-0.1.0.dev3 → segmodels_keras-0.1.0.dev4}/segmodels_keras/models/fpn.py +0 -0
  23. {segmodels_keras-0.1.0.dev3 → segmodels_keras-0.1.0.dev4}/segmodels_keras/models/linknet.py +0 -0
  24. {segmodels_keras-0.1.0.dev3 → segmodels_keras-0.1.0.dev4}/segmodels_keras/models/pspnet.py +0 -0
  25. {segmodels_keras-0.1.0.dev3 → segmodels_keras-0.1.0.dev4}/segmodels_keras/models/unet.py +0 -0
  26. {segmodels_keras-0.1.0.dev3 → segmodels_keras-0.1.0.dev4}/segmodels_keras/utils.py +0 -0
  27. {segmodels_keras-0.1.0.dev3 → segmodels_keras-0.1.0.dev4}/segmodels_keras.egg-info/SOURCES.txt +0 -0
  28. {segmodels_keras-0.1.0.dev3 → segmodels_keras-0.1.0.dev4}/segmodels_keras.egg-info/dependency_links.txt +0 -0
  29. {segmodels_keras-0.1.0.dev3 → segmodels_keras-0.1.0.dev4}/segmodels_keras.egg-info/requires.txt +0 -0
  30. {segmodels_keras-0.1.0.dev3 → segmodels_keras-0.1.0.dev4}/segmodels_keras.egg-info/top_level.txt +0 -0
  31. {segmodels_keras-0.1.0.dev3 → segmodels_keras-0.1.0.dev4}/setup.cfg +0 -0
  32. {segmodels_keras-0.1.0.dev3 → segmodels_keras-0.1.0.dev4}/setup.py +0 -0
  33. {segmodels_keras-0.1.0.dev3 → segmodels_keras-0.1.0.dev4}/tests/test_backbones.py +0 -0
  34. {segmodels_keras-0.1.0.dev3 → segmodels_keras-0.1.0.dev4}/tests/test_metrics.py +0 -0
  35. {segmodels_keras-0.1.0.dev3 → segmodels_keras-0.1.0.dev4}/tests/test_models.py +0 -0
  36. {segmodels_keras-0.1.0.dev3 → segmodels_keras-0.1.0.dev4}/tests/test_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: segmodels_keras
3
- Version: 0.1.0.dev3
3
+ Version: 0.1.0.dev4
4
4
  Summary: Image segmentation models with pre-trained backbones with Keras.
5
5
  Home-page: https://github.com/orthoseg/segmodels_keras
6
6
  Author: Pieter Roggemans
@@ -2,9 +2,9 @@ import functools # noqa: I001
2
2
  import os
3
3
 
4
4
  # __version__ should be defined as soon as possible
5
- from segmodels_keras._version import __version__
5
+ from ._version import __version__
6
6
 
7
- from segmodels_keras import base
7
+ from . import base
8
8
 
9
9
  _KERAS_FRAMEWORK_NAME = "keras"
10
10
  _TF_KERAS_FRAMEWORK_NAME = "tf.keras"
@@ -1,2 +1,2 @@
1
- __versioninfo__ = (0, 1, 0, "dev3")
1
+ __versioninfo__ = (0, 1, 0, "dev4")
2
2
  __version__ = ".".join(map(str, __versioninfo__))
@@ -274,5 +274,10 @@ class BackbonesFactory:
274
274
  def get_preprocessing(self, name):
275
275
  return self._models.get(name)[1]
276
276
 
277
+ def get_custom_objects(self, name):
278
+ if name == "inceptionresnetv2":
279
+ return irv2.get_custom_objects()
280
+ return {}
281
+
277
282
 
278
283
  Backbones = BackbonesFactory()
@@ -30,8 +30,6 @@ are the following:
30
30
  https://github.com/ayushdabra/dubai-satellite-imagery-segmentation/blob/9446e16134e752dda080ba9d65be18ea47fa26a9/get_activations.py#L40
31
31
  - The keras.applications implementation uses different imports as it is internal in
32
32
  keras, and here we need to use the public API of keras.
33
- - Keep using the Lambda layer instead of CustomScaleLayer to avoid having to pass it in
34
- with `custom_objects` when loading the model.
35
33
  """
36
34
 
37
35
  import warnings
@@ -39,7 +37,6 @@ from pathlib import Path
39
37
 
40
38
  from keras import backend, layers, models
41
39
  from keras.applications import imagenet_utils
42
- from keras.layers import Layer
43
40
  from keras.utils import get_file, get_source_inputs
44
41
 
45
42
  BASE_WEIGHT_URL = (
@@ -314,6 +311,20 @@ def conv2d_bn(
314
311
  return x
315
312
 
316
313
 
314
+ class CustomScaleLayer(layers.Layer):
315
+ def __init__(self, scale, **kwargs):
316
+ super().__init__(**kwargs)
317
+ self.scale = scale
318
+
319
+ def get_config(self):
320
+ config = super().get_config()
321
+ config.update({"scale": self.scale})
322
+ return config
323
+
324
+ def call(self, inputs):
325
+ return inputs[0] + inputs[1] * self.scale
326
+
327
+
317
328
  def inception_resnet_block(x, scale, block_type, block_idx, activation="relu"):
318
329
  """Adds a Inception-ResNet block.
319
330
 
@@ -390,12 +401,7 @@ def inception_resnet_block(x, scale, block_type, block_idx, activation="relu"):
390
401
  name=f"{block_name}_conv",
391
402
  )
392
403
 
393
- x = layers.Lambda(
394
- lambda inputs, scale: inputs[0] + inputs[1] * scale,
395
- output_shape=x.shape[1:],
396
- arguments={"scale": scale},
397
- name=block_name,
398
- )([x, up])
404
+ x = CustomScaleLayer(scale)([x, up])
399
405
 
400
406
  if activation is not None:
401
407
  x = layers.Activation(activation, name=f"{block_name}_ac")(x)
@@ -434,6 +440,10 @@ def decode_predictions(preds, top=5):
434
440
  return imagenet_utils.decode_predictions(preds, top=top)
435
441
 
436
442
 
443
+ def get_custom_objects():
444
+ return {"CustomScaleLayer": CustomScaleLayer}
445
+
446
+
437
447
  def _obtain_input_shape(
438
448
  input_shape,
439
449
  default_size,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: segmodels_keras
3
- Version: 0.1.0.dev3
3
+ Version: 0.1.0.dev4
4
4
  Summary: Image segmentation models with pre-trained backbones with Keras.
5
5
  Home-page: https://github.com/orthoseg/segmodels_keras
6
6
  Author: Pieter Roggemans