+
+ +
+

UNet Models

+

This section explains how to configure and use UNet models in DaCapo. Several configurations for different types of UNet architectures are demonstrated below.

+
+

Overview

+

UNet is a popular architecture for image segmentation tasks, particularly in biomedical imaging. DaCapo provides support for configuring various types of UNet models with customizable parameters.

+
+
+

Examples

+

Here are some examples of UNet configurations:

+
    +
  1. Upsample UNet

  2. +
+
from dacapo.experiments.architectures import CNNectomeUNetConfig
+from funlib.geometry import Coordinate
+
+architecture_config = CNNectomeUNetConfig(
+    name="upsample_unet",
+    input_shape=Coordinate(216, 216, 216),
+    eval_shape_increase=Coordinate(72, 72, 72),
+    fmaps_in=1,
+    num_fmaps=12,
+    fmaps_out=72,
+    fmap_inc_factor=6,
+    downsample_factors=[(2, 2, 2), (3, 3, 3), (3, 3, 3)],
+    constant_upsample=True,
+    upsample_factors=[(2, 2, 2)],
+)
+
+
+
    +
  1. Yoshi UNet

  2. +
+
yoshi_unet_config = CNNectomeUNetConfig(
+    name="yoshi-unet",
+    input_shape=Coordinate(188, 188, 188),
+    eval_shape_increase=Coordinate(72, 72, 72),
+    fmaps_in=1,
+    num_fmaps=12,
+    fmaps_out=72,
+    fmap_inc_factor=6,
+    downsample_factors=[(2, 2, 2), (2, 2, 2), (2, 2, 2)],
+    constant_upsample=True,
+    upsample_factors=[],
+)
+
+
+
    +
  1. Attention Upsample UNet

  2. +
+
attention_upsample_config = CNNectomeUNetConfig(
+    name="attention-upsample-unet",
+    input_shape=Coordinate(216, 216, 216),
+    eval_shape_increase=Coordinate(72, 72, 72),
+    fmaps_in=1,
+    num_fmaps=12,
+    fmaps_out=72,
+    fmap_inc_factor=6,
+    downsample_factors=[(2, 2, 2), (3, 3, 3), (3, 3, 3)],
+    constant_upsample=True,
+    upsample_factors=[(2, 2, 2)],
+    use_attention=True,
+)
+
+
+
    +
  1. 2D UNet

  2. +
+
architecture_config = CNNectomeUNetConfig(
+    name="2d_unet",
+    input_shape=(2, 132, 132),
+    eval_shape_increase=(8, 32, 32),
+    fmaps_in=2,
+    num_fmaps=8,
+    fmaps_out=8,
+    fmap_inc_factor=2,
+    downsample_factors=[(1, 4, 4), (1, 4, 4)],
+    kernel_size_down=[[(1, 3, 3)] * 2] * 3,
+    kernel_size_up=[[(1, 3, 3)] * 2] * 2,
+    constant_upsample=True,
+    padding="valid",
+)
+
+
+
    +
  1. UNet with Batch Normalization

  2. +
+
architecture_config = CNNectomeUNetConfig(
+    name="unet_norm",
+    input_shape=Coordinate(216, 216, 216),
+    eval_shape_increase=Coordinate(72, 72, 72),
+    fmaps_in=1,
+    num_fmaps=2,
+    fmaps_out=2,
+    fmap_inc_factor=2,
+    downsample_factors=[(2, 2, 2), (3, 3, 3), (3, 3, 3)],
+    constant_upsample=True,
+    upsample_factors=[],
+    batch_norm=False,
+)
+
+
+
+
+

Configuration Parameters

+
    +
  • name: A unique identifier for the configuration.

  • +
  • input_shape: The shape of the input data.

  • +
  • eval_shape_increase: Increase in shape during evaluation.

  • +
  • fmaps_in: Number of input feature maps.

  • +
  • num_fmaps: Number of feature maps in the first layer.

  • +
  • fmaps_out: Number of output feature maps.

  • +
  • fmap_inc_factor: Factor by which feature maps increase in each layer.

  • +
  • downsample_factors: Factors by which the input is downsampled at each layer.

  • +
  • upsample_factors: Factors by which the input is upsampled at each layer.

  • +
  • constant_upsample: Whether to use constant upsampling.

  • +
  • use_attention: Whether to use attention mechanisms.

  • +
  • batch_norm: Whether to use batch normalization.

  • +
  • padding: Padding mode for convolutional layers.

  • +
+

This page should serve as a reference for configuring UNet models in DaCapo. Adjust the parameters as per your dataset and task requirements.

+
+
+ + +
+