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.
- {segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/PKG-INFO +1 -1
- {segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/segmodels_keras/_version.py +1 -1
- {segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/segmodels_keras/backbones/inception_resnet_v2.py +19 -27
- {segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/segmodels_keras.egg-info/PKG-INFO +1 -1
- {segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/LICENSE +0 -0
- {segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/MANIFEST.in +0 -0
- {segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/README.rst +0 -0
- {segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/pyproject.toml +0 -0
- {segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/segmodels_keras/__init__.py +0 -0
- {segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/segmodels_keras/_compat.py +0 -0
- {segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/segmodels_keras/backbones/__init__.py +0 -0
- {segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/segmodels_keras/backbones/backbones_factory.py +0 -0
- {segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/segmodels_keras/backbones/inception_v3.py +0 -0
- {segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/segmodels_keras/base/__init__.py +0 -0
- {segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/segmodels_keras/base/functional.py +0 -0
- {segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/segmodels_keras/base/objects.py +0 -0
- {segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/segmodels_keras/losses.py +0 -0
- {segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/segmodels_keras/metrics.py +0 -0
- {segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/segmodels_keras/models/__init__.py +0 -0
- {segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/segmodels_keras/models/_common_blocks.py +0 -0
- {segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/segmodels_keras/models/_utils.py +0 -0
- {segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/segmodels_keras/models/fpn.py +0 -0
- {segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/segmodels_keras/models/linknet.py +0 -0
- {segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/segmodels_keras/models/pspnet.py +0 -0
- {segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/segmodels_keras/models/unet.py +0 -0
- {segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/segmodels_keras/utils.py +0 -0
- {segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/segmodels_keras.egg-info/SOURCES.txt +0 -0
- {segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/segmodels_keras.egg-info/dependency_links.txt +0 -0
- {segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/segmodels_keras.egg-info/requires.txt +0 -0
- {segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/segmodels_keras.egg-info/top_level.txt +0 -0
- {segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/setup.cfg +0 -0
- {segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/setup.py +0 -0
- {segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/tests/test_backbones.py +0 -0
- {segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/tests/test_metrics.py +0 -0
- {segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/tests/test_models.py +0 -0
- {segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/tests/test_utils.py +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
__versioninfo__ = (0, 1, 0, "
|
|
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 =
|
|
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[
|
|
515
|
-
)
|
|
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[
|
|
534
|
-
)
|
|
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: "
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/segmodels_keras/backbones/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/segmodels_keras/backbones/inception_v3.py
RENAMED
|
File without changes
|
|
File without changes
|
{segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/segmodels_keras/base/functional.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/segmodels_keras/models/__init__.py
RENAMED
|
File without changes
|
{segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/segmodels_keras/models/_common_blocks.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/segmodels_keras.egg-info/SOURCES.txt
RENAMED
|
File without changes
|
|
File without changes
|
{segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/segmodels_keras.egg-info/requires.txt
RENAMED
|
File without changes
|
{segmodels_keras-0.1.0.dev1 → segmodels_keras-0.1.0.dev2}/segmodels_keras.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|