zea 0.0.5__py3-none-any.whl → 0.0.7__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.
Files changed (68) hide show
  1. zea/__init__.py +54 -19
  2. zea/agent/__init__.py +12 -12
  3. zea/agent/masks.py +2 -1
  4. zea/agent/selection.py +166 -0
  5. zea/backend/__init__.py +89 -0
  6. zea/backend/jax/__init__.py +14 -51
  7. zea/backend/tensorflow/__init__.py +0 -49
  8. zea/backend/tensorflow/dataloader.py +2 -1
  9. zea/backend/torch/__init__.py +27 -62
  10. zea/beamform/beamformer.py +100 -50
  11. zea/beamform/lens_correction.py +9 -2
  12. zea/beamform/pfield.py +9 -2
  13. zea/config.py +34 -25
  14. zea/data/__init__.py +22 -16
  15. zea/data/convert/camus.py +2 -1
  16. zea/data/convert/echonet.py +4 -4
  17. zea/data/convert/echonetlvh/convert_raw_to_usbmd.py +1 -1
  18. zea/data/convert/matlab.py +11 -4
  19. zea/data/data_format.py +31 -30
  20. zea/data/datasets.py +7 -5
  21. zea/data/file.py +104 -2
  22. zea/data/layers.py +5 -6
  23. zea/datapaths.py +16 -4
  24. zea/display.py +7 -5
  25. zea/interface.py +14 -16
  26. zea/internal/_generate_keras_ops.py +6 -7
  27. zea/internal/cache.py +2 -49
  28. zea/internal/config/validation.py +1 -2
  29. zea/internal/core.py +69 -6
  30. zea/internal/device.py +6 -2
  31. zea/internal/dummy_scan.py +330 -0
  32. zea/internal/operators.py +114 -2
  33. zea/internal/parameters.py +101 -70
  34. zea/internal/registry.py +1 -1
  35. zea/internal/setup_zea.py +5 -6
  36. zea/internal/utils.py +282 -0
  37. zea/io_lib.py +247 -19
  38. zea/keras_ops.py +74 -4
  39. zea/log.py +9 -7
  40. zea/metrics.py +365 -65
  41. zea/models/__init__.py +30 -20
  42. zea/models/base.py +30 -14
  43. zea/models/carotid_segmenter.py +19 -4
  44. zea/models/diffusion.py +187 -26
  45. zea/models/echonet.py +22 -8
  46. zea/models/echonetlvh.py +31 -18
  47. zea/models/lpips.py +19 -2
  48. zea/models/lv_segmentation.py +96 -0
  49. zea/models/preset_utils.py +5 -5
  50. zea/models/presets.py +36 -0
  51. zea/models/regional_quality.py +142 -0
  52. zea/models/taesd.py +21 -5
  53. zea/models/unet.py +15 -1
  54. zea/ops.py +414 -207
  55. zea/probes.py +6 -6
  56. zea/scan.py +109 -49
  57. zea/simulator.py +24 -21
  58. zea/tensor_ops.py +411 -206
  59. zea/tools/hf.py +1 -1
  60. zea/tools/selection_tool.py +47 -86
  61. zea/utils.py +92 -480
  62. zea/visualize.py +177 -39
  63. {zea-0.0.5.dist-info → zea-0.0.7.dist-info}/METADATA +9 -3
  64. zea-0.0.7.dist-info/RECORD +114 -0
  65. {zea-0.0.5.dist-info → zea-0.0.7.dist-info}/WHEEL +1 -1
  66. zea-0.0.5.dist-info/RECORD +0 -110
  67. {zea-0.0.5.dist-info → zea-0.0.7.dist-info}/entry_points.txt +0 -0
  68. {zea-0.0.5.dist-info → zea-0.0.7.dist-info/licenses}/LICENSE +0 -0
zea/visualize.py CHANGED
@@ -6,8 +6,11 @@ from typing import List, Optional, Tuple, Union
6
6
  import matplotlib.pyplot as plt
7
7
  import numpy as np
8
8
  from keras.ops.image import crop_images
9
+ from matplotlib.patches import PathPatch, Rectangle
10
+ from matplotlib.path import Path as pltPath
9
11
  from mpl_toolkits.axes_grid1 import ImageGrid
10
12
  from scipy.ndimage import zoom
13
+ from skimage import measure
11
14
 
12
15
  from zea.display import frustum_convert_rtp2xyz
13
16
 
@@ -37,13 +40,13 @@ def plot_image_grid(
37
40
  interpolation: Optional[str] = "auto",
38
41
  titles: Optional[List[str]] = None,
39
42
  suptitle: Optional[str] = None,
40
- aspect: Optional[str] = None,
43
+ aspect: Optional[Union[str, int, float, List[Union[str, int, float]]]] = None,
41
44
  figsize: Optional[Tuple[float, float]] = None,
42
45
  fig: Optional[plt.Figure] = None,
43
46
  fig_contents: Optional[List] = None,
44
47
  remove_axis: Optional[bool] = True,
45
- background_color: Optional[str] = "black",
46
- text_color: Optional[str] = "white",
48
+ background_color: Optional[str] = None,
49
+ text_color: Optional[str] = None,
47
50
  **kwargs,
48
51
  ) -> Tuple[plt.Figure, List]:
49
52
  """Plot a batch of images in a grid.
@@ -65,16 +68,33 @@ def plot_image_grid(
65
68
  fig (figure, optional): Matplotlib figure object. Defaults to None. Can
66
69
  be used to plot on an existing figure.
67
70
  fig_contents (list, optional): List of matplotlib image objects. Defaults to None.
68
- remove_axis (bool, optional): Whether to remove axis. Defaults to True. If
69
- False, the axis will be removed and the spines will be hidden, which allows
70
- for the labels to still be visible if plotted after the fact.
71
- background_color (str, optional): Background color. Defaults to None.
71
+ remove_axis (bool, optional): Whether to remove axis. Defaults to True. If False, axes r
72
+ emain but spines are colored to background and ticks/labels are hidden,
73
+ allowing later label drawing to remain visible.
74
+ background_color (str, optional): Background color. Defaults to None. (Matplotlib default)
75
+ text_color (str, optional): Text color. Defaults to None. (Matplotlib default)
72
76
  **kwargs: arguments for plt.Figure.
73
77
 
74
78
  Returns:
75
79
  fig (figure): Matplotlib figure object
76
80
  fig_contents (list): List of matplotlib image objects.
77
81
 
82
+ Example:
83
+ .. doctest::
84
+
85
+ >>> from zea.visualize import plot_image_grid
86
+ >>> import numpy as np
87
+
88
+ >>> images = [np.random.rand(128, 128) for _ in range(6)]
89
+
90
+ >>> fig, fig_contents = plot_image_grid(
91
+ ... images,
92
+ ... ncols=3,
93
+ ... cmap="gray",
94
+ ... vmin=0,
95
+ ... vmax=1,
96
+ ... )
97
+
78
98
  """
79
99
  if ncols is None:
80
100
  factors = [i for i in range(1, len(images) + 1) if len(images) % i == 0]
