supervisely 6.73.420__py3-none-any.whl → 6.73.422__py3-none-any.whl
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.
- supervisely/api/api.py +10 -5
- supervisely/api/app_api.py +71 -4
- supervisely/api/module_api.py +4 -0
- supervisely/api/nn/deploy_api.py +15 -9
- supervisely/api/nn/ecosystem_models_api.py +201 -0
- supervisely/api/nn/neural_network_api.py +12 -3
- supervisely/api/project_api.py +35 -6
- supervisely/api/task_api.py +5 -1
- supervisely/app/widgets/__init__.py +8 -1
- supervisely/app/widgets/agent_selector/template.html +1 -0
- supervisely/app/widgets/deploy_model/__init__.py +0 -0
- supervisely/app/widgets/deploy_model/deploy_model.py +729 -0
- supervisely/app/widgets/dropdown_checkbox_selector/__init__.py +0 -0
- supervisely/app/widgets/dropdown_checkbox_selector/dropdown_checkbox_selector.py +87 -0
- supervisely/app/widgets/dropdown_checkbox_selector/template.html +12 -0
- supervisely/app/widgets/ecosystem_model_selector/__init__.py +0 -0
- supervisely/app/widgets/ecosystem_model_selector/ecosystem_model_selector.py +190 -0
- supervisely/app/widgets/experiment_selector/experiment_selector.py +447 -264
- supervisely/app/widgets/fast_table/fast_table.py +402 -74
- supervisely/app/widgets/fast_table/script.js +364 -96
- supervisely/app/widgets/fast_table/style.css +24 -0
- supervisely/app/widgets/fast_table/template.html +43 -3
- supervisely/app/widgets/radio_table/radio_table.py +10 -2
- supervisely/app/widgets/select/select.py +6 -4
- supervisely/app/widgets/select_dataset_tree/select_dataset_tree.py +18 -0
- supervisely/app/widgets/tabs/tabs.py +22 -6
- supervisely/app/widgets/tabs/template.html +5 -1
- supervisely/nn/artifacts/__init__.py +1 -1
- supervisely/nn/artifacts/artifacts.py +10 -2
- supervisely/nn/artifacts/detectron2.py +1 -0
- supervisely/nn/artifacts/hrda.py +1 -0
- supervisely/nn/artifacts/mmclassification.py +20 -0
- supervisely/nn/artifacts/mmdetection.py +5 -3
- supervisely/nn/artifacts/mmsegmentation.py +1 -0
- supervisely/nn/artifacts/ritm.py +1 -0
- supervisely/nn/artifacts/rtdetr.py +1 -0
- supervisely/nn/artifacts/unet.py +1 -0
- supervisely/nn/artifacts/utils.py +3 -0
- supervisely/nn/artifacts/yolov5.py +2 -0
- supervisely/nn/artifacts/yolov8.py +1 -0
- supervisely/nn/benchmark/semantic_segmentation/metric_provider.py +18 -18
- supervisely/nn/experiments.py +9 -0
- supervisely/nn/inference/gui/serving_gui_template.py +39 -13
- supervisely/nn/inference/inference.py +160 -94
- supervisely/nn/inference/predict_app/__init__.py +0 -0
- supervisely/nn/inference/predict_app/gui/__init__.py +0 -0
- supervisely/nn/inference/predict_app/gui/classes_selector.py +91 -0
- supervisely/nn/inference/predict_app/gui/gui.py +710 -0
- supervisely/nn/inference/predict_app/gui/input_selector.py +165 -0
- supervisely/nn/inference/predict_app/gui/model_selector.py +79 -0
- supervisely/nn/inference/predict_app/gui/output_selector.py +139 -0
- supervisely/nn/inference/predict_app/gui/preview.py +93 -0
- supervisely/nn/inference/predict_app/gui/settings_selector.py +184 -0
- supervisely/nn/inference/predict_app/gui/tags_selector.py +110 -0
- supervisely/nn/inference/predict_app/gui/utils.py +282 -0
- supervisely/nn/inference/predict_app/predict_app.py +184 -0
- supervisely/nn/inference/uploader.py +9 -5
- supervisely/nn/model/prediction.py +2 -0
- supervisely/nn/model/prediction_session.py +20 -3
- supervisely/nn/training/gui/gui.py +131 -44
- supervisely/nn/training/gui/model_selector.py +8 -6
- supervisely/nn/training/gui/train_val_splits_selector.py +122 -70
- supervisely/nn/training/gui/training_artifacts.py +0 -5
- supervisely/nn/training/train_app.py +161 -44
- supervisely/template/experiment/experiment.html.jinja +74 -17
- supervisely/template/experiment/experiment_generator.py +258 -112
- supervisely/template/experiment/header.html.jinja +31 -13
- supervisely/template/experiment/sly-style.css +7 -2
- {supervisely-6.73.420.dist-info → supervisely-6.73.422.dist-info}/METADATA +3 -1
- {supervisely-6.73.420.dist-info → supervisely-6.73.422.dist-info}/RECORD +74 -56
- supervisely/app/widgets/experiment_selector/style.css +0 -27
- supervisely/app/widgets/experiment_selector/template.html +0 -61
- {supervisely-6.73.420.dist-info → supervisely-6.73.422.dist-info}/LICENSE +0 -0
- {supervisely-6.73.420.dist-info → supervisely-6.73.422.dist-info}/WHEEL +0 -0
- {supervisely-6.73.420.dist-info → supervisely-6.73.422.dist-info}/entry_points.txt +0 -0
- {supervisely-6.73.420.dist-info → supervisely-6.73.422.dist-info}/top_level.txt +0 -0
|
@@ -14,7 +14,7 @@ Here are prediction samples made with **{{ experiment.training.checkpoints.pytor
|
|
|
14
14
|
|
|
15
15
|
## Evaluation
|
|
16
16
|
|
|
17
|
-
The **{{ experiment.training.checkpoints.pytorch.name }}** checkpoint was evaluated on the validation set containing **{{ experiment.project.splits.val }}
|
|
17
|
+
The **{{ experiment.training.checkpoints.pytorch.name }}** checkpoint was evaluated on the validation set containing **{{ experiment.project.splits.val.size }}
|
|
18
18
|
images**.
|
|
19
19
|
|
|
20
20
|
See the full [📊 Evaluation Report]({{ experiment.training.evaluation.url }}) for details and visualizations.
|
|
@@ -28,6 +28,35 @@ was performed.
|
|
|
28
28
|
|
|
29
29
|
{% endif %}
|
|
30
30
|
|
|
31
|
+
{% if widgets.training_plots %}
|
|
32
|
+
|
|
33
|
+
## Training Plots
|
|
34
|
+
|
|
35
|
+
Visualization of the training scalars logged during the experiment.
|
|
36
|
+
|
|
37
|
+
{% if experiment.training.logs.path %}
|
|
38
|
+
<div>
|
|
39
|
+
<sly-iw-launch-button
|
|
40
|
+
class="training-plots-button"
|
|
41
|
+
style=""
|
|
42
|
+
:disabled="false"
|
|
43
|
+
:autoRun="true"
|
|
44
|
+
:state="{ 'slyFolder': '{{ experiment.training.logs.path }}' }"
|
|
45
|
+
:moduleId="{{ resources.apps.log_viewer.module_id }}"
|
|
46
|
+
:proxyKeepUrl="true"
|
|
47
|
+
:openInNewWindow="true"
|
|
48
|
+
:command="command">
|
|
49
|
+
<span>Open Logs</span> <i class="zmdi zmdi-arrow-right-top" />
|
|
50
|
+
</sly-iw-launch-button>
|
|
51
|
+
</div>
|
|
52
|
+
{% endif %}
|
|
53
|
+
|
|
54
|
+
<div class="training-plots">
|
|
55
|
+
{{ widgets.training_plots | safe }}
|
|
56
|
+
</div>
|
|
57
|
+
|
|
58
|
+
{% endif %}
|
|
59
|
+
|
|
31
60
|
## Artifacts
|
|
32
61
|
|
|
33
62
|
[📂 Open in Team Files]({{ experiment.paths.artifacts_dir.url }}){:target="_blank"}
|
|
@@ -89,10 +118,8 @@ The quick actions on this page, such as **Deploy**, **Predict**, or **Fine-tune*
|
|
|
89
118
|
}}){:target="_blank"} - deploy your model in the Supervisely Platform.
|
|
90
119
|
- [Train {{ experiment.model.framework }}]({{ env.server_address }}/ecosystem/apps/{{ resources.apps.train.slug
|
|
91
120
|
}}){:target="_blank"} - train a model in the Supervisely Platform.
|
|
92
|
-
- [
|
|
93
|
-
|
|
94
|
-
- [Apply NN to Videos]({{ env.server_address }}/ecosystem/apps/{{ resources.apps.apply_nn_to_videos.slug }}){:target="_blank"} -
|
|
95
|
-
for predictions on video project or dataset.
|
|
121
|
+
- [Predict App]({{ env.server_address }}/ecosystem/apps/{{ resources.apps.predict.slug }}){:target="_blank"} -
|
|
122
|
+
deploy your model and make predictions.
|
|
96
123
|
|
|
97
124
|
## API Integration & Deployment
|
|
98
125
|
|
|
@@ -100,10 +127,20 @@ In this section, you'll find the quickstart guides for integrating your model in
|
|
|
100
127
|
|
|
101
128
|
### Table of contents:
|
|
102
129
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
130
|
+
<ul>
|
|
131
|
+
<li>
|
|
132
|
+
<a :href="`${location.pathname}#supervisely-api`">Supervisely API</a>
|
|
133
|
+
</li>
|
|
134
|
+
<li>
|
|
135
|
+
<a :href="`${location.pathname}#deploy-in-docker`">Deploy in Docker</a>
|
|
136
|
+
</li>
|
|
137
|
+
<li>
|
|
138
|
+
<a :href="`${location.pathname}#deploy-locally-with-supervisely-sdk`">Deploy locally with Supervisely SDK</a>
|
|
139
|
+
</li>
|
|
140
|
+
<li>
|
|
141
|
+
<a :href="`${location.pathname}#using-original-model-codebase`">Using Original Model Codebase API</a>
|
|
142
|
+
</li>
|
|
143
|
+
</ul>
|
|
107
144
|
|
|
108
145
|
## Supervisely API
|
|
109
146
|
|
|
@@ -163,6 +200,7 @@ api = sly.Api()
|
|
|
163
200
|
model = api.nn.deploy(
|
|
164
201
|
model="{{ experiment.paths.artifacts_dir.path }}/checkpoints/{{ experiment.training.checkpoints.pytorch.name }}",
|
|
165
202
|
device="cuda:0", # or "cpu"
|
|
203
|
+
workspace_id={{ experiment.project.workspace_id }}
|
|
166
204
|
)
|
|
167
205
|
```
|
|
168
206
|
|
|
@@ -180,6 +218,7 @@ api = sly.Api()
|
|
|
180
218
|
model = api.nn.deploy(
|
|
181
219
|
model="{{ experiment.paths.artifacts_dir.path }}/export/{{ experiment.training.checkpoints.onnx.name }}",
|
|
182
220
|
device="cuda:0", # or "cpu"
|
|
221
|
+
workspace_id={{ experiment.project.workspace_id }}
|
|
183
222
|
)
|
|
184
223
|
```
|
|
185
224
|
|
|
@@ -198,6 +237,7 @@ api = sly.Api()
|
|
|
198
237
|
model = api.nn.deploy(
|
|
199
238
|
model="{{ experiment.paths.artifacts_dir.path }}/export/{{ experiment.training.checkpoints.tensorrt.name }}",
|
|
200
239
|
device="cuda:0", # or "cpu"
|
|
240
|
+
workspace_id={{ experiment.project.workspace_id }}
|
|
201
241
|
)
|
|
202
242
|
```
|
|
203
243
|
|
|
@@ -232,7 +272,9 @@ predictions = model.predict(
|
|
|
232
272
|
|
|
233
273
|
```python
|
|
234
274
|
# Predict images in Supervisely
|
|
235
|
-
predictions = model.predict(
|
|
275
|
+
predictions = model.predict(
|
|
276
|
+
image_ids=[123, 124] # Image IDs in Supervisely
|
|
277
|
+
)
|
|
236
278
|
```
|
|
237
279
|
|
|
238
280
|
{% endtab %}
|
|
@@ -241,7 +283,9 @@ predictions = model.predict(image_ids=[123, 124] # Image IDs in Supervisely)
|
|
|
241
283
|
|
|
242
284
|
```python
|
|
243
285
|
# Predict dataset
|
|
244
|
-
predictions = model.predict(
|
|
286
|
+
predictions = model.predict(
|
|
287
|
+
dataset_id=12 # Dataset ID in Supervisely
|
|
288
|
+
)
|
|
245
289
|
```
|
|
246
290
|
|
|
247
291
|
{% endtab %}
|
|
@@ -250,7 +294,9 @@ predictions = model.predict(dataset_id=12 # Dataset ID in Supervisely)
|
|
|
250
294
|
|
|
251
295
|
```python
|
|
252
296
|
# Predict project
|
|
253
|
-
predictions = model.predict(
|
|
297
|
+
predictions = model.predict(
|
|
298
|
+
project_id=21 # Project ID in Supervisely
|
|
299
|
+
)
|
|
254
300
|
```
|
|
255
301
|
|
|
256
302
|
{% endtab %}
|
|
@@ -259,7 +305,9 @@ predictions = model.predict(project_id=21 # Project ID in Supervisely)
|
|
|
259
305
|
|
|
260
306
|
```python
|
|
261
307
|
# Predict video
|
|
262
|
-
predictions = model.predict(
|
|
308
|
+
predictions = model.predict(
|
|
309
|
+
video_id=123 # Video ID in Supervisely
|
|
310
|
+
)
|
|
263
311
|
```
|
|
264
312
|
|
|
265
313
|
{% endtab %}
|
|
@@ -324,9 +372,9 @@ Video](https://docs.supervisely.com/neural-networks/overview-1/prediction-api#tr
|
|
|
324
372
|
You can deploy the model in a 🐋 Docker Container with a single `docker run` command. Download a checkpoint, pull the
|
|
325
373
|
docker image for the corresponding model's framework, and run the `docker run` command with addtional arguments.
|
|
326
374
|
|
|
327
|
-
1. Download
|
|
375
|
+
1. Download training artifacts from Supervisely ([Open in Team Files]({{ experiment.paths.artifacts_dir.url }}){:target="_blank"})
|
|
328
376
|
|
|
329
|
-
2. Pull the Docker image
|
|
377
|
+
2. Pull the Docker image for deployment
|
|
330
378
|
|
|
331
379
|
```bash
|
|
332
380
|
docker pull {{ code.docker.deploy }}
|
|
@@ -484,11 +532,20 @@ using the original code from the authors.
|
|
|
484
532
|
|
|
485
533
|
1. Download checkpoint from Supervisely ([Open in Team Files]({{ experiment.paths.checkpoints_dir.url }}){:target="_blank"})
|
|
486
534
|
|
|
487
|
-
|
|
488
|
-
|
|
535
|
+
{% if resources.original_repository.name and resources.original_repository.url %}
|
|
536
|
+
|
|
537
|
+
2. Prepare environment following the instructions of the original repository [{{ resources.original_repository.name }}]({{
|
|
538
|
+
resources.original_repository.url }}){:target="_blank"}
|
|
489
539
|
|
|
490
540
|
3. Use the demo script for inference:
|
|
491
541
|
|
|
542
|
+
{% else %}
|
|
543
|
+
2. Prepare environment following the instructions of the original repository
|
|
544
|
+
|
|
545
|
+
3. Use the demo script for inference:
|
|
546
|
+
|
|
547
|
+
{% endif %}
|
|
548
|
+
|
|
492
549
|
<details>
|
|
493
550
|
<summary><strong>🐍 View Code</strong></summary>
|
|
494
551
|
|