import tensorflow as tf

    per_band_data = band_settings.per_band_sub_model_fn_with_band_name(
        per_band_model_fn,
        features,
        params=params,
        value_if_masked=params.get("value_if_masked", 0.0),
        soft_onehot=Nonlinearity[params.get("input_soft_onehot", "sigmoid").upper()]
    )
    return graph_typecheck.assert_shape(
        tf.stack(per_band_data, axis=4), [
            params["batch_size"],
            2 * params["window_size"],
            3,
            cutoff_data_for_window_size(params["window_size"]).embedding_size,
            band_settings.nbands,
        ]
    )