@@ -86,15 +106,21 @@ def plot_image_grid(
86
106
  if figsize is None:
87
107
  figsize = (ncols * 2, nrows * 2 / aspect_ratio)
88
108
 
109
+ # get default colors for matplotlib
110
+ if background_color is None:
111
+ background_color = plt.rcParams["axes.facecolor"]
112
+ if text_color is None:
113
+ text_color = plt.rcParams["text.color"]
114
+
89
115
  # either supply both fig and fig_contents or neither
90
116
  assert (fig is None) == (fig_contents is None), "Supply both fig and fig_contents or neither"
91
117
 
92
118
  if fig is None:
93
119
  fig = plt.figure(figsize=figsize, **kwargs)
94
120
  axes = ImageGrid(fig, 111, nrows_ncols=(nrows, ncols), axes_pad=0.1)
95
- if background_color:
121
+ if background_color is not None:
96
122
  fig.patch.set_facecolor(background_color)
97
- fig.set_tight_layout({"pad": 0.1})
123
+ fig.set_layout_engine("tight", pad=0.1)
98
124
  else:
99
125
  axes = fig.axes[: len(images)]
100
126
 
@@ -104,7 +130,7 @@ def plot_image_grid(
104
130
  if cmap is None:
105
131
  cmap = [None] * len(images)
106
132
  assert len(cmap) == len(images), (
107
- f"cmap must be a string or list of strings of length {len(images)}"
133
+ f"cmap must be a string or list of strings of length {len(images)}, but got {cmap}"
108
134
  )
109
135
 
110
136
  if isinstance(vmin, (int, float)):
@@ -113,7 +139,7 @@ def plot_image_grid(
113
139
  if vmin is None:
114
140
  vmin = [None] * len(images)
115
141
  assert len(vmin) == len(images), (
116
- f"vmin must be a float or list of floats of length {len(images)}"
142
+ f"vmin must be a float or list of floats of length {len(images)}, but got {vmin}"
117
143
  )
118
144
 
119
145
  if isinstance(vmax, (int, float)):
@@ -122,7 +148,17 @@ def plot_image_grid(
122
148
  if vmax is None:
123
149
  vmax = [None] * len(images)
124
150
  assert len(vmax) == len(images), (
125
- f"vmax must be a float or list of floats of length {len(images)}"
151
+ f"vmax must be a float or list of floats of length {len(images)}, but got {vmax}"
152
+ )
153
+
154
+ if isinstance(aspect, (int, float, str)):
155
+ aspect = [aspect] * len(images)
156
+ else:
157
+ if aspect is None:
158
+ aspect = [None] * len(images)
159
+ assert len(aspect) == len(images), (
160
+ "aspect must be a float, int, str, or list of these "
161
+ f"of length {len(images)}, but got {aspect}"
126
162
  )
127
163
 
128
164
  if fig_contents is None:
@@ -135,7 +171,7 @@ def plot_image_grid(
135
171
  cmap=cmap[i],
136
172
  vmin=vmin[i],
137
173
  vmax=vmax[i],
138
- aspect=aspect,
174
+ aspect=aspect[i],
139
175
  interpolation=interpolation,
140
176
  )
141
177
  fig_contents[i] = im
@@ -164,7 +200,7 @@ def plot_image_grid(
164
200
  if suptitle:
165
201
  fig.suptitle(suptitle, color=text_color)
166
202
 
167
- fig.set_tight_layout(False)
203
+ fig.set_layout_engine("none")
168
204
  # use bbox_inches="tight" for proper tight layout when saving
169
205
  return fig, fig_contents
170
206
 
@@ -382,10 +418,10 @@ def plot_frustum_vertices(
382
418
  rho_plane=None,
383
419
  fig=None,
384
420
  ax=None,
385
- color_frustum="blue",
386
- phi_color="yellow",
387
- theta_color="green",
388
- rho_color="red",
421
+ frustum_style=None,
422
+ phi_style=None,
423
+ theta_style=None,
424
+ rho_style=None,
389
425
  ):
390
426
  """
391
427
  Plots the vertices of a frustum in spherical coordinates and highlights specified planes.
@@ -406,6 +442,18 @@ def plot_frustum_vertices(
406
442
  Defaults to None. Can be used to reuse the figure in a loop.
407
443
  ax (matplotlib.axes.Axes3DSubplot, optional): Axes object to plot on.
408
444
  Defaults to None. Can be used to reuse the axes in a loop.
445
+ frustum_style (dict, optional): Style dictionary for frustum edges. Can include
446
+ 'color', 'linestyle', 'linewidth', 'alpha', etc.
447
+ Defaults to {'color': 'blue', 'linestyle': '-', 'linewidth': 2}.
448
+ phi_style (dict, optional): Style dictionary for phi plane(s). Can include
449
+ 'color', 'linestyle', 'linewidth', 'alpha', etc.
450
+ Defaults to {'color': 'yellow', 'linestyle': '-'}.
451
+ theta_style (dict, optional): Style dictionary for theta plane(s). Can include
452
+ 'color', 'linestyle', 'linewidth', 'alpha', etc.
453
+ Defaults to {'color': 'green', 'linestyle': '--'}.
454
+ rho_style (dict, optional): Style dictionary for rho plane(s). Can include
455
+ 'color', 'linestyle', 'linewidth', 'alpha', etc.
456
+ Defaults to {'color': 'red', 'linestyle': '--'}.
409
457
 
410
458
  Returns:
411
459
  tuple: A tuple containing the figure and axes objects (fig, ax).
@@ -414,19 +462,22 @@ def plot_frustum_vertices(
414
462
  ValueError: If no plane is specified (phi_plane, theta_plane, or rho_plane).
415
463
 
416
464
  Example:
417
- >>> from zea.visualize import plot_frustum_vertices
418
- >>> rho_range = [0.1, 10] # in mm
419
- >>> theta_range = [-0.6, 0.6] # in rad
420
- >>> phi_range = [-0.6, 0.6] # in rad
421
- >>> fig, ax = plot_frustum_vertices(
422
- ... rho_range,
423
- ... theta_range=theta_range,
424
- ... phi_range=phi_range,
425
- ... phi_plane=0,
426
- ... phi_color="red",
427
- ... theta_plane=0.2,
428
- ... color_frustum="blue",
429
- ... )
465
+ .. doctest::
466
+
467
+ >>> from zea.visualize import plot_frustum_vertices
468
+ >>> rho_range = [0.1, 10] # in mm
469
+ >>> theta_range = [-0.6, 0.6] # in rad
470
+ >>> phi_range = [-0.6, 0.6] # in rad
471
+ >>> fig, ax = plot_frustum_vertices(
472
+ ... rho_range,
473
+ ... theta_range=theta_range,
474
+ ... phi_range=phi_range,
475
+ ... phi_plane=0,
476
+ ... phi_style={"color": "red", "linestyle": "--", "linewidth": 2},
477
+ ... theta_plane=0.2,
478
+ ... theta_style={"color": "green", "linestyle": ":", "alpha": 0.7},
479
+ ... frustum_style={"color": "blue", "linewidth": 1.5},
480
+ ... )
430
481
  """
431
482
  # Convert single values to lists
432
483
  phi_plane = [phi_plane] if isinstance(phi_plane, (int, float)) else phi_plane
@@ -437,6 +488,19 @@ def plot_frustum_vertices(
437
488
  if all(p is None for p in [phi_plane, theta_plane, rho_plane]):
438
489
  raise ValueError("At least one plane must be specified")
439
490
 
491
+ # Build style dictionaries with defaults
492
+ if frustum_style is None:
493
+ frustum_style = {"color": "blue", "linestyle": "-", "linewidth": 2}
494
+
495
+ if phi_style is None:
496
+ phi_style = {"color": "yellow", "linestyle": "-"}
497
+
498
+ if theta_style is None:
499
+ theta_style = {"color": "green", "linestyle": "--"}
500
+
501
+ if rho_style is None:
502
+ rho_style = {"color": "red", "linestyle": "--"}
503
+
440
504
  # Define edges of the frustum
441
505
  edges = []
442
506
 
@@ -479,14 +543,14 @@ def plot_frustum_vertices(
479
543
  if ax is None:
480
544
  ax = fig.add_subplot(111, projection="3d")
481
545
 
482
- def _plot_edges(edges, color, alpha=1.0, linestyle="-", **kwargs):
546
+ def _plot_edges(edges, **kwargs):
483
547
  for edge in edges:
484
548
  rho_pts, theta_pts, phi_pts = generate_edge_points(edge[0], edge[1], num_points)
485
549
  x, y, z = frustum_convert_rtp2xyz(rho_pts, theta_pts, phi_pts)
486
- ax.plot(x, y, -z, color=color, alpha=alpha, linestyle=linestyle, **kwargs)
550
+ ax.plot(x, y, -z, **kwargs)
487
551
 
488
552
  # Plot frustum edges
489
- _plot_edges(edges, color=color_frustum, alpha=1, lw=2)
553
+ _plot_edges(edges, **frustum_style)
490
554
 
491
555
  def get_plane_edges(plane_value, plane_type):
492
556
  """Generate edges for a specific plane type (phi, theta, or rho)"""
@@ -550,16 +614,16 @@ def plot_frustum_vertices(
550
614
 
551
615
  # Plot plane edges
552
616
  plane_configs = [
553
- (phi_plane, "phi", phi_color, "-"),
554
- (theta_plane, "theta", theta_color, "--"),
555
- (rho_plane, "rho", rho_color, "--"),
617
+ (phi_plane, "phi", phi_style),
618
+ (theta_plane, "theta", theta_style),
619
+ (rho_plane, "rho", rho_style),
556
620
  ]
557
621
 
558
- for planes, plane_type, color, line in plane_configs:
622
+ for planes, plane_type, style_dict in plane_configs:
559
623
  if planes is not None:
560
624
  for plane_value in planes:
561
625
  plane_edges = get_plane_edges(plane_value, plane_type)
562
- _plot_edges(plane_edges, color=color, linestyle=line)
626
+ _plot_edges(plane_edges, **style_dict)
563
627
 
564
628
  # Set axes properties
565
629
  ax.set_xlim([x_min, x_max])
@@ -640,3 +704,77 @@ def pad_or_crop_extent(image, extent, target_extent):
640
704
  constant_values=0,
641
705
  )
642
706
  return image_padded
707
+
708
+
709
+ def plot_rectangle_from_mask(ax, mask, **kwargs):
710
+ """Plots a rectangle box to axis from mask array.
711
+
712
+ Is a simplified version of plot_shape_from_mask for rectangles.
713
+ Useful for displaying bounding boxes on top of images.
714
+
715
+ Args:
716
+ ax (plt.ax): matplotlib axis
717
+ mask (ndarray): numpy array with rectangle non-zero
718
+ box defining the region of interest.
719
+ Kwargs:
720
+ edgecolor (str): color of the shape's edge
721
+ facecolor (str): color of the shape's face
722
+ linewidth (int): width of the shape's edge
723
+
724
+ Returns:
725
+ matplotlib.patches.Rectangle: the added rectangle patch, or None if mask is empty.
726
+ """
727
+ ys, xs = np.where(mask)
728
+ if ys.size == 0 or xs.size == 0:
729
+ return None
730
+ y1, y2 = ys.min(), ys.max()
731
+ x1, x2 = xs.min(), xs.max()
732
+ rect = Rectangle((x1, y1), x2 - x1 + 1, y2 - y1 + 1, **kwargs)
733
+ return ax.add_patch(rect)
734
+
735
+
736
+ def plot_shape_from_mask(ax, mask, **kwargs):
737
+ """Plots a shape to axis from mask array.
738
+
739
+ Is useful for displaying irregular shapes such as segmentations
740
+ on top of images.
741
+
742
+ Args:
743
+ ax (plt.ax): matplotlib axis
744
+ mask (ndarray): numpy array with non-zero
745
+ shape defining the region of interest.
746
+ Kwargs:
747
+ edgecolor (str): color of the shape's edge
748
+ facecolor (str): color of the shape's face
749
+ linewidth (int): width of the shape's edge
750
+
751
+ Returns:
752
+ list[matplotlib.patches.PathPatch]: list of matplotlib patch objects
753
+ added to the axis.
754
+
755
+ Example:
756
+
757
+ .. code-block:: python
758
+
759
+ import matplotlib.pyplot as plt
760
+ import numpy as np
761
+
762
+ from zea.visualize import plot_shape_from_mask
763
+
764
+ y, x = np.ogrid[-50:50, -50:50]
765
+ mask = x**2 + y**2 <= 30**2
766
+ fig, ax = plt.subplots()
767
+ ax.imshow(np.random.rand(100, 100), cmap="gray")
768
+ plot_shape_from_mask(ax, mask, edgecolor="red", alpha=0.5)
769
+ """
770
+ # Pad mask to ensure edge contours are found
771
+ padded_mask = np.pad(mask, pad_width=1, mode="constant", constant_values=0)
772
+ contours = measure.find_contours(padded_mask, 0.5)
773
+ patches = []
774
+ for contour in contours:
775
+ # Remove padding offset
776
+ contour -= 1
777
+ path = pltPath(contour[:, ::-1])
778
+ patch = PathPatch(path, **kwargs)
779
+ patches.append(ax.add_patch(patch))
780
+ return patches
@@ -1,7 +1,8 @@
1
- Metadata-Version: 2.3
1
+ Metadata-Version: 2.4
2
2
  Name: zea
3
- Version: 0.0.5
3
+ Version: 0.0.7
4
4
  Summary: A Toolbox for Cognitive Ultrasound Imaging. Provides a set of tools for processing of ultrasound data, all built in your favorite machine learning framework.
5
+ License-File: LICENSE
5
6
  Keywords: ultrasound,machine learning,beamforming
6
7
  Author: Tristan Stevens
7
8
  Author-email: t.s.w.stevens@tue.nl
@@ -21,6 +22,7 @@ Provides-Extra: display
21
22
  Provides-Extra: display-headless
22
23
  Provides-Extra: docs
23
24
  Provides-Extra: jax
25
+ Provides-Extra: models
24
26
  Provides-Extra: tests
25
27
  Requires-Dist: IPython ; extra == "dev"
26
28
  Requires-Dist: IPython ; extra == "docs"
@@ -40,7 +42,7 @@ Requires-Dist: ipywidgets ; extra == "dev"
40
42
  Requires-Dist: ipywidgets ; extra == "tests"
41
43
  Requires-Dist: jax ; extra == "backends"
42
44
  Requires-Dist: jax[cuda12-pip] (>=0.4.26) ; extra == "jax"
43
- Requires-Dist: keras (>=3.11)
45
+ Requires-Dist: keras (>=3.12)
44
46
  Requires-Dist: matplotlib (>=3.8)
45
47
  Requires-Dist: mock ; extra == "dev"
46
48
  Requires-Dist: mock ; extra == "docs"
@@ -49,6 +51,8 @@ Requires-Dist: myst-parser ; extra == "docs"
49
51
  Requires-Dist: nbsphinx ; extra == "dev"
50
52
  Requires-Dist: nbsphinx ; extra == "docs"
51
53
  Requires-Dist: numpy (>=1.24)
54
+ Requires-Dist: onnxruntime (>=1.15) ; extra == "dev"
55
+ Requires-Dist: onnxruntime (>=1.15) ; extra == "models"
52
56
  Requires-Dist: opencv-python (>=4) ; extra == "display"
53
57
  Requires-Dist: opencv-python-headless (>=4) ; extra == "dev"
54
58
  Requires-Dist: opencv-python-headless (>=4) ; extra == "display-headless"
@@ -78,6 +82,8 @@ Requires-Dist: sphinx-autodoc-typehints ; extra == "dev"
78
82
  Requires-Dist: sphinx-autodoc-typehints ; extra == "docs"
79
83
  Requires-Dist: sphinx-copybutton ; extra == "dev"
80
84
  Requires-Dist: sphinx-copybutton ; extra == "docs"
85
+ Requires-Dist: sphinx-reredirects ; extra == "dev"
86
+ Requires-Dist: sphinx-reredirects ; extra == "docs"
81
87
  Requires-Dist: sphinx_design ; extra == "dev"
82
88
  Requires-Dist: sphinx_design ; extra == "docs"
83
89
  Requires-Dist: sphinxcontrib-bibtex ; extra == "dev"
@@ -0,0 +1,114 @@
1
+ zea/__init__.py,sha256=ZJZo6amq5ABwN_fMAtlBG5lsR57TnrgI7nj-R0q8mZs,4119
2
+ zea/__main__.py,sha256=4OCFujuZ5ooIDMF7xxE4Esin9dfFlgX9PdOi9uB64y8,1569
3
+ zea/agent/__init__.py,sha256=0wnGArcPvSo_lDHN9-jE8d7IBP-bk3fuceoRu2VEVEw,976
4
+ zea/agent/gumbel.py,sha256=WbvSrM8meXtZmDLkyXDGUyRzjB4dWZmNO_qzloRxB_s,3770
5
+ zea/agent/masks.py,sha256=_vUhlzzw_g8_RN-k0mMqa_h4hfGHViJdkA24o6AYqYk,6666
6
+ zea/agent/selection.py,sha256=ut8I_TcfcoDRQnBBsxiVjNqjFp_PLNNHxgoE1FTP4rw,27072
7
+ zea/backend/__init__.py,sha256=XiBtxpXMYgcSBXjJ-uEWh7a92XqWs-4uDUh6NeKeUE4,6922
8
+ zea/backend/autograd.py,sha256=buWy19ctDFsAoktZaLm5qyLN9nQRicI91-V3ND-t3f4,6868
9
+ zea/backend/jax/__init__.py,sha256=AvO6tUDTMiyrRuY_M2KKwUpzzzqWIRlSh3NhI_lcw9w,1056
10
+ zea/backend/tensorflow/__init__.py,sha256=FQAMCrUgvHm4LCVfnP9sXGACQSMFx3nIarPve_MgxYM,422
11
+ zea/backend/tensorflow/dataloader.py,sha256=s0-2NF0pEofGw3W9AOtoN4s-Hj13gacjfDd7tQ9eXDY,14429
12
+ zea/backend/tensorflow/layers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
13
+ zea/backend/tensorflow/layers/apodization.py,sha256=Pi5GpkoMSwPq8_FL1fqkuGINmOD-sIHkHXEtF62VNSc,826
14
+ zea/backend/tensorflow/layers/utils.py,sha256=kiEH-6_Rq5dq0D7dkziUkhhqdOyf5O9POYZ-uXLHkNA,3446
15
+ zea/backend/tensorflow/losses.py,sha256=q_U1FbSNFU0T_FY9ojdSqGn-TOiSieB3U5YBuFSoVIU,2081
16
+ zea/backend/tensorflow/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
+ zea/backend/tensorflow/models/lista.py,sha256=S_UQcO8n3PVkVwSFYa_MOgJEnaF6iFQfEj4nvKvbpww,3088
18
+ zea/backend/tensorflow/scripts/convert-echonet-dynamic.py,sha256=qREJcTvJXMH0EJGvpcs-BqoroS-EE-F54UKnuXlpBSU,3878
19
+ zea/backend/tensorflow/scripts/convert-taesd.py,sha256=-i9XGi0ZPEKV88JQQxR0742qsrk3x7bNoW3myaht4S4,2396
20
+ zea/backend/tensorflow/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
21
+ zea/backend/tensorflow/utils/callbacks.py,sha256=4biWDzQiqgnmE8YWF9mlxLZGxrVMMs-cpgBZI7iD2oI,57
22
+ zea/backend/tensorflow/utils/utils.py,sha256=4uOLfbxko2xUsyVjw7bClTdLkif7-NYscIo7ljqON6U,1050
23
+ zea/backend/tf2jax.py,sha256=qld6VecFEVOpUI4wUqA8wj9xvpsIjH2o72TcQqOyxbY,384
24
+ zea/backend/torch/__init__.py,sha256=YMNTzqRqhPu7pjGPczupT3jo4SwjYpI8Ch97GI0OPDg,1119
25
+ zea/backend/torch/losses.py,sha256=7ITD_p630eyJzjgAT79XUNiff7XmW-naMGOUgKFnAAQ,2114
26
+ zea/beamform/__init__.py,sha256=rlRy-Og_KsbnU4Qm0NR8SP5ymePCwSr2aMW9jjOaeHI,1018
27
+ zea/beamform/beamformer.py,sha256=XKG8HDj0Arje3rVRBwd20cdD8s87BJNn3KGNJ4u0cP8,20653
28
+ zea/beamform/delays.py,sha256=ItD6_WavcWmXns4QJqo_oq674F5Q0s0mVVacfo_775U,5590
29
+ zea/beamform/lens_correction.py,sha256=eqsVaooyi_EFWd8F3LxdQX2bLxxF_L8eGVkROKl3rOA,7828
30
+ zea/beamform/pfield.py,sha256=2rJMV8EuGoDZk1ZVSjdkn7I_p3gQJWxlCGtM50qc1sA,14910
31
+ zea/beamform/phantoms.py,sha256=zow6j4mPXOJjSl31dLQbuDW8rH_qEV2dsfcy-TqkhkI,1108
32
+ zea/beamform/pixelgrid.py,sha256=XONJqgWC9XUkEL7iaphy0YBr6xLAyXz-yaTdPQju1r0,5432
33
+ zea/config.py,sha256=q0ADj83bpFt7kXq32tJFQT3Kpcvrf-O_RCzTxxk1yHw,19811
34
+ zea/data/__init__.py,sha256=DI0Z96aHdcAsNSQ4N4YQIiLBqid9qGkx-ZbZitPnow4,2040
35
+ zea/data/__main__.py,sha256=xEXj3m3gJ6MoV1f9WbDl3QVPMbDXedTj1J9WeT83NrI,909
36
+ zea/data/augmentations.py,sha256=R09_dVkhOFGHiiVFaTjP9pYcHCMtwri9Nz8wsM5mRPY,12686
37
+ zea/data/convert/__init__.py,sha256=xuPIB-Dd8voTTRoQr-Mb5KTbPpWzk46alCgKQ_EZqzY,244
38
+ zea/data/convert/camus.py,sha256=6eNDBlZYitrv8lIpulPxSpSCm_quepEo-W0Y3RVbk0w,9590
39
+ zea/data/convert/echonet.py,sha256=VB5z1bl2m2v1aEreSmzFUn6JTrNTs8MQNEGwOceLs3g,13776
40
+ zea/data/convert/echonetlvh/README.md,sha256=7YSeM-CBsN2x4gF8vTflFE0UwmW8-597-HfOk17l8FA,729
41
+ zea/data/convert/echonetlvh/convert_raw_to_usbmd.py,sha256=lZq6OMXeZWJf7WSIYSVIfAkSQ5wolx1xYYQq4qm5bkQ,18051
42
+ zea/data/convert/echonetlvh/precompute_crop.py,sha256=A-dSbGngEvL5QfAid3d9OoZRnxXMVt-QF7ivyBMDK-k,8302
43
+ zea/data/convert/images.py,sha256=8a2oHqAA_fLhFuNnqBsNCjKTdX5pADX-ntZ6BHUoZdQ,5229
44
+ zea/data/convert/matlab.py,sha256=cVFsQT-4sy5RVin1bRB9CGrlSqCnLZA5bLgAs9u5BhU,42258
45
+ zea/data/convert/picmus.py,sha256=1TK1vDWzfHmnFErtt0ad36TInIiy4fm3nMmfx83G5nw,6203
46
+ zea/data/data_format.py,sha256=hWy75tQl9JQ-DJYhv67nGxG3eoKKbSe2VSEbm5eTiFA,25718
47
+ zea/data/dataloader.py,sha256=ZAlWbZB6F43EtLvRcUzfeHVtMhYViJTvyaRb9CmpEFc,14865
48
+ zea/data/datasets.py,sha256=PauzRLASdicWvNzMIJ8N9SSrNZ9YA36Pn5eZeEr-iaw,24530
49
+ zea/data/file.py,sha256=-8h6vAzb0uqjoTs8iEFuiqjEyh_-yu1w02yVuobsQ5A,31141
50
+ zea/data/layers.py,sha256=W9GMkNTpb8BOzXJoa7w6xr4xD0bFb9rsJEcO8_vK3pk,6705
51
+ zea/data/preset_utils.py,sha256=mJ7YC7W9X91__V6Wk2xenORIqZ0reZQerbX3zgapBJM,4408
52
+ zea/data/utils.py,sha256=Y8eO7DznJFiq89SUQmDdiYetQ3aHjf72sC8ih9ooht4,2687
53
+ zea/datapaths.py,sha256=TqqALvtQRbbQEaIH7QEUaH0BEF_0GUKubuLCn8t90lA,20529
54
+ zea/display.py,sha256=5c31mwAcodA5YS79Sto1t4baij0QCVG6cG7ykJUwQZs,24423
55
+ zea/doppler.py,sha256=PG8-GhgTxo2eUjFQ2D6Ag74HD2SkJa6b5LUQjXCS8a8,2994
56
+ zea/interface.py,sha256=hd2mU7-WttfCCeGsri91WWrFjDoN1uVMCblbyG0bEuU,18097
57
+ zea/internal/_generate_keras_ops.py,sha256=7RwmavpsqOALr_Zsby9xtIbUcMacwU3mw7MLtrz4q9Y,3848
58
+ zea/internal/cache.py,sha256=EMKuy2WT7J84Bo-hi5DNKWLBXMAlfmTdgJQGadTqutc,8468
59
+ zea/internal/checks.py,sha256=Dj8kMY0BY5M170V7NmM9TENyiI7tb6wT9tG6jdrxy-0,10809
60
+ zea/internal/config/create.py,sha256=f8dy6YcAUZbROxwCvORI26ACMRO4Q7EL188KyTL8Bpk,5447
61
+ zea/internal/config/parameters.py,sha256=3YE8aBeiosxTuIT0RAEEMkJPmkykSyZZ7hbmmyGnsuc,6602
62
+ zea/internal/config/validation.py,sha256=uoDqE_Ev8hELGNaHF6vPQgisx5fwfjSvHUdss4IQ1-A,6479
63
+ zea/internal/core.py,sha256=c0GFwiPblzaXEe-uvKJlQTgeDaO84DYNRRHsMiMuPeI,11981
64
+ zea/internal/device.py,sha256=00Cjs28tXy_xx8fbCL8vNfeIVfwmPBFFd5dSPKGiJAE,16030
65
+ zea/internal/dummy_scan.py,sha256=QfSvHb44mQgQmh579wvD0lTn7NSBP-8jUwKPXk5Hf-I,10958
66
+ zea/internal/git_info.py,sha256=vEeN7cdppNIJPRkC69pUQqtAfTdwCN-tpfo702xpGzY,1040
67
+ zea/internal/notebooks.py,sha256=57qBEJMzLIfWndZslQ6NphJgU4Wlu_jL_XgDWft_xkY,1136
68
+ zea/internal/operators.py,sha256=UmZY7BQWQ2ll2Z01zzwnuJarzF44aEoJEPxT9cn7hrY,5995
69
+ zea/internal/parameters.py,sha256=VaDBUlAbXWbttXJEFmy_x544HiDenVfASvLKP0wCtSQ,21406
70
+ zea/internal/registry.py,sha256=DYwZsz5p4zheW1D3DEqKPS5unFbGF2YOvsm55ypTeaQ,7867
71
+ zea/internal/setup_zea.py,sha256=kQGyQ8lapi4P-soNZY2j3oRqNbfj8eFoyJEGLYndvbk,7805
72
+ zea/internal/utils.py,sha256=Sf9b7_qjNwvyKmdJi7IQ8LPdaF6sW3YhwWFHZwY9uS4,9445
73
+ zea/internal/viewer.py,sha256=nXTJwaWM9x8_R3X8YB9B5bNkZwwfVGKUu8pIr2HMweQ,15840
74
+ zea/io_lib.py,sha256=ywdRvMWoC-FwXlYHozxbOCrBKjuuiyNrxZM2MYws20w,20432
75
+ zea/keras_ops.py,sha256=wqrYKcX-KuekJUBMfQcuyL_RwJL4To4CJq3DamEKRZY,67874
76
+ zea/log.py,sha256=cpbkRQhHE0vDvHOvXS91RHjG22F9insgV48qVPNz66g,10593
77
+ zea/metrics.py,sha256=fp_Ducef_bc22SFSFWq-EPdBBj5txrD94WMuXgOH3HU,15579
78
+ zea/models/__init__.py,sha256=hkUC2TsCuom_8eXjTKXHbqloXSKDBMecGlQPjrVmrq0,4849
79
+ zea/models/base.py,sha256=OwV1VfcK0xLLOsfpOIxCEEwIoxJ1sUogZjljd1KolQY,8065
80
+ zea/models/carotid_segmenter.py,sha256=TfklE8UB_-Wl5VwjqmXc6fKle4PscGVB4IrgfOIvQfo,5799
81
+ zea/models/deeplabv3.py,sha256=Ew-JIaQgekumVZN--pIQ5XQR5xTj1qMbfLm_xQH9qYo,4967
82
+ zea/models/dense.py,sha256=EwrSawfSTi9oWE55Grr7jtwLXC9MNqEOO3su4oYHqfg,4067
83
+ zea/models/diffusion.py,sha256=9nz8OJ0qhDeRHi_qH_Tn_-X2glqcRPvFAauZ3GKNACI,37241
84
+ zea/models/echonet.py,sha256=7ZK0nKVz3dZh0aBn9LoGmaqkrFJ05SzLeNYYdOoO0_E,6690
85
+ zea/models/echonetlvh.py,sha256=WSR0MaZc2a2h0wzfyVdOwKGiA6C1CIHGo1Ok_lroHUE,11083
86
+ zea/models/generative.py,sha256=iujicyFDuCD7NEk_cZ8thlZ2Rl3Qa8LfkwPsZdWYpR0,2625
87
+ zea/models/gmm.py,sha256=6YYoiizsD7BtISOToEXkki6Cc8iXMkgmPH_rMFQKs3E,8324
88
+ zea/models/layers.py,sha256=hhtBLQgt6ZMKj60FXBNIpThI7gZZeEqkzBMsub_TNFM,1920
89
+ zea/models/lpips.py,sha256=TmzI0qU8BV22gpHD_ovCw6G33EF05JHemdReYq9FGCs,6590
90
+ zea/models/lv_segmentation.py,sha256=i81q2vX_gillfi6B5QxMFoBPS5tsuClMY4MX-9pVp_I,3425
91
+ zea/models/preset_utils.py,sha256=m9jY0Fwfcrg6VEMkfMqMcyJzTrM7Th-GKpUknSfZa3g,15425
92
+ zea/models/presets.py,sha256=cTQRoCBRRFUEFKKS1GGJGDNXRoydRYF9psifBEoO0Y0,4215
93
+ zea/models/regional_quality.py,sha256=ohlgGXCHwlluJgx2wBKMUDert71neXwJ1mzxdt0KyX4,4987
94
+ zea/models/taesd.py,sha256=lOej2B4pE8CHn8SMHVFO4gBkNdsYbB0QKmC18RxPiUg,8611
95
+ zea/models/unet.py,sha256=BiFgC2qfe75ZqzE-6IV7c2PXhXuj1IQXTRL0PiavEdo,6682
96
+ zea/models/utils.py,sha256=My6VY27S4udOn7xatIM22Qgn8jED1FmnA2yZw1mcuVw,2015
97
+ zea/ops.py,sha256=q_7sv04Yp7QDvK6QHvX6l5r4OjPf3WxjkplbSdbwy0U,116332
98
+ zea/probes.py,sha256=udA-YXwYhTAk7-PofS6chYQJ3Y4lmW-7f0O-Km5Bu5o,7767
99
+ zea/scan.py,sha256=XqFWJoUKEvbN44FxeWAmQqBwyV9JQIuP2Aw8gqpaTPc,29452
100
+ zea/simulator.py,sha256=Aqp76FMUd0hP-_W1GMgERshmi1HfNo2Uxrme1A4gNHg,11419
101
+ zea/tensor_ops.py,sha256=fLFjU5hjzsgMXUSmk8EJCANcITnE_rAvfFFLRY9cyJ8,60878
102
+ zea/tools/__init__.py,sha256=QunH0W09HdOLYq2rNyNJCajfZgarLjX-ymiHVwjR9Kg,259
103
+ zea/tools/fit_scan_cone.py,sha256=0T6PSmMVb8DmU9yLAc-nqZFd5lhTRMxYCvmDmF3Klx8,24672
104
+ zea/tools/hf.py,sha256=Y_HCnAVpwf_MoKX8Ra8oodBGEoJfYXMhSTRXYCek_kw,5478
105
+ zea/tools/selection_tool.py,sha256=cnX7QtdR6mCQWe2kPqnjUiDmOmfkuCHyT8KZBWCvcrk,29333
106
+ zea/tools/wndb.py,sha256=8XY056arnDKpVV7k-B5PrMa-RANur3ldPSR4GW3jgS4,666
107
+ zea/utils.py,sha256=mGnCxPMBhL9SC-jqq0zZgimtdrCLamF-H6SrSvB2vM4,10432
108
+ zea/visualize.py,sha256=RzhWOBA1FzWD2yjKHwr03aODwIfjTuHOSA7GUeQtOUA,28973
109
+ zea/zea_darkmode.mplstyle,sha256=wHTXkgy00tLEbRmr8GZULb5zIzU0MTMn9xC0Z3WT7Bo,42141
110
+ zea-0.0.7.dist-info/METADATA,sha256=asEBI1sQO3S2c8adT7dvvcS7MuexYcmzOXHWiHsJooo,6883
111
+ zea-0.0.7.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
112
+ zea-0.0.7.dist-info/entry_points.txt,sha256=hQcQYCHdMu2LRM1PGZuaGU5EwAjTGErC-QakgwZKZeo,41
113
+ zea-0.0.7.dist-info/licenses/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
114
+ zea-0.0.7.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: poetry-core 2.1.3
2
+ Generator: poetry-core 2.2.1
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
@@ -1,110 +0,0 @@
1
- zea/__init__.py,sha256=Fur5gTy71o142eTY924plqQwlsghVLeHea2-kae9SaA,2345
2
- zea/__main__.py,sha256=4OCFujuZ5ooIDMF7xxE4Esin9dfFlgX9PdOi9uB64y8,1569
3
- zea/agent/__init__.py,sha256=uJjMiPvvCXmUxC2mkSkh1Q9Ege0Vf7WazKX1_Ul80GY,924
4
- zea/agent/gumbel.py,sha256=WbvSrM8meXtZmDLkyXDGUyRzjB4dWZmNO_qzloRxB_s,3770
5
- zea/agent/masks.py,sha256=qdSGbTs9449hUxcX6gAl_s47mrs1FKI6U_T2KjS-iz8,6581
6
- zea/agent/selection.py,sha256=j9FejT28jRGnRIEL6F1YZYdl22G0XxKOkua9qhKavIg,19764
7
- zea/backend/__init__.py,sha256=9evPyuxJtIeleZlX_eAggJtxxKRofLQiD_ZV3yARg2Y,4227
8
- zea/backend/autograd.py,sha256=buWy19ctDFsAoktZaLm5qyLN9nQRicI91-V3ND-t3f4,6868
9
- zea/backend/jax/__init__.py,sha256=kU89ZZeVQOm9tdrlGSLLlkrJzhUNW0wOet5lnU5BMPU,2168
10
- zea/backend/tensorflow/__init__.py,sha256=sD7phu-iUwcZKSYVMYMJkEqOZm7TBHbiIE6oYiKV3Go,2027
11
- zea/backend/tensorflow/dataloader.py,sha256=yM25UPhoRBm46ePkIQ-QQZ_9gZfCaqhdC_Gzf57eLNE,14394
12
- zea/backend/tensorflow/layers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
13
- zea/backend/tensorflow/layers/apodization.py,sha256=Pi5GpkoMSwPq8_FL1fqkuGINmOD-sIHkHXEtF62VNSc,826
14
- zea/backend/tensorflow/layers/utils.py,sha256=kiEH-6_Rq5dq0D7dkziUkhhqdOyf5O9POYZ-uXLHkNA,3446
15
- zea/backend/tensorflow/losses.py,sha256=q_U1FbSNFU0T_FY9ojdSqGn-TOiSieB3U5YBuFSoVIU,2081
16
- zea/backend/tensorflow/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
- zea/backend/tensorflow/models/lista.py,sha256=S_UQcO8n3PVkVwSFYa_MOgJEnaF6iFQfEj4nvKvbpww,3088
18
- zea/backend/tensorflow/scripts/convert-echonet-dynamic.py,sha256=qREJcTvJXMH0EJGvpcs-BqoroS-EE-F54UKnuXlpBSU,3878
19
- zea/backend/tensorflow/scripts/convert-taesd.py,sha256=-i9XGi0ZPEKV88JQQxR0742qsrk3x7bNoW3myaht4S4,2396
20
- zea/backend/tensorflow/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
21
- zea/backend/tensorflow/utils/callbacks.py,sha256=4biWDzQiqgnmE8YWF9mlxLZGxrVMMs-cpgBZI7iD2oI,57
22
- zea/backend/tensorflow/utils/utils.py,sha256=4uOLfbxko2xUsyVjw7bClTdLkif7-NYscIo7ljqON6U,1050
23
- zea/backend/tf2jax.py,sha256=qld6VecFEVOpUI4wUqA8wj9xvpsIjH2o72TcQqOyxbY,384
24
- zea/backend/torch/__init__.py,sha256=i9RT8-oyxmiDy4US6wy2s7vGIk8UBi0RHpX47qi9qDU,2272
25
- zea/backend/torch/losses.py,sha256=7ITD_p630eyJzjgAT79XUNiff7XmW-naMGOUgKFnAAQ,2114
26
- zea/beamform/__init__.py,sha256=rlRy-Og_KsbnU4Qm0NR8SP5ymePCwSr2aMW9jjOaeHI,1018
27
- zea/beamform/beamformer.py,sha256=KLVNkQ6Af3De2FB0z0VNpLftc8SDw5SpR0oNPmQReSM,18388
28
- zea/beamform/delays.py,sha256=ItD6_WavcWmXns4QJqo_oq674F5Q0s0mVVacfo_775U,5590
29
- zea/beamform/lens_correction.py,sha256=nE9FLDH_gpDzPb8hxnGXp-syI8hAP7y4WK8c3aNDgbQ,7378
30
- zea/beamform/pfield.py,sha256=_W1j9xZwRzM4PtQi4HIUCDbLUUU7osGFT-Y4xqP9hNI,14615
31
- zea/beamform/phantoms.py,sha256=zow6j4mPXOJjSl31dLQbuDW8rH_qEV2dsfcy-TqkhkI,1108
32
- zea/beamform/pixelgrid.py,sha256=XONJqgWC9XUkEL7iaphy0YBr6xLAyXz-yaTdPQju1r0,5432
33
- zea/config.py,sha256=mhmTxD1ylyc6zl7yq834-BUiBpcqJ-sNVnJd38yinCs,19509
34
- zea/data/__init__.py,sha256=h2wKll096dKxTRrEKHnFmgURqp9lDHlqJM884HzmhSY,1757
35
- zea/data/__main__.py,sha256=xEXj3m3gJ6MoV1f9WbDl3QVPMbDXedTj1J9WeT83NrI,909
36
- zea/data/augmentations.py,sha256=R09_dVkhOFGHiiVFaTjP9pYcHCMtwri9Nz8wsM5mRPY,12686
37
- zea/data/convert/__init__.py,sha256=xuPIB-Dd8voTTRoQr-Mb5KTbPpWzk46alCgKQ_EZqzY,244
38
- zea/data/convert/camus.py,sha256=PgFN6b0AgHZRS0JjcsiOGOzoagG-sHvlmhDuNR6iNKo,9555
39
- zea/data/convert/echonet.py,sha256=5QgXkTyBDwdqXyZ3bL1pstPTHSKJJ2qRoSBUCLeTmu8,13768
40
- zea/data/convert/echonetlvh/README.md,sha256=7YSeM-CBsN2x4gF8vTflFE0UwmW8-597-HfOk17l8FA,729
41
- zea/data/convert/echonetlvh/convert_raw_to_usbmd.py,sha256=MQXfFam9-UcsKXZ5CUNS8c1m_p_gP-de1cI-cNr2qn8,18046
42
- zea/data/convert/echonetlvh/precompute_crop.py,sha256=A-dSbGngEvL5QfAid3d9OoZRnxXMVt-QF7ivyBMDK-k,8302
43
- zea/data/convert/images.py,sha256=8a2oHqAA_fLhFuNnqBsNCjKTdX5pADX-ntZ6BHUoZdQ,5229
44
- zea/data/convert/matlab.py,sha256=nep-n-CK7OoTQQytDZuMx3dTa7AngmYRodE55ZTCCvI,41992
45
- zea/data/convert/picmus.py,sha256=1TK1vDWzfHmnFErtt0ad36TInIiy4fm3nMmfx83G5nw,6203
46
- zea/data/data_format.py,sha256=n4OTQKl1newgvTamlPprAsRubAVt3bPeNYHJXNc89G0,25684
47
- zea/data/dataloader.py,sha256=ZAlWbZB6F43EtLvRcUzfeHVtMhYViJTvyaRb9CmpEFc,14865
48
- zea/data/datasets.py,sha256=XcNlJVmkfNo7TXp80y4Si_by75Ix2ULIU_iEiNEhl6Q,24492
49
- zea/data/file.py,sha256=DJHqYlVDNZtQWj0VvytrdGeZEnpDJqc2zZPWz3rF_7k,27152
50
- zea/data/layers.py,sha256=Tv_dEIX6DZPTVjVMYSPomz1wtkEMrAcX9u9gQkJPRrY,6737
51
- zea/data/preset_utils.py,sha256=mJ7YC7W9X91__V6Wk2xenORIqZ0reZQerbX3zgapBJM,4408
52
- zea/data/utils.py,sha256=Y8eO7DznJFiq89SUQmDdiYetQ3aHjf72sC8ih9ooht4,2687
53
- zea/datapaths.py,sha256=SzsgW4KuZ72aieUbKTUPBmErEPPNcthgI01ixrKX0RQ,20239
54
- zea/display.py,sha256=tIrPY2wcQFhdsijgydeNkZviZHkVZDtpz4lFAyPzRv0,24250
55
- zea/doppler.py,sha256=PG8-GhgTxo2eUjFQ2D6Ag74HD2SkJa6b5LUQjXCS8a8,2994
56
- zea/interface.py,sha256=2xa3wSNwVlESBa3hWqsJIypjnemioPUGJxEgwl4mDXY,18176
57
- zea/internal/_generate_keras_ops.py,sha256=0K64fBSDBirTGiwP_qPPT4gdrGwVvKLzPylbHzT-qus,3853
58
- zea/internal/cache.py,sha256=JHbWJ2vXz_NnXWHXrfSKAhcvi1_JMMeQnBzQIrSlYBo,10559
59
- zea/internal/checks.py,sha256=Dj8kMY0BY5M170V7NmM9TENyiI7tb6wT9tG6jdrxy-0,10809
60
- zea/internal/config/create.py,sha256=f8dy6YcAUZbROxwCvORI26ACMRO4Q7EL188KyTL8Bpk,5447
61
- zea/internal/config/parameters.py,sha256=3YE8aBeiosxTuIT0RAEEMkJPmkykSyZZ7hbmmyGnsuc,6602
62
- zea/internal/config/validation.py,sha256=vPGFWC-UVtNh8jqfQ4V8HTUIjfnOtsJrqcG2R2ae5hg,6522
63
- zea/internal/core.py,sha256=wJHqp3h_MCCkugTPpvmsxNIOOQ6_VAF7-skNUY-bvmc,9587
64
- zea/internal/device.py,sha256=YM-yuB2wu8hmILP84LfIjxmcLq9mI6FMI_iS8Lr04i0,15841
65
- zea/internal/git_info.py,sha256=vEeN7cdppNIJPRkC69pUQqtAfTdwCN-tpfo702xpGzY,1040
66
- zea/internal/notebooks.py,sha256=57qBEJMzLIfWndZslQ6NphJgU4Wlu_jL_XgDWft_xkY,1136
67
- zea/internal/operators.py,sha256=F4J5R6L_VBfq5JbYKtqXuMQqk1q-L-n3JaOakcX_fDg,2005
68
- zea/internal/parameters.py,sha256=kyHbEg0otKN-_kPFPIg4iaHSNBJ-TitFmhahR5DRhlk,19871
69
- zea/internal/registry.py,sha256=lQsJbYUz1S2eKzE-7shRYWUBulX2TjHTRN37evrYIGA,7884
70
- zea/internal/setup_zea.py,sha256=P8dmHk_0hwfukaf-DfPxeDofOH4Kj1s5YvUs8yeFqAQ,7800
71
- zea/internal/viewer.py,sha256=nXTJwaWM9x8_R3X8YB9B5bNkZwwfVGKUu8pIr2HMweQ,15840
72
- zea/io_lib.py,sha256=9yjiYQmoyaJ6IYo4SuNZ5ofX8DB67mbypvmKxd8iZqk,12506
73
- zea/keras_ops.py,sha256=QUN8sX3tNvyxXPcabiE2V41EJNFDIDBdOrwDscPL1aE,65461
74
- zea/log.py,sha256=UJIL91lHUgWc-vrlJWOn1PX60fX3TFQ5slIs-b5EWEQ,10540
75
- zea/metrics.py,sha256=22BonPRPs6sfpDqtSEQGC1icNhsSywBak4iaf_1cook,4894
76
- zea/models/__init__.py,sha256=xeyo23kLfXCEy92eev4qLVVA2oSVWsN1XXEMsuwrlBU,4325
77
- zea/models/base.py,sha256=_l1RlXIYS2V5py-en5llJpX1oU0IXK_hzLhfCYybzHg,7121
78
- zea/models/carotid_segmenter.py,sha256=qxv4xSSbwLQ3AWeP8xoVCFhpPLOqsN-4dNq1ECkG3FM,5401
79
- zea/models/deeplabv3.py,sha256=Ew-JIaQgekumVZN--pIQ5XQR5xTj1qMbfLm_xQH9qYo,4967
80
- zea/models/dense.py,sha256=EwrSawfSTi9oWE55Grr7jtwLXC9MNqEOO3su4oYHqfg,4067
81
- zea/models/diffusion.py,sha256=Itt6Os7LTtIXBosvqwy9nc2EoClkmIstFgKjALa5DQI,31908
82
- zea/models/echonet.py,sha256=toLw6QjpdROvGrm6VEuqHuxxKkiAWtX-__5YzrE-LJA,6346
83
- zea/models/echonetlvh.py,sha256=HlfgzIBg9v6-whTLV-j3g1mopFj4gP7H1AkB9uSI8Ow,10951
84
- zea/models/generative.py,sha256=iujicyFDuCD7NEk_cZ8thlZ2Rl3Qa8LfkwPsZdWYpR0,2625
85
- zea/models/gmm.py,sha256=6YYoiizsD7BtISOToEXkki6Cc8iXMkgmPH_rMFQKs3E,8324
86
- zea/models/layers.py,sha256=hhtBLQgt6ZMKj60FXBNIpThI7gZZeEqkzBMsub_TNFM,1920
87
- zea/models/lpips.py,sha256=ryJSg2_XIZyOyPP-fcEQKsz3JzlDl9ik4TZPipVbomw,6126
88
- zea/models/preset_utils.py,sha256=OEs13M92W3NH_lB5_dCvJSNqdW0-QQwKw87QMZg06O4,15396
89
- zea/models/presets.py,sha256=cwua5PBC2zT2J_uExcNzjuc_LT_uEhaOjA29e16M_Yw,3012
90
- zea/models/taesd.py,sha256=Vab5jywo4uxXPXMQ-8VdpOMhVwQsEc_PNztctDzFZfk,8403
91
- zea/models/unet.py,sha256=B_600WLn3jj_BuhDdRrj5I1XQIHylaQQN8ISq-vt7zM,6392
92
- zea/models/utils.py,sha256=My6VY27S4udOn7xatIM22Qgn8jED1FmnA2yZw1mcuVw,2015
93
- zea/ops.py,sha256=Pe2H8yQ8T8MrASxfaEPmKux5Eiv6-w7a3SkoJhEyDh0,109511
94
- zea/probes.py,sha256=991X4ilpMablekNxAHwBU6DoBIZHrmzoJgs2C6zfU0U,7632
95
- zea/scan.py,sha256=vtF60IgP6V2I5wfvT__ZngfFmhqtEGl5LlbCqSEATw0,27339
96
- zea/simulator.py,sha256=KziYNRNAwIyKNE4nzVp2cbNyLATaaUkF-Ity6O1fx20,11279
97
- zea/tensor_ops.py,sha256=5cphTpARxlpeAfvY-zcdm5KZec1QuzlpwVMqRwZLNdE,53434
98
- zea/tools/__init__.py,sha256=QunH0W09HdOLYq2rNyNJCajfZgarLjX-ymiHVwjR9Kg,259
99
- zea/tools/fit_scan_cone.py,sha256=0T6PSmMVb8DmU9yLAc-nqZFd5lhTRMxYCvmDmF3Klx8,24672
100
- zea/tools/hf.py,sha256=ibuTGaLitK1vOlQdZJuVmDBoUkYRrEfCctj3kiiOQGs,5477
101
- zea/tools/selection_tool.py,sha256=nEALcrHGLb4NzRRcN_bxYCwzVyHKNN6Y21Q9jsuPFI8,30514
102
- zea/tools/wndb.py,sha256=8XY056arnDKpVV7k-B5PrMa-RANur3ldPSR4GW3jgS4,666
103
- zea/utils.py,sha256=8gxZaojsC0D2S63gs6lN0ulcSJ1jry3AzOMFvBdl4H4,23351
104
- zea/visualize.py,sha256=4-bEHRYG3hUukmBkx7x4VBoa3oAJffO3HnnnzTfduDE,23905
105
- zea/zea_darkmode.mplstyle,sha256=wHTXkgy00tLEbRmr8GZULb5zIzU0MTMn9xC0Z3WT7Bo,42141
106
- zea-0.0.5.dist-info/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
107
- zea-0.0.5.dist-info/METADATA,sha256=Usg0MvMgewPYLPS0Illkx1WI6uNy1g_Pn0Vc7wUnA2Q,6626
108
- zea-0.0.5.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
109
- zea-0.0.5.dist-info/entry_points.txt,sha256=hQcQYCHdMu2LRM1PGZuaGU5EwAjTGErC-QakgwZKZeo,41
110
- zea-0.0.5.dist-info/RECORD,,