pub(crate) struct Gemma4LayerWeights {
pub(crate) input_layernorm: Vec<f32>, pub(crate) post_attention_layernorm: Vec<f32>, pub(crate) pre_feedforward_layernorm: Vec<f32>, pub(crate) post_feedforward_layernorm: Vec<f32>, pub(crate) post_per_layer_input_norm: Vec<f32>, pub(crate) layer_scalar: f32,
pub(crate) per_layer_input_gate: Vec<f32>, pub(crate) per_layer_projection: Vec<f32>,
pub(crate) q_proj: Vec<f32>, pub(crate) o_proj: Vec<f32>, pub(crate) q_norm: Vec<f32>,
pub(crate) k_proj: Option<Vec<f32>>, pub(crate) v_proj: Option<Vec<f32>>, pub(crate) k_norm: Option<Vec<f32>>,
pub(crate) gate_proj: Vec<f32>, pub(crate) up_proj: Vec<f32>, pub(crate) down_proj: Vec<f32>, }
pub(crate) struct Gemma4Weights {
pub(crate) embed_tokens: Vec<f32>, pub(crate) embed_tokens_per_layer: Vec<f32>, pub(crate) norm: Vec<f32>, pub(crate) per_layer_model_projection: Vec<f32>, pub(crate) per_layer_projection_norm: Vec<f32>, pub(crate) layers: Vec<Gemma4LayerWeights>,
}