How predicted channels become objects

Description

A model’s decode is a list of these, not one: several decodings share one forward pass, so a second one costs seconds where a second training run costs an hour. evaluate() then returns a row per model and decoding.

Usage

decode_connected_components(minimum_area = NULL)

decode_nearest_seed(minimum_area = NULL)

decode_watershed(minimum_area = NULL)

decode_follow_flows(steps = NULL, step_size = NULL, minimum_area = NULL)

Arguments

minimum_area Drop an object smaller than this many pixels. Unset keeps everything, and that is the engine’s default on purpose: the right floor is a property of the data rather than of the method. A nucleus at 256x256 in the Data Science Bowl runs from 4 pixels up, so a floor picked here would silently delete the smallest real objects in one dataset while letting speckle through in another. It is applied after the objects are formed, so it removes answers rather than changing how they were reached.
steps For decode_follow_flows(), how many Euler steps each pixel takes. Measured as not mattering: one step scores 0.9914 against 0.9923 converged, a span below the 0.0013 two runs differ by, because the field is continuous within an object and diverges at a seam - so the gap between two objects opens on the first step rather than after many. Adjustable because that argument is about this data’s object sizes.
step_size For decode_follow_flows(), how far one step moves, in pixels, on a unit-length field. A cliff rather than a speed knob: 0.9923 at 1, 0.4715 at 2, 0.0303 at 10. A step longer than a pixel jumps over the sink it was converging on and lands in a neighbour’s basin.

Details

Each declares which separation it can read, and asking for one that cannot read the model’s signal is refused when the specification is built rather than at the end of a run. decode_connected_components() reads none of them - it ignores the separation signal entirely - which is exactly why it belongs in every model’s list: it is the row the signal’s own row has to be read against. Left unset, a model decodes with its own signal’s decoding plus that yardstick.

Value

A decoding block, to be passed inside a model’s decode list.

See Also

separations, instance_data()

Examples

[[1]]
[[1]]$name
[1] "nearest_seed"


[[2]]
[[2]]$name
[1] "connected_components"
decode_follow_flows(step_size = 0.5)
$name
[1] "follow_flows"

$step_size
[1] 0.5