segmodels-keras 0.1.0.dev5__tar.gz → 0.1.0.dev6__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.dev5 → segmodels_keras-0.1.0.dev6}/PKG-INFO +1 -1
- {segmodels_keras-0.1.0.dev5 → segmodels_keras-0.1.0.dev6}/segmodels_keras/_version.py +1 -1
- {segmodels_keras-0.1.0.dev5 → segmodels_keras-0.1.0.dev6}/segmodels_keras/models/fpn.py +7 -0
- {segmodels_keras-0.1.0.dev5 → segmodels_keras-0.1.0.dev6}/segmodels_keras/models/linknet.py +7 -0
- {segmodels_keras-0.1.0.dev5 → segmodels_keras-0.1.0.dev6}/segmodels_keras/models/pspnet.py +7 -0
- {segmodels_keras-0.1.0.dev5 → segmodels_keras-0.1.0.dev6}/segmodels_keras/models/unet.py +7 -0
- {segmodels_keras-0.1.0.dev5 → segmodels_keras-0.1.0.dev6}/segmodels_keras.egg-info/PKG-INFO +1 -1
- {segmodels_keras-0.1.0.dev5 → segmodels_keras-0.1.0.dev6}/tests/test_utils.py +4 -4
- {segmodels_keras-0.1.0.dev5 → segmodels_keras-0.1.0.dev6}/LICENSE +0 -0
- {segmodels_keras-0.1.0.dev5 → segmodels_keras-0.1.0.dev6}/MANIFEST.in +0 -0
- {segmodels_keras-0.1.0.dev5 → segmodels_keras-0.1.0.dev6}/README.rst +0 -0
- {segmodels_keras-0.1.0.dev5 → segmodels_keras-0.1.0.dev6}/pyproject.toml +0 -0
- {segmodels_keras-0.1.0.dev5 → segmodels_keras-0.1.0.dev6}/segmodels_keras/__init__.py +0 -0
- {segmodels_keras-0.1.0.dev5 → segmodels_keras-0.1.0.dev6}/segmodels_keras/_compat.py +0 -0
- {segmodels_keras-0.1.0.dev5 → segmodels_keras-0.1.0.dev6}/segmodels_keras/backbones/__init__.py +0 -0
- {segmodels_keras-0.1.0.dev5 → segmodels_keras-0.1.0.dev6}/segmodels_keras/backbones/backbones_factory.py +0 -0
- {segmodels_keras-0.1.0.dev5 → segmodels_keras-0.1.0.dev6}/segmodels_keras/backbones/inception_resnet_v2.py +0 -0
- {segmodels_keras-0.1.0.dev5 → segmodels_keras-0.1.0.dev6}/segmodels_keras/backbones/inception_v3.py +0 -0
- {segmodels_keras-0.1.0.dev5 → segmodels_keras-0.1.0.dev6}/segmodels_keras/base/__init__.py +0 -0
- {segmodels_keras-0.1.0.dev5 → segmodels_keras-0.1.0.dev6}/segmodels_keras/base/functional.py +0 -0
- {segmodels_keras-0.1.0.dev5 → segmodels_keras-0.1.0.dev6}/segmodels_keras/base/objects.py +0 -0
- {segmodels_keras-0.1.0.dev5 → segmodels_keras-0.1.0.dev6}/segmodels_keras/losses.py +0 -0
- {segmodels_keras-0.1.0.dev5 → segmodels_keras-0.1.0.dev6}/segmodels_keras/metrics.py +0 -0
- {segmodels_keras-0.1.0.dev5 → segmodels_keras-0.1.0.dev6}/segmodels_keras/models/__init__.py +0 -0
- {segmodels_keras-0.1.0.dev5 → segmodels_keras-0.1.0.dev6}/segmodels_keras/models/_common_blocks.py +0 -0
- {segmodels_keras-0.1.0.dev5 → segmodels_keras-0.1.0.dev6}/segmodels_keras/models/_utils.py +0 -0
- {segmodels_keras-0.1.0.dev5 → segmodels_keras-0.1.0.dev6}/segmodels_keras/utils.py +0 -0
- {segmodels_keras-0.1.0.dev5 → segmodels_keras-0.1.0.dev6}/segmodels_keras.egg-info/SOURCES.txt +0 -0
- {segmodels_keras-0.1.0.dev5 → segmodels_keras-0.1.0.dev6}/segmodels_keras.egg-info/dependency_links.txt +0 -0
- {segmodels_keras-0.1.0.dev5 → segmodels_keras-0.1.0.dev6}/segmodels_keras.egg-info/requires.txt +0 -0
- {segmodels_keras-0.1.0.dev5 → segmodels_keras-0.1.0.dev6}/segmodels_keras.egg-info/top_level.txt +0 -0
- {segmodels_keras-0.1.0.dev5 → segmodels_keras-0.1.0.dev6}/setup.cfg +0 -0
- {segmodels_keras-0.1.0.dev5 → segmodels_keras-0.1.0.dev6}/setup.py +0 -0
- {segmodels_keras-0.1.0.dev5 → segmodels_keras-0.1.0.dev6}/tests/test_backbones.py +0 -0
- {segmodels_keras-0.1.0.dev5 → segmodels_keras-0.1.0.dev6}/tests/test_metrics.py +0 -0
- {segmodels_keras-0.1.0.dev5 → segmodels_keras-0.1.0.dev6}/tests/test_models.py +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
__versioninfo__ = (0, 1, 0, "
|
|
1
|
+
__versioninfo__ = (0, 1, 0, "dev6")
|
|
2
2
|
__version__ = ".".join(map(str, __versioninfo__))
|
|
@@ -108,6 +108,7 @@ def build_fpn(
|
|
|
108
108
|
aggregation="sum",
|
|
109
109
|
dropout=None,
|
|
110
110
|
weights_notop=None,
|
|
111
|
+
freeze_notop=False,
|
|
111
112
|
):
|
|
112
113
|
input_ = backbone.input
|
|
113
114
|
x = backbone.output
|
|
@@ -177,6 +178,8 @@ def build_fpn(
|
|
|
177
178
|
if weights_notop is not None:
|
|
178
179
|
model_notop = models.Model(input_, x)
|
|
179
180
|
model_notop.load_weights(weights_notop)
|
|
181
|
+
if freeze_notop:
|
|
182
|
+
freeze_model(model_notop)
|
|
180
183
|
x = model_notop.output
|
|
181
184
|
|
|
182
185
|
# model head (define number of output classes)
|
|
@@ -208,6 +211,7 @@ def FPN(
|
|
|
208
211
|
activation="softmax",
|
|
209
212
|
weights=None,
|
|
210
213
|
weights_notop=None,
|
|
214
|
+
freeze_notop=False,
|
|
211
215
|
encoder_weights="imagenet",
|
|
212
216
|
encoder_freeze=False,
|
|
213
217
|
encoder_features="default",
|
|
@@ -230,6 +234,8 @@ def FPN(
|
|
|
230
234
|
weights: optional, path to model weights to be loaded.
|
|
231
235
|
weights_notop: optional, path to model weights without top (without segmentation
|
|
232
236
|
head) to be loaded.
|
|
237
|
+
freeze_notop: if ``True``, set all layers of the model except the top as
|
|
238
|
+
non-trainable.
|
|
233
239
|
activation: name of one of ``keras.activations`` for last model layer
|
|
234
240
|
(e.g. ``sigmoid``, ``softmax``, ``linear``).
|
|
235
241
|
encoder_weights: one of ``None`` (random initialization), ``imagenet``
|
|
@@ -276,6 +282,7 @@ def FPN(
|
|
|
276
282
|
classes=classes,
|
|
277
283
|
aggregation=pyramid_aggregation,
|
|
278
284
|
weights_notop=weights_notop,
|
|
285
|
+
freeze_notop=freeze_notop,
|
|
279
286
|
)
|
|
280
287
|
|
|
281
288
|
# lock encoder weights for fine-tuning
|
|
@@ -142,6 +142,7 @@ def build_linknet(
|
|
|
142
142
|
activation="sigmoid",
|
|
143
143
|
use_batchnorm=True,
|
|
144
144
|
weights_notop=None,
|
|
145
|
+
freeze_notop=False,
|
|
145
146
|
):
|
|
146
147
|
input_ = backbone.input
|
|
147
148
|
x = backbone.output
|
|
@@ -174,6 +175,8 @@ def build_linknet(
|
|
|
174
175
|
if weights_notop is not None:
|
|
175
176
|
model_notop = models.Model(input_, x)
|
|
176
177
|
model_notop.load_weights(weights_notop)
|
|
178
|
+
if freeze_notop:
|
|
179
|
+
freeze_model(model_notop)
|
|
177
180
|
x = model_notop.output
|
|
178
181
|
|
|
179
182
|
# model head (define number of output classes)
|
|
@@ -204,6 +207,7 @@ def Linknet(
|
|
|
204
207
|
activation="sigmoid",
|
|
205
208
|
weights=None,
|
|
206
209
|
weights_notop=None,
|
|
210
|
+
freeze_notop=False,
|
|
207
211
|
encoder_weights="imagenet",
|
|
208
212
|
encoder_freeze=False,
|
|
209
213
|
encoder_features="default",
|
|
@@ -230,6 +234,8 @@ def Linknet(
|
|
|
230
234
|
weights: optional, path to model weights to be loaded.
|
|
231
235
|
weights_notop: optional, path to model weights without top (without segmentation
|
|
232
236
|
head) to be loaded.
|
|
237
|
+
freeze_notop: if ``True``, set all layers of the model except the top as
|
|
238
|
+
non-trainable.
|
|
233
239
|
encoder_weights: one of ``None`` (random initialization), ``imagenet``
|
|
234
240
|
(pre-training on ImageNet).
|
|
235
241
|
encoder_freeze: if ``True`` set all layers of encoder (backbone model) as
|
|
@@ -285,6 +291,7 @@ def Linknet(
|
|
|
285
291
|
n_upsample_blocks=len(decoder_filters),
|
|
286
292
|
use_batchnorm=decoder_use_batchnorm,
|
|
287
293
|
weights_notop=weights_notop,
|
|
294
|
+
freeze_notop=freeze_notop,
|
|
288
295
|
)
|
|
289
296
|
|
|
290
297
|
# lock encoder weights for fine-tuning
|
|
@@ -125,6 +125,7 @@ def build_psp(
|
|
|
125
125
|
activation="softmax",
|
|
126
126
|
dropout=None,
|
|
127
127
|
weights_notop=None,
|
|
128
|
+
freeze_notop=False,
|
|
128
129
|
):
|
|
129
130
|
input_ = backbone.input
|
|
130
131
|
x = (
|
|
@@ -152,6 +153,8 @@ def build_psp(
|
|
|
152
153
|
if weights_notop is not None:
|
|
153
154
|
model_notop = models.Model(input_, x)
|
|
154
155
|
model_notop.load_weights(weights_notop)
|
|
156
|
+
if freeze_notop:
|
|
157
|
+
freeze_model(model_notop)
|
|
155
158
|
x = model_notop.output
|
|
156
159
|
|
|
157
160
|
# model head
|
|
@@ -185,6 +188,7 @@ def PSPNet(
|
|
|
185
188
|
activation="softmax",
|
|
186
189
|
weights=None,
|
|
187
190
|
weights_notop=None,
|
|
191
|
+
freeze_notop=False,
|
|
188
192
|
encoder_weights="imagenet",
|
|
189
193
|
encoder_freeze=False,
|
|
190
194
|
downsample_factor=8,
|
|
@@ -208,6 +212,8 @@ def PSPNet(
|
|
|
208
212
|
weights: optional, path to model weights to be loaded.
|
|
209
213
|
weights_notop: optional, path to model weights without top (without segmentation
|
|
210
214
|
head) to be loaded.
|
|
215
|
+
freeze_notop: if ``True``, set all layers of the model except the top as
|
|
216
|
+
non-trainable.
|
|
211
217
|
encoder_weights: one of ``None`` (random initialization), ``imagenet``
|
|
212
218
|
(pre-training on ImageNet).
|
|
213
219
|
encoder_freeze: if ``True`` set all layers of encoder (backbone model) as
|
|
@@ -261,6 +267,7 @@ def PSPNet(
|
|
|
261
267
|
activation=activation,
|
|
262
268
|
dropout=psp_dropout,
|
|
263
269
|
weights_notop=weights_notop,
|
|
270
|
+
freeze_notop=freeze_notop,
|
|
264
271
|
)
|
|
265
272
|
|
|
266
273
|
# lock encoder weights for fine-tuning
|
|
@@ -114,6 +114,7 @@ def build_unet(
|
|
|
114
114
|
activation="sigmoid",
|
|
115
115
|
use_batchnorm=True,
|
|
116
116
|
weights_notop=None,
|
|
117
|
+
freeze_notop=False,
|
|
117
118
|
):
|
|
118
119
|
input_ = backbone.input
|
|
119
120
|
x = backbone.output
|
|
@@ -146,6 +147,8 @@ def build_unet(
|
|
|
146
147
|
if weights_notop is not None:
|
|
147
148
|
model_notop = models.Model(input_, x)
|
|
148
149
|
model_notop.load_weights(weights_notop)
|
|
150
|
+
if freeze_notop:
|
|
151
|
+
freeze_model(model_notop)
|
|
149
152
|
x = model_notop.output
|
|
150
153
|
|
|
151
154
|
# model head (define number of output classes)
|
|
@@ -177,6 +180,7 @@ def Unet(
|
|
|
177
180
|
activation="sigmoid",
|
|
178
181
|
weights=None,
|
|
179
182
|
weights_notop=None,
|
|
183
|
+
freeze_notop=False,
|
|
180
184
|
encoder_weights="imagenet",
|
|
181
185
|
encoder_freeze=False,
|
|
182
186
|
encoder_features="default",
|
|
@@ -201,6 +205,8 @@ def Unet(
|
|
|
201
205
|
weights: optional, path to model weights to be loaded.
|
|
202
206
|
weights_notop: optional, path to model weights without top (without segmentation
|
|
203
207
|
head) to be loaded.
|
|
208
|
+
freeze_notop: if ``True``, set all layers of the model except the top as
|
|
209
|
+
non-trainable.
|
|
204
210
|
encoder_weights: one of ``None`` (random initialization), ``imagenet``
|
|
205
211
|
(pre-training on ImageNet).
|
|
206
212
|
encoder_freeze: if ``True`` set all layers of encoder (backbone model) as
|
|
@@ -256,6 +262,7 @@ def Unet(
|
|
|
256
262
|
n_upsample_blocks=len(decoder_filters),
|
|
257
263
|
use_batchnorm=decoder_use_batchnorm,
|
|
258
264
|
weights_notop=weights_notop,
|
|
265
|
+
freeze_notop=freeze_notop,
|
|
259
266
|
)
|
|
260
267
|
|
|
261
268
|
# lock encoder weights for fine-tuning
|
|
@@ -127,13 +127,13 @@ def test_save_model_weights_notop(tmp_path, decoder):
|
|
|
127
127
|
# Test loading the model weights without the top layers again
|
|
128
128
|
assert path.exists()
|
|
129
129
|
if decoder == "pspnet":
|
|
130
|
-
model = sm.PSPNet(backbone_name, weights_notop=path)
|
|
130
|
+
model = sm.PSPNet(backbone_name, weights_notop=path, freeze_notop=True)
|
|
131
131
|
elif decoder == "fpn":
|
|
132
|
-
model = sm.FPN(backbone_name, weights_notop=path)
|
|
132
|
+
model = sm.FPN(backbone_name, weights_notop=path, freeze_notop=True)
|
|
133
133
|
elif decoder == "linknet":
|
|
134
|
-
model = sm.Linknet(backbone_name, weights_notop=path)
|
|
134
|
+
model = sm.Linknet(backbone_name, weights_notop=path, freeze_notop=True)
|
|
135
135
|
elif decoder == "unet":
|
|
136
|
-
model = sm.Unet(backbone_name, weights_notop=path)
|
|
136
|
+
model = sm.Unet(backbone_name, weights_notop=path, freeze_notop=True)
|
|
137
137
|
else:
|
|
138
138
|
raise ValueError(f"Incorrect decoder {decoder}")
|
|
139
139
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{segmodels_keras-0.1.0.dev5 → segmodels_keras-0.1.0.dev6}/segmodels_keras/backbones/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{segmodels_keras-0.1.0.dev5 → segmodels_keras-0.1.0.dev6}/segmodels_keras/backbones/inception_v3.py
RENAMED
|
File without changes
|
|
File without changes
|
{segmodels_keras-0.1.0.dev5 → segmodels_keras-0.1.0.dev6}/segmodels_keras/base/functional.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{segmodels_keras-0.1.0.dev5 → segmodels_keras-0.1.0.dev6}/segmodels_keras/models/__init__.py
RENAMED
|
File without changes
|
{segmodels_keras-0.1.0.dev5 → segmodels_keras-0.1.0.dev6}/segmodels_keras/models/_common_blocks.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{segmodels_keras-0.1.0.dev5 → segmodels_keras-0.1.0.dev6}/segmodels_keras.egg-info/SOURCES.txt
RENAMED
|
File without changes
|
|
File without changes
|
{segmodels_keras-0.1.0.dev5 → segmodels_keras-0.1.0.dev6}/segmodels_keras.egg-info/requires.txt
RENAMED
|
File without changes
|
{segmodels_keras-0.1.0.dev5 → segmodels_keras-0.1.0.dev6}/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
|