brainstorming
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or planning anything new, in software or out of it (a talk, a business, a renovation).
training-utilitiesAssemble safe Segmentation Models training, evaluation, fine-tuning, preprocessing, mask-shape, non-RGB, and tiny smoke-test workflows.
Independent GitHub snapshot · Automated classification · Original documentation governs
Use this sub-skill when a task asks how to train, evaluate, fine-tune, smoke-test, or troubleshoot Keras/TensorFlow Keras workflows built with Segmentation Models (segmentation_models). The focus is the safe operating loop around an already chosen model architecture/backbone: data/mask conventions, preprocessing, compile/fit/evaluate/predict, encoder freeze/unfreeze, regularization, and tiny synthetic checks.
sm.get_preprocessing(BACKBONE), sm.Unet, sm.Linknet, sm.FPN, or sm.PSPNet.classes and output activation from binary, mutually exclusive multiclass, or overlapping multilabel masks.model-construction sub-skill.losses-metrics sub-skill.Set the framework before importing Segmentation Models in modern environments:
import os
os.environ.setdefault("SM_FRAMEWORK", "tf.keras")
import segmentation_models as sm
from tensorflow import keras
Choose a BACKBONE and create preprocess_input = sm.get_preprocessing(BACKBONE).
Prepare images as batches shaped (N, H, W, C) and masks as (N, H, W, classes). Apply backbone preprocessing to images only, never to mask channels.
Choose classes and final activation:
classes=1, activation="sigmoid";classes=len(CLASSES)+1, activation="softmax";classes=len(LABELS), activation="sigmoid".Build, compile, fit, evaluate, and predict with ordinary Keras APIs. Modern Keras accepts arrays, keras.utils.Sequence, and Python generators through model.fit(...); use fit_generator only for legacy code you are maintaining.
For fine-tuning, pass encoder_freeze=True at construction, train the decoder briefly, then call sm.utils.set_trainable(model, recompile=False) and explicitly recompile with a suitably small learning rate. Use recompile=True only in legacy Keras environments where the model still exposes the compile attributes that Segmentation Models expects.
If the user needs confidence that the runtime can train at all, run the bundled smoke script with synthetic arrays:
python scripts/tiny_training_smoke.py --mode binary --epochs 1 --run-predict
references/training-workflows.md — compile/fit/evaluate/predict and fine-tuning recipes.references/data-and-masks.md — image/mask shapes, class-channel choices, preprocessing, and non-RGB strategies.references/troubleshooting.md — common workflow failures and fixes.scripts/tiny_training_smoke.py — safe synthetic Unet training/evaluation/prediction smoke for binary, multiclass, and non-rgb modes. It uses encoder_weights=None and does not download data or pretrained weights.