segmodels-keras 0.1.0.dev1__tar.gz → 0.1.0.dev2__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.dev1 → segmodels_keras-0.1.0.dev2}/PKG-INFO +1 -1
  2. {segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/segmodels_keras/_version.py +1 -1
  3. {segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/segmodels_keras/backbones/inception_resnet_v2.py +19 -27
  4. {segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/segmodels_keras.egg-info/PKG-INFO +1 -1
  5. {segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/LICENSE +0 -0
  6. {segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/MANIFEST.in +0 -0
  7. {segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/README.rst +0 -0
  8. {segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/pyproject.toml +0 -0
  9. {segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/segmodels_keras/__init__.py +0 -0
  10. {segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/segmodels_keras/_compat.py +0 -0
  11. {segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/segmodels_keras/backbones/__init__.py +0 -0
  12. {segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/segmodels_keras/backbones/backbones_factory.py +0 -0
  13. {segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/segmodels_keras/backbones/inception_v3.py +0 -0
  14. {segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/segmodels_keras/base/__init__.py +0 -0
  15. {segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/segmodels_keras/base/functional.py +0 -0
  16. {segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/segmodels_keras/base/objects.py +0 -0
  17. {segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/segmodels_keras/losses.py +0 -0
  18. {segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/segmodels_keras/metrics.py +0 -0
  19. {segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/segmodels_keras/models/__init__.py +0 -0
  20. {segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/segmodels_keras/models/_common_blocks.py +0 -0
  21. {segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/segmodels_keras/models/_utils.py +0 -0
  22. {segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/segmodels_keras/models/fpn.py +0 -0
  23. {segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/segmodels_keras/models/linknet.py +0 -0
  24. {segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/segmodels_keras/models/pspnet.py +0 -0
  25. {segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/segmodels_keras/models/unet.py +0 -0
  26. {segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/segmodels_keras/utils.py +0 -0
  27. {segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/segmodels_keras.egg-info/SOURCES.txt +0 -0
  28. {segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/segmodels_keras.egg-info/dependency_links.txt +0 -0
  29. {segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/segmodels_keras.egg-info/requires.txt +0 -0
  30. {segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/segmodels_keras.egg-info/top_level.txt +0 -0
  31. {segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/setup.cfg +0 -0
  32. {segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/setup.py +0 -0
  33. {segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/tests/test_backbones.py +0 -0
  34. {segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/tests/test_metrics.py +0 -0
  35. {segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/tests/test_models.py +0 -0
  36. {segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/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.dev1
3
+ Version: 0.1.0.dev2
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
@@ -1,2 +1,2 @@
1
- __versioninfo__ = (0, 1, 0, "dev1")
1
+ __versioninfo__ = (0, 1, 0, "dev2")
2
2
  __version__ = ".".join(map(str, __versioninfo__))
@@ -26,6 +26,9 @@ Differences with the original implementation in keras.applications:
26
26
  https://github.com/ayushdabra/dubai-satellite-imagery-segmentation/blob/9446e16134e752dda080ba9d65be18ea47fa26a9/get_activations.py#L40
27
27
  - The original implementation uses different imports as it is internal in keras, and
28
28
  here we need to use the public API of keras.
29
+ - Use Lambda layer instead of CustomScaleLayer because:
30
+ - it avoids having to define + pass in a custom layer when loading the model
31
+ - otherwise "old" weights cannot be loaded when using keras 3
29
32
  """
30
33
 
31
34
  import warnings
@@ -308,20 +311,6 @@ def conv2d_bn(
308
311
  return x
309
312
 
310
313
 
311
- class CustomScaleLayer(Layer):
312
- def __init__(self, scale, **kwargs):
313
- super().__init__(**kwargs)
314
- self.scale = scale
315
-
316
- def get_config(self):
317
- config = super().get_config()
318
- config.update({"scale": self.scale})
319
- return config
320
-
321
- def call(self, inputs):
322
- return inputs[0] + inputs[1] * self.scale
323
-
324
-
325
314
  def inception_resnet_block(x, scale, block_type, block_idx, activation="relu"):
326
315
  """Adds a Inception-ResNet block.
327
316
 
@@ -398,9 +387,16 @@ def inception_resnet_block(x, scale, block_type, block_idx, activation="relu"):
398
387
  name=f"{block_name}_conv",
399
388
  )
400
389
 
401
- x = CustomScaleLayer(scale)([x, up])
390
+ x = layers.Lambda(
391
+ lambda inputs, scale: inputs[0] + inputs[1] * scale,
392
+ output_shape=x.shape[1:],
393
+ arguments={"scale": scale},
394
+ name=block_name,
395
+ )([x, up])
396
+
402
397
  if activation is not None:
403
398
  x = layers.Activation(activation, name=f"{block_name}_ac")(x)
399
+
404
400
  return x
405
401
 
406
402
 
@@ -502,17 +498,15 @@ def _obtain_input_shape(
502
498
  if data_format == "channels_first":
503
499
  if input_shape is not None:
504
500
  if len(input_shape) != 3:
505
- raise ValueError(
506
- "`input_shape` must be a tuple of three integers."
507
- )
501
+ raise ValueError("`input_shape` must be a tuple of three integers.")
508
502
  if input_shape[0] != 3 and weights == "imagenet":
509
503
  raise ValueError(
510
504
  "The input must have 3 channels; Received "
511
505
  f"`input_shape={input_shape}`"
512
506
  )
513
- if (
514
- input_shape[1] is not None and input_shape[1] < min_size
515
- ) or (input_shape[2] is not None and input_shape[2] < min_size):
507
+ if (input_shape[1] is not None and input_shape[1] < min_size) or (
508
+ input_shape[2] is not None and input_shape[2] < min_size
509
+ ):
516
510
  raise ValueError(
517
511
  f"Input size must be at least {min_size}"
518
512
  f"x{min_size}; Received: "
@@ -521,17 +515,15 @@ def _obtain_input_shape(
521
515
  else:
522
516
  if input_shape is not None:
523
517
  if len(input_shape) != 3:
524
- raise ValueError(
525
- "`input_shape` must be a tuple of three integers."
526
- )
518
+ raise ValueError("`input_shape` must be a tuple of three integers.")
527
519
  if input_shape[-1] != 3 and weights == "imagenet":
528
520
  raise ValueError(
529
521
  "The input must have 3 channels; Received "
530
522
  f"`input_shape={input_shape}`"
531
523
  )
532
- if (
533
- input_shape[0] is not None and input_shape[0] < min_size
534
- ) or (input_shape[1] is not None and input_shape[1] < min_size):
524
+ if (input_shape[0] is not None and input_shape[0] < min_size) or (
525
+ input_shape[1] is not None and input_shape[1] < min_size
526
+ ):
535
527
  raise ValueError(
536
528
  "Input size must be at least "
537
529
  f"{min_size}x{min_size}; Received: "
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: segmodels_keras
3
- Version: 0.1.0.dev1
3
+ Version: 0.1.0.dev2
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