Skip to content

Latest commit

 

History

History
2378 lines (2100 loc) · 127 KB

File metadata and controls

2378 lines (2100 loc) · 127 KB

some space to sink 2u - world model - yeet - fork - trudat - yoyo geluigi - holy moley - more - fork

System.put_env("XLA_BUILD", "true")

Mix.install([
  {:nx, "~> 0.11.0"},
  {:exla, "~> 0.11.0"},
  {:jason, "~> 1.4"}
])

System.put_env("HSA_OVERRIDE_GFX_VERSION", "11.0.0")
System.put_env("XLA_TARGET", "rocm")

System.put_env("TF_ROCM_FUSION_ENABLE", "0")

System.put_env("XLA_FLAGS", "--xla_gpu_autotune_level=0 --xla_gpu_enable_reassociation_for_converted_ar=false --xla_gpu_graph_enable_concurrent_region=false")

System.put_env("ROCM_DISABLE_CU_MEMSET", "1")

Application.put_env(:exla, :clients,
  rocm: [
    platform: :rocm,
    memory_fraction: 0.75,
    preallocate: false,
    num_replicas: 1
  ]
)

Application.put_env(:exla, :default_client, :rocm)

gpu = {EXLA.Backend, client: :rocm}
Nx.global_default_backend(gpu)
Nx.Defn.default_options(compiler: EXLA)

platforms = EXLA.Client.get_supported_platforms()
if platforms[:rocm] do
  IO.puts("gpu found")
else
  IO.puts("gpu missing")
end

Helpers

defmodule MOE.Tree do
  @moduledoc """
  Recursively maps a function over nested tuples of tensors.
  """
  
  def map(tuple, func) when is_tuple(tuple) do
    tuple
    |> Tuple.to_list()
    |> Enum.map(&map(&1, func))
    |> List.to_tuple()
  end

  # The base case: When it hits a tensor (or a compile-time Expr), apply the function
  def map(tensor, func) do
    func.(tensor)
  end
end
{:module, MOE.Tree, <<70, 79, 82, 49, 0, 0, 8, ...>>, {:map, 2}}
defmodule MOE.CurriculumStreamer do
  def build_infinite_stream(directory_path, batch_size) do
    target_shards = Path.wildcard(Path.join(directory_path, "*.bin"))

    if length(target_shards) == 0 do
      raise "CRITICAL: No .bin shards found in directory: #{directory_path}"
    end

    Stream.iterate(1, &(&1 + 1))
    |> Stream.flat_map(fn epoch ->
      :rand.seed(:exsss, {epoch, epoch, epoch})
      shuffled_shards = Enum.shuffle(target_shards)
      IO.puts("\n🔄 Epoch #{epoch} Started | Shuffling #{length(target_shards)} shards...")
      Stream.flat_map(shuffled_shards, fn path ->
        tensor = File.read!(path) |> :erlang.binary_to_term()
          
        total_seqs = Nx.axis_size(tensor, 0)
        num_batches = div(total_seqs, batch_size)

        # 1. Generate all the slice indices
        0..(num_batches - 1)
        # 2. Slice the tensor into actual batch tensors
        |> Enum.map(fn i ->
          Nx.slice_along_axis(tensor, i * batch_size, batch_size, axis: 0)
        end)
        # 3. Shuffle the list of batches
        |> Enum.shuffle()
        end) #|> Enum.shuffle() # shuffle it all together now
    end)
  end
end
{:module, MOE.CurriculumStreamer, <<70, 79, 82, 49, 0, 0, 17, ...>>, {:build_infinite_stream, 2}}
defmodule MOE.SparseSinkGD do
  import Nx.Defn

  @doc """
  Applies Sinkhorn Gradient Scaling strictly to active (non-zero) gradients.
  """
  defn normalize_sparse_grad(grad) do
    eps = 1.0e-9
    # 1. Identify which characters actually appeared in this batch
    raw_row_norms = Nx.pow(grad, 2) |> Nx.sum(axes: [-1], keep_axes: true) |> Nx.sqrt()
    active_mask = Nx.greater(raw_row_norms, eps)
    
    # 2. Sinkhorn Alternating Loop
    result = while {i = 0, g = grad, am = active_mask}, Nx.less(i, 5) do
      # --- Row Normalization ---
      row_norms = g |> Nx.pow(2) |> Nx.sum(axes: [-1], keep_axes: true) |> Nx.sqrt()
      safe_row_norms = Nx.select(am, row_norms, 1.0)
      g_row = Nx.divide(g, safe_row_norms)
      
      # --- Column Normalization ---
      col_norms = g_row |> Nx.pow(2) |> Nx.sum(axes: [0], keep_axes: true) |> Nx.sqrt()
      safe_col_norms = Nx.select(Nx.greater(col_norms, eps), col_norms, 1.0)
      g_col = Nx.divide(g_row, safe_col_norms)
      
      {i + 1, g_col, am}
    end
    
    elem(result, 1)
  end

  defn step(embed_matrix, grad, lr) do
    # 1. Scale the raw sparse gradient to preserve boolean mask logic
    scaled_grad = normalize_sparse_grad(grad)
    
    # 2. Apply the pure gradient descent subtraction
    new_embeds = Nx.subtract(embed_matrix, Nx.multiply(scaled_grad, lr))
    
    new_embeds
  end

  defn normalize_sparse_grad_3d(grad) do
    eps = 1.0e-9
    # Active mask shape: {128, 1, 1} — one per character slice
    raw_norms =
      Nx.pow(grad, 2)
      |> Nx.sum(axes: [-2, -1], keep_axes: true)
      |> Nx.sqrt()
    active_mask = Nx.greater(raw_norms, eps)
  
    # Sinkhorn only on axes -2 and -1 — each slice is independent
    result =
      while {i = 0, g = grad, am = active_mask}, Nx.less(i, 5) do
        # Row norm within each slice
        row_norms = g |> Nx.pow(2) |> Nx.sum(axes: [-1], keep_axes: true) |> Nx.sqrt()
        safe_rows = Nx.select(Nx.broadcast(am, Nx.shape(row_norms)), row_norms, 1.0)
        g_r = Nx.divide(g, safe_rows)
  
        # Column norm within each slice
        col_norms = g_r |> Nx.pow(2) |> Nx.sum(axes: [-2], keep_axes: true) |> Nx.sqrt()
        safe_cols = Nx.select(Nx.broadcast(am, Nx.shape(col_norms)), col_norms, 1.0)
        g_c = Nx.divide(g_r, safe_cols)
  
        {i + 1, g_c, am}
      end
    elem(result, 1)
  end

  defn step_3d(embed_matrix, grad, lr) do
    scaled_grad = normalize_sparse_grad_3d(grad)
    Nx.subtract(embed_matrix, Nx.multiply(scaled_grad, lr))
  end
end
{:module, MOE.SparseSinkGD, <<70, 79, 82, 49, 0, 0, 29, ...>>, true}
defmodule MOE.StatelessMuon do
  import Nx.Defn

  defn newton_schulz_3d(g) do
    # g: {128, 128, 128} — one matrix per character
    # Per-slice Frobenius norm: {128, 1, 1}
    frobenius_norm =
      g
      |> Nx.pow(2)
      |> Nx.sum(axes: [-2, -1], keep_axes: true)
      |> Nx.sqrt()

    safe_norm = Nx.select(Nx.greater(frobenius_norm, 1.0e-8), frobenius_norm, 1.0)
    x = g / safe_norm

    {final_x, _} =
      while {curr_x = x, i = 0}, Nx.less(i, 5) do
        # Batched matmul: transpose each slice on its last two axes
        curr_x_t = Nx.transpose(curr_x, axes: [0, 2, 1])

        # batch over axis 0, contract axis 2 of curr_x_t with axis 1 of curr_x
        x_t_x = Nx.dot(curr_x_t, [2], [0], curr_x, [1], [0])  # {128, 128, 128}

        # batch over axis 0, contract axis 2 of curr_x with axis 1 of x_t_x
        cx_xtx = Nx.dot(curr_x, [2], [0], x_t_x, [1], [0])     # {128, 128, 128}

        next_x = 1.5 * curr_x - 0.5 * cx_xtx
        {next_x, i + 1}
      end

    final_x
  end

  defn step_3d(emb, grad, lr) do
    ns_grad = newton_schulz_3d(grad)
    update = Nx.multiply(lr, ns_grad)
    Nx.subtract(emb, update)
  end

  defn step_decay_3d(emb, grad, lr, wd \\ 1.0e-4) do
    ns_grad = newton_schulz_3d(grad)
    update = Nx.multiply(lr, ns_grad)
    emb_decayed = Nx.multiply(emb, Nx.subtract(1.0, Nx.multiply(lr, wd)))
    Nx.subtract(emb_decayed, update)
  end

  @doc """
  Applies Sinkhorn Gradient Scaling strictly to active (non-zero) gradients.
  """
  defn normalize_sparse_grad(grad) do
    eps = 1.0e-9
    # 1. Identify which characters actually appeared in this batch
    raw_row_norms = Nx.pow(grad, 2) |> Nx.sum(axes: [-1], keep_axes: true) |> Nx.sqrt()
    active_mask = Nx.greater(raw_row_norms, eps)
    
    # 2. Sinkhorn Alternating Loop
    result = while {i = 0, g = grad, am = active_mask}, Nx.less(i, 6) do
      # --- Row Normalization ---
      row_norms = g |> Nx.pow(2) |> Nx.sum(axes: [-1], keep_axes: true) |> Nx.sqrt()
      safe_row_norms = Nx.select(am, row_norms, 1.0)
      g_row = Nx.divide(g, safe_row_norms)
      
      # --- Column Normalization ---
      col_norms = g_row |> Nx.pow(2) |> Nx.sum(axes: [0], keep_axes: true) |> Nx.sqrt()
      safe_col_norms = Nx.select(Nx.greater(col_norms, eps), col_norms, 1.0)
      g_col = Nx.divide(g_row, safe_col_norms)
      
      {i + 1, g_col, am}
    end
    
    elem(result, 1)
  end

  defn step(embed_matrix, grad, lr) do
    # 1. Scale the raw sparse gradient to preserve boolean mask logic
    scaled_grad = normalize_sparse_grad(grad)
    
    # 2. Apply the pure gradient descent subtraction
    new_embeds = Nx.subtract(embed_matrix, Nx.multiply(scaled_grad, lr))
    
    new_embeds
  end
end
{:module, MOE.StatelessMuon, <<70, 79, 82, 49, 0, 0, 35, ...>>, true}

SSM

defmodule MOE.SSM do
  import Nx.Defn

  defn rms_norm(x, epsilon \\ 1.0e-6) do
    variance = Nx.mean(Nx.pow(x, 2), axes: [-1], keep_axes: true)
    x * Nx.rsqrt(variance + epsilon)
  end

  defn layer_norm(x, gamma, beta, epsilon \\ 1.0e-6) do
    norm = rms_norm(x, epsilon)
    scaled = norm * gamma
    scaled + beta
  end

  defn gelu(x) do
    cdf = Nx.multiply(
      0.7978845608,
      Nx.add(x, Nx.multiply(0.044715, Nx.pow(x, 3)))
    )
    Nx.multiply(Nx.multiply(0.5, x), Nx.add(1.0, Nx.tanh(cdf)))
  end

  defn softmax(t) do
    max_val = Nx.reduce_max(t, axes: [-1], keep_axes: true)
    safe_t = Nx.subtract(t, max_val)
    exps = Nx.exp(safe_t)
    sum_exps = Nx.sum(exps, axes: [-1], keep_axes: true)
    Nx.divide(exps, Nx.add(sum_exps, 1.0e-8))
  end

  defn feed_forward_layer(x, um, dm, bi, sc, ga, be) do
    up = Nx.dot(x, um) # up projection
    act = gelu(up) # gelu activation, tanh also works similarly well
    scaled = Nx.multiply(act, sc) # scale projection
    biased = Nx.add(scaled, bi) # add bias to projection
    out = Nx.dot(biased, dm) # down projection
    layer_norm(out, ga, be) # rms norm with scaler and bias
  end

  defn apply_xsa(x, y) do # exclusive 'space' attention
    y_norm_sq = Nx.add(Nx.sum(Nx.pow(y, 2), axes: [-1], keep_axes: true), 1.0e-6)
    y_unit = Nx.divide(y, Nx.sqrt(y_norm_sq))
    y_ov = Nx.sum(Nx.multiply(x, y_unit), axes: [-1], keep_axes: true)
    Nx.subtract(x, Nx.multiply(y_ov, y_unit))
  end

  defn sparse_attention(q, v) do
    k = Nx.transpose(v, axes: [0, 2, 1])
    r = Nx.axis_size(v, 2)
    qu = Nx.new_axis(q, 1)
    score = Nx.dot(qu, [2], [0], k, [1], [0])
    scaled_score = Nx.divide(score, Nx.sqrt(r))
    soft_score = softmax(scaled_score)
    at = Nx.dot(soft_score, [2], [0], v, [1], [0]) |> Nx.squeeze(axes: [1])
    apply_xsa(at, q)
  end

  defn attention_to_selected(q, v, routing_weights) do
    scores = Nx.dot(q, [1, 2], [0], v, [2, 3], [0])
    combined = softmax(scores + routing_weights) 
    out = Nx.dot(combined, [1], [0], v, [1], [0])
    apply_xsa(out, q)
  end

  defn moe_select(route, emb, key) do
    scores = Nx.dot(route, Nx.transpose(key))
    {top_scores, top_indices} = Nx.top_k(scores, k: 8)
    routing_weights = softmax(top_scores)
    selected = Nx.take(emb, top_indices) 
    {selected, routing_weights}
  end
  
  defn forward_step(x_t, h_prev, pr_prev, z_t, p) do
    {c1, c2, cb, cq, cg, ce, qu, emb} = p
    # get embedding for current character
    em = Nx.take(emb, x_t)
    # get summary of embeddings and vector for current character
    emn = Nx.mean(emb, axes: [-1])
    u_t = Nx.take(emn, x_t)
    # scale hidden states
    h_sc = Nx.dot(h_prev, qu) |> Nx.sigmoid()
    hp_sc = Nx.multiply(h_prev, h_sc)
    u_x = sparse_attention(u_t, em) |> Nx.add(u_t)
    # select related embeddings to attend h new base to
    {ema, rw} = moe_select(u_x, emb, emn)
    # mixture of embeddings attention
    em_at = attention_to_selected(em, ema, rw)
    em_up = Nx.add(em_at, em)
    # process main hidden state update
    c_term = feed_forward_layer(em_up, c1, c2, cb, cq, cg, ce) |> Nx.add(em)
    # final h new update
    h_new = Nx.add(hp_sc, c_term) |> rms_norm()
    # final predition attention to moe result
    c_at = sparse_attention(u_x, h_new)
    # remove 'oldest' recursive prediction
    pr_sl = Nx.slice_along_axis(pr_prev, 1, 3, axis: 1)
    # add 'zero-ed' slot for t_4 pred
    pr_up = Nx.concatenate([pr_sl, z_t], axis: 1)
    # final context combination for prediction update
    l_up = Nx.add(c_at, u_t) |> Nx.new_axis(1)
    pr_new = Nx.add(pr_up, l_up)
    # slice to get individual predictions 'rotary recursive prediction'
    l1 = Nx.take(pr_up, 0, axis: 1)
    l2 = Nx.take(pr_up, 1, axis: 1)
    l3 = Nx.take(pr_up, 2, axis: 1)
    {l1, l2, l3, h_new, pr_new}
  end
end
{:module, MOE.SSM, <<70, 79, 82, 49, 0, 0, 56, ...>>, true}
defmodule MOE.Optimizer do
  import Nx.Defn

  defn update(params, grads, step, lr) do
    {c1, c2, cb, cq, cg, ce, qu, emb}  = params   
    {gc1, gc2, gcb, gcq, gcg, gce, gqu, gemb}  = grads
    
    new_step = Nx.add(step, 1)

    # optimizer update step
    emb_new = MOE.StatelessMuon.step_3d(emb, gemb, lr)

    c1_new = MOE.StatelessMuon.step(c1, gc1, lr)
    c2_new = MOE.StatelessMuon.step(c2, gc2, lr)
    cb_new = MOE.StatelessMuon.step(cb, gcb, lr)
    cq_new = MOE.StatelessMuon.step(cq, gcq, lr)
    ce_new = MOE.StatelessMuon.step(ce, gce, lr)
    cg_new = MOE.StatelessMuon.step(cg, gcg, lr)

    qu_new = MOE.StatelessMuon.step(qu, gqu, lr)
    
    new_params = {c1_new, c2_new, cb_new, cq_new, cg_new, ce_new, qu_new, emb_new}

    {new_params, new_step}
  end
end
{:module, MOE.Optimizer, <<70, 79, 82, 49, 0, 0, 15, ...>>, true}
defmodule MOE.Parameter do
  import Nx.Defn

  @vocab 128
  @dim 512

  defn init(k1) do
    std_voc = Nx.divide(1.0, Nx.sqrt(Nx.tensor(@vocab, type: :f32)))
    std_dim = Nx.divide(1.0, Nx.sqrt(Nx.tensor(@dim, type: :f32)))

    {c1, k2} = Nx.Random.normal(k1, 0.0, std_voc, shape: {@vocab, @dim})
    {c2, k3} = Nx.Random.normal(k2, 0.0, std_dim, shape: {@dim, @vocab})
    {emb, k4} = Nx.Random.normal(k3, 0.0, std_voc, shape: {@vocab, @vocab, @vocab})
    {qu, k5} = Nx.Random.normal(k4, 0.0, std_voc, shape: {@vocab, @vocab})

    # projection bias vectors
    cb = Nx.broadcast(0.0, {@dim}) |> Nx.as_type(:f32)
    # projection scaling vectors
    cq = Nx.broadcast(1.0, {@dim}) |> Nx.as_type(:f32)
    # rms norm beta and gamma vectors
    ce = Nx.broadcast(0.0, {@vocab}) |> Nx.as_type(:f32)
    cg = Nx.broadcast(1.0, {@vocab}) |> Nx.as_type(:f32)

    trainable_params = {c1, c2, cb, cq, cg, ce, qu, emb} 
    
    {trainable_params, k5}
  end
end
{:module, MOE.Parameter, <<70, 79, 82, 49, 0, 0, 15, ...>>, true}

BLiMP

defmodule MOE.Phase2_Eval do
  import Nx.Defn

  defn step_cross_entropy(logits, targets) do
    vocab_size = Nx.axis_size(logits, -1)
    one_hot = Nx.equal(Nx.iota({vocab_size}), Nx.new_axis(targets, -1))
    
    max_logits = Nx.reduce_max(logits, axes: [-1], keep_axes: true)
    safe_logits = Nx.subtract(logits, max_logits)
    log_probs = Nx.subtract(safe_logits, Nx.log(Nx.sum(Nx.exp(safe_logits), axes: [-1], keep_axes: true)))
    
    Nx.negate(Nx.sum(Nx.multiply(one_hot, log_probs), axes: [-1]))
  end

  defn compute_sentence_loss(input_tokens, target_tokens, trainable) do
    seq_len = Nx.axis_size(input_tokens, 1) -1
    batch_size = Nx.axis_size(input_tokens, 0)
      
    # Explicitly initialize the batch-sized accumulators
    zero_batch = Nx.broadcast(0.0, {batch_size})

    h_start = Nx.broadcast(0.0, {batch_size, 128, 128}) |> Nx.as_type(:f32)
    pr_start = Nx.broadcast(0.0, {batch_size, 4, 128}) |> Nx.as_type(:f32)
    z_t = Nx.broadcast(0.0, {batch_size, 1, 128}) |> Nx.as_type(:f32)

    result =
      while {i = 0, 
             total_loss = zero_batch, 
             valid_tokens = zero_batch,
             h = h_start,
             pr = pr_start,
             zt = z_t,
             inf = input_tokens,
             tgf = target_tokens,
             tr = trainable},
            Nx.less(i, seq_len) do
  
        # 1. Grab the single character context and target
        x_t = inf[[.., i]]
        t_t = tgf[[.., i]]
        
        # 2. Forward pass through the reservoir
        {logits, _, _, h_new, pr_new} = MOE.SSM.forward_step(x_t, h, pr, zt, tr)
        
        # 3. Calculate 1-step prediction loss
        step_loss = step_cross_entropy(logits, t_t)
  
        # 4. MASK: 1.0 if valid text, 0.0 if ASCII 1 (SOH / Padding)
        mask = Nx.not_equal(t_t, 1) |> Nx.as_type(:f32)
        masked_loss = Nx.multiply(step_loss, mask)

        {i + 1, 
         Nx.add(total_loss, masked_loss), 
         Nx.add(valid_tokens, mask),
         h_new, pr_new, zt, inf, tgf, tr}
      end
  
    {_, acc_loss, val_tokens, _, _, _, _, _, _} = result

    total_loss = Nx.divide(acc_loss, Nx.add(val_tokens, 1.0e-8))

    total_loss
  end
end
{:module, MOE.Phase2_Eval, <<70, 79, 82, 49, 0, 0, 25, ...>>, true}
gpu = {EXLA.Backend, client: :rocm}
checkpoint_path = "v67_MOE_2048sq_yolo_smskink2_checkpoint_step_1200.bin"
%{trainable: t_p} = File.read!(checkpoint_path) |> :erlang.binary_to_term()
trainable_gpu = MOE.Tree.map(t_p, &Nx.backend_copy(&1, gpu))

run_blimp = fn path ->
  pairs =
    File.read!(path)
    |> String.split("\n", trim: true)
    |> Enum.map(&Jason.decode!/1)

  total_pairs = length(pairs)
  # 50 for supplimental
  pairs_per_batch = 100 

  {passes, total_loss_diff} =
    pairs
    |> Enum.chunk_every(pairs_per_batch)
    |> Enum.reduce({0, 0.0}, fn chunk, {acc_passes, acc_diff} ->
      
      flat_data =
        Enum.flat_map(chunk, fn pair ->
          good_chars = pair["sentence_good"] |> to_charlist()
          bad_chars  = pair["sentence_bad"]  |> to_charlist()

          good_len = length(good_chars)
          bad_len  = length(bad_chars)

          good_t = Nx.tensor(good_chars, type: :s32)
          bad_t  = Nx.tensor(bad_chars,  type: :s32)

          good_pad = 256 - good_len
          bad_pad  = 256 - bad_len

          # Pad the full sentence to 512
          good_full = Nx.slice_along_axis(good_t, 0, good_len) |> Nx.pad(1, [{0, good_pad, 0}])
          bad_full = Nx.slice_along_axis(bad_t, 0, bad_len) |> Nx.pad(1, [{0, bad_pad, 0}])

          [good_full, bad_full]
        end)

      actual_sentences = length(flat_data)
      batch_full = flat_data |> Nx.stack() |> Nx.backend_copy(gpu)
      
      seq_len = Nx.axis_size(batch_full, 1) - 1
      batch_input  = Nx.slice_along_axis(batch_full, 0, seq_len, axis: 1)
      batch_target = Nx.slice_along_axis(batch_full, 1, seq_len, axis: 1)

      
      losses = MOE.Phase2_Eval.compute_sentence_loss(
        batch_input, batch_target, trainable_gpu
      )

      losses_list = Nx.to_flat_list(losses)

      {chunk_passes, chunk_diff} =
        losses_list
        |> Enum.chunk_every(2)
        |> Enum.reduce({0, 0.0}, fn [g_loss, b_loss], {p_acc, d_acc} ->
          new_p = if g_loss < b_loss, do: p_acc + 1, else: p_acc
          {new_p, d_acc + (b_loss - g_loss)}
        end)

      :erlang.garbage_collect(self())

      {acc_passes + chunk_passes, acc_diff + chunk_diff}
    end)

  accuracy   = (passes / total_pairs) * 100.0
  avg_margin = total_loss_diff / total_pairs
  name       = Path.basename(path, ".jsonl")

  {name, accuracy, avg_margin, passes, total_pairs}
end

# unfiltered - ./data/blimp_unfiltered
# ./data/bbylm_non_blimp_evals/*.jsonl -> ./data/bblm_blimp_26_quick/*.jsonl
dataset_files = Path.wildcard("./data/bblm_blimp_26_quick/*.jsonl") |> Enum.sort()
total_files   = length(dataset_files)

IO.puts("🚀 Running BLiMP batched eval across #{total_files} datasets...\n")

results =
  dataset_files
  |> Enum.with_index(1)
  |> Enum.map(fn {path, idx} ->
    IO.puts("  [#{idx}/#{total_files}] #{Path.basename(path)}...")
    result = run_blimp.(path)
    :erlang.garbage_collect(self())
    result
  end)

sorted = Enum.sort_by(results, fn {_, acc, _, _, _} -> acc end, :desc)

IO.puts("\n")
IO.puts(String.duplicate("=", 70))
IO.puts("🏆 BLIMP BATCH RESULTS — sorted by accuracy")
IO.puts(String.duplicate("=", 70))
IO.puts(String.pad_trailing("Dataset", 48) <> "Accuracy   Margin")
IO.puts(String.duplicate("-", 70))

Enum.each(sorted, fn {name, acc, margin, passes, total} ->
  flag = cond do
    acc >= 60.0 -> "✅"
    acc <= 40.0 -> "❌"
    true        -> "〰️"
  end
  IO.puts("#{flag} #{String.pad_trailing(name, 46)} #{String.pad_leading("#{Float.round(acc, 1)}%", 7)} (#{passes}/#{total})   #{Float.round(margin, 4)}")
end)

IO.puts(String.duplicate("-", 70))

# Overall average
avg_acc = results |> Enum.map(fn {_, acc, _, _, _} -> acc end) |> Enum.sum() |> Kernel./(total_files)
IO.puts("📊 Overall average accuracy: #{Float.round(avg_acc, 2)}%")
IO.puts(String.duplicate("=", 70))
🚀 Running BLiMP batched eval across 67 datasets...

  [1/67] adjunct_island.jsonl...
  [2/67] anaphor_gender_agreement.jsonl...
  [3/67] anaphor_number_agreement.jsonl...
  [4/67] animate_subject_passive.jsonl...
  [5/67] animate_subject_trans.jsonl...
  [6/67] causative.jsonl...
  [7/67] complex_NP_island.jsonl...
  [8/67] coordinate_structure_constraint_complex_left_branch.jsonl...
  [9/67] coordinate_structure_constraint_object_extraction.jsonl...
  [10/67] determiner_noun_agreement_1.jsonl...
  [11/67] determiner_noun_agreement_2.jsonl...
  [12/67] determiner_noun_agreement_irregular_1.jsonl...
  [13/67] determiner_noun_agreement_irregular_2.jsonl...
  [14/67] determiner_noun_agreement_with_adj_2.jsonl...
  [15/67] determiner_noun_agreement_with_adj_irregular_1.jsonl...
  [16/67] determiner_noun_agreement_with_adj_irregular_2.jsonl...
  [17/67] determiner_noun_agreement_with_adjective_1.jsonl...
  [18/67] distractor_agreement_relational_noun.jsonl...
  [19/67] distractor_agreement_relative_clause.jsonl...
  [20/67] drop_argument.jsonl...
  [21/67] ellipsis_n_bar_1.jsonl...
  [22/67] ellipsis_n_bar_2.jsonl...
  [23/67] existential_there_object_raising.jsonl...
  [24/67] existential_there_quantifiers_1.jsonl...
  [25/67] existential_there_quantifiers_2.jsonl...
  [26/67] existential_there_subject_raising.jsonl...
  [27/67] expletive_it_object_raising.jsonl...
  [28/67] inchoative.jsonl...
  [29/67] intransitive.jsonl...
  [30/67] irregular_past_participle_adjectives.jsonl...
  [31/67] irregular_past_participle_verbs.jsonl...
  [32/67] irregular_plural_subject_verb_agreement_1.jsonl...
  [33/67] irregular_plural_subject_verb_agreement_2.jsonl...
  [34/67] left_branch_island_echo_question.jsonl...
  [35/67] left_branch_island_simple_question.jsonl...
  [36/67] matrix_question_npi_licensor_present.jsonl...
  [37/67] npi_present_1.jsonl...
  [38/67] npi_present_2.jsonl...
  [39/67] only_npi_licensor_present.jsonl...
  [40/67] only_npi_scope.jsonl...
  [41/67] passive_1.jsonl...
  [42/67] passive_2.jsonl...
  [43/67] principle_A_c_command.jsonl...
  [44/67] principle_A_case_1.jsonl...
  [45/67] principle_A_case_2.jsonl...
  [46/67] principle_A_domain_1.jsonl...
  [47/67] principle_A_domain_2.jsonl...
  [48/67] principle_A_domain_3.jsonl...
  [49/67] principle_A_reconstruction.jsonl...
  [50/67] regular_plural_subject_verb_agreement_1.jsonl...
  [51/67] regular_plural_subject_verb_agreement_2.jsonl...
  [52/67] sentential_negation_npi_licensor_present.jsonl...
  [53/67] sentential_negation_npi_scope.jsonl...
  [54/67] sentential_subject_island.jsonl...
  [55/67] superlative_quantifiers_1.jsonl...
  [56/67] superlative_quantifiers_2.jsonl...
  [57/67] tough_vs_raising_1.jsonl...
  [58/67] tough_vs_raising_2.jsonl...
  [59/67] transitive.jsonl...
  [60/67] wh_island.jsonl...
  [61/67] wh_questions_object_gap.jsonl...
  [62/67] wh_questions_subject_gap.jsonl...
  [63/67] wh_questions_subject_gap_long_distance.jsonl...
  [64/67] wh_vs_that_no_gap.jsonl...
  [65/67] wh_vs_that_no_gap_long_distance.jsonl...
  [66/67] wh_vs_that_with_gap.jsonl...
  [67/67] wh_vs_that_with_gap_long_distance.jsonl...


======================================================================
🏆 BLIMP BATCH RESULTS — sorted by accuracy
======================================================================
Dataset                                         Accuracy   Margin
----------------------------------------------------------------------
✅ principle_A_case_1                              100.0% (200/200)   0.0841
✅ principle_A_domain_1                            100.0% (200/200)   0.1063
✅ superlative_quantifiers_1                       100.0% (200/200)   0.1004
✅ wh_vs_that_no_gap                               100.0% (200/200)   0.044
✅ wh_vs_that_no_gap_long_distance                  99.5% (199/200)   0.0311
✅ wh_questions_subject_gap                         99.0% (198/200)   0.0484
✅ wh_questions_subject_gap_long_distance           99.0% (198/200)   0.0306
✅ wh_questions_object_gap                          97.0% (194/200)   0.0365
✅ principle_A_case_2                               92.5% (185/200)   0.0334
✅ wh_island                                        87.5% (175/200)   0.0067
✅ superlative_quantifiers_2                        81.5% (163/200)   0.057
✅ left_branch_island_echo_question                 79.5% (159/200)   0.0381
✅ existential_there_quantifiers_2                  75.0% (150/200)   0.0335
✅ irregular_past_participle_verbs                  70.5% (141/200)   0.0367
✅ coordinate_structure_constraint_object_extraction   70.0% (140/200)   0.0191
✅ principle_A_c_command                            70.0% (140/200)   0.0222
✅ sentential_negation_npi_licensor_present         67.0% (134/200)   0.0398
✅ anaphor_gender_agreement                         66.0% (132/200)   0.0535
✅ coordinate_structure_constraint_complex_left_branch   62.5% (125/200)   0.0016
✅ tough_vs_raising_2                               62.0% (124/200)   0.0302
✅ animate_subject_passive                          61.5% (123/200)   0.0254
✅ determiner_noun_agreement_irregular_2            60.5% (121/200)   0.0184
〰️ determiner_noun_agreement_with_adjective_1       59.0% (118/200)   0.0038
〰️ existential_there_object_raising                 59.0% (118/200)   0.0069
〰️ existential_there_subject_raising                59.0% (118/200)   0.0153
〰️ determiner_noun_agreement_with_adj_irregular_1   58.0% (116/200)   0.0044
〰️ determiner_noun_agreement_with_adj_irregular_2   56.5% (113/200)   0.0067
〰️ complex_NP_island                                56.0% (112/200)   0.0014
〰️ expletive_it_object_raising                      56.0% (112/200)   0.009
〰️ transitive                                       55.5% (111/200)   0.0098
〰️ distractor_agreement_relative_clause             55.0% (110/200)   0.0057
〰️ existential_there_quantifiers_1                  54.0% (108/200)   0.0089
〰️ distractor_agreement_relational_noun             53.5% (107/200)   0.0059
〰️ ellipsis_n_bar_1                                 53.0% (106/200)   -0.0005
〰️ passive_2                                        53.0% (106/200)   0.0095
〰️ principle_A_domain_3                             52.0% (104/200)   0.0007
〰️ left_branch_island_simple_question               51.0% (102/200)   -0.001
〰️ determiner_noun_agreement_2                      50.5% (101/200)   0.0056
〰️ determiner_noun_agreement_irregular_1            50.0% (100/200)   0.0015
〰️ anaphor_number_agreement                         49.5% (99/200)   -0.0073
〰️ principle_A_reconstruction                       49.5% (99/200)   0.0003
〰️ sentential_subject_island                        49.0% (98/200)   0.0039
〰️ regular_plural_subject_verb_agreement_2          48.0% (96/200)   -0.0035
〰️ determiner_noun_agreement_1                      46.5% (93/200)   0.0
〰️ ellipsis_n_bar_2                                 46.5% (93/200)   -0.0055
〰️ irregular_plural_subject_verb_agreement_1        46.0% (92/200)   -0.0045
〰️ determiner_noun_agreement_with_adj_2             45.5% (91/200)   -0.0034
〰️ only_npi_scope                                   45.5% (91/200)   -0.0063
〰️ passive_1                                        44.5% (89/200)   -0.01
〰️ causative                                        43.5% (87/200)   -0.0086
〰️ irregular_plural_subject_verb_agreement_2        42.5% (85/200)   -0.0152
〰️ tough_vs_raising_1                               41.5% (83/200)   -0.0251
❌ animate_subject_trans                            38.5% (77/200)   -0.037
❌ principle_A_domain_2                             36.0% (72/200)   -0.0215
❌ inchoative                                       34.0% (68/200)   -0.0475
❌ regular_plural_subject_verb_agreement_1          34.0% (68/200)   -0.0255
❌ intransitive                                     33.5% (67/200)   -0.0504
❌ drop_argument                                    33.0% (66/200)   -0.0557
❌ irregular_past_participle_adjectives             25.5% (51/200)   -0.032
❌ npi_present_2                                    23.0% (46/200)   -0.0466
❌ sentential_negation_npi_scope                    22.0% (44/200)   -0.0014
❌ npi_present_1                                    21.5% (43/200)   -0.0347
❌ adjunct_island                                   19.0% (38/200)   -0.0054
❌ matrix_question_npi_licensor_present              9.5% (19/200)   -0.0919
❌ only_npi_licensor_present                         3.0% (6/200)   -0.0837
❌ wh_vs_that_with_gap                               0.5% (1/200)   -0.0472
❌ wh_vs_that_with_gap_long_distance                 0.0% (0/200)   -0.0339
----------------------------------------------------------------------
📊 Overall average accuracy: 54.66%
======================================================================
:ok

Inference

defmodule MOE.Inference do
  import Nx.Defn

  @allowed_chars ~c" abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.,:;-'\"()[]"

  def build_muzzle(vocab_size \\ 128, allowed \\ @allowed_chars) do
    muzzle = Nx.broadcast(Nx.tensor(-1.0e10, type: :f32), {vocab_size})
    Enum.reduce(allowed, muzzle, fn char, acc ->
      Nx.indexed_put(acc, Nx.tensor([[char]]), Nx.tensor([0.0]))
    end)
  end

  defn compute_next_logits(x_t, h, tp, muzzle) do
    {logits, h_new} = MOE.SSM.forward_step(x_t, h, tp)
    muzzled = (logits + muzzle) |> Nx.squeeze()
    {muzzled, h_new}
  end

  defn sample_top_k(x_t, h, tp, muzzle, key) do
    {muzzled, h_new} = compute_next_logits(x_t, h, tp, muzzle)
     scaled = muzzled / 0.75
    {top_values, top_indices} = Nx.top_k(scaled, k: 5)
    probs = Nx.exp(top_values) / Nx.sum(Nx.exp(top_values))
    {sampled_tensor, new_key} = Nx.Random.choice(key, top_indices, probs)
    {sampled_tensor[0], h_new, new_key}
  end

  # k = 5 temp = 0.8
  def top_k(params, prompt, muzzle) do
    prompt_chars = String.to_charlist(prompt)
    h_start = Nx.broadcast(0.0, {1, 128, 128}) |> Nx.as_type(:f32)
    resp_init = 0

    prompt_length = length(prompt_chars)
    pad_len = 256 - prompt_length
    padded  = prompt_chars ++ List.duplicate(0, max(0, pad_len))

    Enum.reduce(0..255, {~c"", resp_init, h_start, Nx.Random.key(42)}, fn step, {chars, resp, h_new, key} ->

      x_i = 
        cond do
          step > prompt_length ->
              resp |> Nx.new_axis(-1)
          true -> 
            Enum.at(padded, step) |> Nx.new_axis(-1)
        end
      {muzzled, h_next, new_key} = sample_top_k(x_i, h_new, params, muzzle, key)
      next_token = muzzled |> Nx.to_number()

      new_chars = chars ++ [next_token]
      
      {new_chars, next_token, h_next, new_key}
    end)
    |> elem(0)
    |> List.to_string()
  end
end

IO.puts("✅ DLM.Inference loaded")
✅ DLM.Inference loaded
:ok
defmodule MOE.Probe do
  def run(params) do
    gpu    = Nx.default_backend()
    muzzle = MOE.Inference.build_muzzle() |> Nx.backend_copy(gpu)

    IO.puts("\n" <> String.duplicate("=", 60))
    IO.puts("MOE UNIVERSAL SSM INFERENCE PROBE")
    IO.puts(String.duplicate("=", 60))

    IO.puts("\n📚 IN-DISTRIBUTION")
    IO.puts(String.duplicate("-", 40))
    probe(params, "[W]happy [T]adj [D]",  "Definition of 'happy'", muzzle)
    probe(params, "[W]water [T]noun [D]", "Definition of 'water'", muzzle)
    probe(params, "[W]run [T]verb [D]",   "Definition of 'run'",   muzzle)

    IO.puts("\n🔄 REVERSE FORMAT")
    IO.puts(String.duplicate("-", 40))
    probe(params, "[D]A feeling of great pleasure [W]", "Word for pleasure", muzzle)
    probe(params, "[D]To move swiftly on foot [W]",     "Word for swift",    muzzle)

    IO.puts("\n🔀 NEAR-DISTRIBUTION")
    IO.puts(String.duplicate("-", 40))
    probe(params, "The word 'happy' means",         "Prose definition",  muzzle)
    probe(params, "[W]love [R]Related:",            "Relational format", muzzle)
    probe(params, "[W]cold [T]adj [D]The opposite", "Partial def",       muzzle)

    IO.puts("\n💬 OUT-OF-DISTRIBUTION")
    IO.puts(String.duplicate("-", 40))
    probe(params, "What is the meaning of life?", "Philosophical", muzzle)
    probe(params, "Hello, how are you?",          "Greeting",      muzzle)
    probe(params, "Can you define the word",      "Conversational", muzzle)
    probe(params, "Do state space models dream of recursive sheep?", "Special", muzzle)

    IO.puts("\n🔤 MORPHOLOGY")
    IO.puts(String.duplicate("-", 40))
    probe(params, "[W]Electr", "Electr-", muzzle)
    probe(params, "[W]Mecha",  "Mecha-",  muzzle)
    probe(params, "[W]Inter",  "Inter-",  muzzle)
    probe(params, "[W]Ortho",  "Ortho-",  muzzle)
    probe(params, "[W]Trans",  "Trans-",  muzzle)

    IO.puts("\n" <> String.duplicate("=", 60))
  end

  defp probe(params, prompt, label, muzzle) do
    IO.puts("\n#{label}")
    IO.puts("  Prompt:  #{inspect(prompt)}")

    # Call the V17 Inference
    sampled = MOE.Inference.top_k(params, prompt, muzzle)

    IO.puts("  Top-k:   #{inspect(String.slice(sampled, String.length(prompt)..-1//1))}")

    :erlang.garbage_collect(self())
  end
end

IO.puts("✅ MOE.Probe loaded")
✅ MOE.Probe loaded
:ok
# --- Inference Probe ---
full_state_path = "v67_MOE_2048sq_yolo_n0_keyhl32327776776_checkpoint_step_5800.bin"

if File.exists?(full_state_path) do
  IO.puts("💾 Loading latest V18 Checkpoint...")
  %{trainable: t_p} = File.read!(full_state_path) |> :erlang.binary_to_term()
    params_gpu = MOE.Tree.map(t_p, &Nx.backend_copy(&1, gpu))


  IO.puts("✅ Model Loaded")
  
  # Fire the battery!
  MOE.Probe.run(params_gpu)
else
  IO.puts("❌ No checkpoint found at #{full_state_path}")
end
💾 Loading latest V18 Checkpoint...
✅ Model Loaded

============================================================
MOE UNIVERSAL SSM INFERENCE PROBE
============================================================

📚 IN-DISTRIBUTION
----------------------------------------

▶ Definition of 'happy'
  Prompt:  "[W]happy [T]adj [D]"
  Top-k:   "ereng whory t ar ay w thongoupouthalyofousonderengoungh we wh wh tond thathe hedowhat wonghe wenth the ware the w the tha ar whe ther hather t thathathe hat the theththe thethe the ththing the the wherouthethene the ththe thit thererthe "

▶ Definition of 'water'
  Prompt:  "[W]water [T]noun [D]"
  Top-k:   "hed berig I ble Ifoulllingoushe wareringof I's be the at thes tinere whe thengor t t t the thar tithe thithe thenthere wisere the t t whe t t thathithe thethe that t the ththe the ththithathe that thalle t thint thethitheth t thetht the"

▶ Definition of 'run'
  Prompt:  "[W]run [T]verb [D]"
  Top-k:   "is tounghowe wowath th wh whin'lllly. I's wondithinghanderoungre anthand wang hedowhan t the wat an's the he the w the thart hathathend he that thathithe hat the thant the thithe theretht thathe thenthall thitht thithit theth t thethithe "

🔄 REVERSE FORMAT
----------------------------------------

▶ Word for pleasure
  Prompt:  "[D]A feeling of great pleasure [W]"
  Top-k:   " I'merouringeryererendofouterend I theresenghes t's. athe wher torererer therere ary werererererererererere I'rererererererererererererererererererererererererererererererererererererereererererererererererereerererererere"

▶ Word for swift
  Prompt:  "[D]To move swiftly on foot [W]"
  Top-k:   "oun'thas t. t. t towathar alll on onghe t th t t t'thononthat the ato wh t t thathat whithe thithe thanthetherindonthathethinthet t thiththaththathe ththit thethenthethe thit thathethethithisthe then thithat thered hathathitha"

🔀 NEAR-DISTRIBUTION
----------------------------------------

▶ Prose definition
  Prompt:  "The word 'happy' means"
  Top-k:   "ind Towe t ar windere. t tofouthin and sthindind anderinghond. d wand wande idonghin the wat ine wand ind whene thandedowed t ther areren te t wenge t anend thane hand thand and whaned whe and are wing at arin whereang waleand whathe "

▶ Relational format
  Prompt:  "[W]love [R]Related:"
  Top-k:   "inder thowe wise woury t's I byour an be ayonerend t weatoungre bed whe whe w wo angendond wher onou we tou we wh we theroro there wonend warend our whe ondere werenede we wand we whenedererere werere ounere wale are wand thou the t ane "

▶ Partial def
  Prompt:  "[W]cold [T]adj [D]The opposite"
  Top-k:   "eris. Ifoullling towher at be asthithinghathonthatithon thathathat to at t t the thind ithathethe therither t aringhathe hand thant thithithe hit the thant there he the thetht thathererenghall thitht thathat thereat ther t the"

💬 OUT-OF-DISTRIBUTION
----------------------------------------

▶ Philosophical
  Prompt:  "What is the meaning of life?"
  Top-k:   "Weres. stoushe I t t. therit ingh st s athere it thetheth the the thitet t t t the thind athe thithe thanthere t winghere t t the t t thithithe thethe that t thethere the thething the the he tthe t thingetherenthered he ther the"

▶ Greeting
  Prompt:  "Hello, how are you?"
  Top-k:   " I an whoweren I te te te t t. wheron he Itheng he t thonthe athone we the thinenthat t the thar tthe thethe the whe thet hind the t t he t ththethethe t ththe that t thethere the thethind the the he tthe t thindetheththe thit theret the"

▶ Conversational
  Prompt:  "Can you define the word"
  Top-k:   "ed tofindis. If w thondoutind a wid wis id w ther t. an we wint than wandono ing ing whe t a te whe the the wind wangeder wathe at ind a t thathind t at wan t we ithe thind the wa t and than war t ing t wa inghe anthe wh t whe w athe"

▶ Special
  Prompt:  "Do state space models dream of recursive sheep?"
  Top-k:   "eshe wed stherser s and whengous he hed s s we thant anges he s s ar s. s s t s s thed the t hit s s thes w ther t thas whe t s we theres he the he the t t t s the the t thed thethese t the whe ththitherer the"

🔤 MORPHOLOGY
----------------------------------------

▶ Electr-
  Prompt:  "[W]Electr"
  Top-k:   "hindourery. win'st'ldoun'thayoullling towher at her I withinghand. hereath tond whanghed it t t t the tharite the t the tharerere wiser the that he t whithathithe hat the theththe thethe the thit thathe that thalle t thinthithit theth t thethithe "

▶ Mecha-
  Prompt:  "[W]Mecha"
  Top-k:   "in'st whathandin'storithis. wouting. these tharen thas withinghathon thes terthather theththithethithe thin tothe thithe thintherthan hithithe thanthethenthithathe thanghe thant there he the thent there therenghed thethen there t thered we thererer"

▶ Inter-
  Prompt:  "[W]Inter"
  Top-k:   "er. I I'sthander thowe wor I'lll wh whatof thall atha wal t there heng te t'tonthe the t tet t t t the thand I the t the thenthere t ht there t t the t t thaththe t ththe that t the thithe thethit thathe that thtothe then t thethitheth t thetht the"

▶ Ortho-
  Prompt:  "[W]Ortho"
  Top-k:   "in's. whathathin's hthat andorerout. thet'the aththe I's. the theron thed tththather thentorthat t the than te ther the therithere t wind the t t the t t ththethe t ththe that t thethere the thethithere therenthed thethen thererenthe tthathe thathe"

▶ Trans-
  Prompt:  "[W]Trans"
  Top-k:   "in'st whathandin'storithis. woury ting tof thar as th wasthinghaththithallld inthe wathetht athethithathet wh the thithe thanther tht hithathe thinthathenthithithe thathe thit t thethentherthethththatherere t thallithitht thithit theth t thethithet"

============================================================
:ok

Train

defmodule MOE.Phase2Trainer do
  import Nx.Defn

  defn step_cross_entropy(logits, targets) do
    vocab_size = Nx.axis_size(logits, -1)
    one_hot = Nx.equal(Nx.iota({vocab_size}), Nx.new_axis(targets, -1))
    
    max_logits = Nx.reduce_max(logits, axes: [-1], keep_axes: true)
    safe_logits = Nx.subtract(logits, max_logits)
    log_probs = Nx.subtract(safe_logits, Nx.log(Nx.sum(Nx.exp(safe_logits), axes: [-1], keep_axes: true)))
    
    # Returns a {batch_size} 1D tensor of individual sequence losses
    Nx.negate(Nx.sum(Nx.multiply(one_hot, log_probs), axes: [-1]))
  end

  defn compute_sequence_loss(input_tokens, params) do
    batch_size = Nx.axis_size(input_tokens, 0)

    h_start = Nx.broadcast(0.0, {batch_size, 128, 128}) |> Nx.as_type(:f32)
    pr_start = Nx.broadcast(0.0, {batch_size, 4, 128}) |> Nx.as_type(:f32)
    z_t = Nx.broadcast(0.0, {batch_size, 1, 128}) |> Nx.as_type(:f32)
    
    
    zero_scalar = Nx.tensor(0.0, type: :f32)

    result =
      while {i = 0, 
             total_fwd1 = zero_scalar, 
             valid_fwd1 = zero_scalar,
             total_fwd2 = zero_scalar, 
             valid_fwd2 = zero_scalar,
             total_fwd3 = zero_scalar, 
             valid_fwd3 = zero_scalar,
             inf = input_tokens,
             h = h_start,
             pr = pr_start,
             zt = z_t,
             tp = params},
            Nx.less(i, Nx.axis_size(inf, 1)-3) do

        x_t = inf[[.., i]]
        t_1 = inf[[.., i+1]]
        t_2 = inf[[.., i+2]]
        t_3 = inf[[.., i+3]]
        
        {l1, l2, l3, h_new, pr_new} = MOE.SSM.forward_step(x_t, h, pr, zt, tp)
        
        # Get raw losses per item in the batch (Shape: {32})
        l_fwd1 = step_cross_entropy(l1, t_1)
        l_fwd2 = step_cross_entropy(l2, t_2)
        l_fwd3 = step_cross_entropy(l3, t_3)
        
        mask_fwd1 = Nx.not_equal(t_1, 1) |> Nx.as_type(:f32)
        mask_fwd2 = Nx.not_equal(t_2, 1) |> Nx.as_type(:f32)
        mask_fwd3 = Nx.not_equal(t_3, 1) |> Nx.as_type(:f32)
        
        # Mask the individual losses and sum across the batch to get a true scalar
        step_loss_fwd1 = Nx.sum(Nx.multiply(l_fwd1, mask_fwd1))
        step_loss_fwd2 = Nx.sum(Nx.multiply(l_fwd2, mask_fwd2))
        step_loss_fwd3 = Nx.sum(Nx.multiply(l_fwd3, mask_fwd3))
        
        # sum the loss from valid tokens in this timestep
        step_valid_fwd1 = Nx.sum(mask_fwd1)
        step_valid_fwd2 = Nx.sum(mask_fwd2)
        step_valid_fwd3 = Nx.sum(mask_fwd3)

        {i + 1, 
         Nx.add(total_fwd1, step_loss_fwd1), 
         Nx.add(valid_fwd1, step_valid_fwd1),
         Nx.add(total_fwd2, step_loss_fwd2), 
         Nx.add(valid_fwd2, step_valid_fwd2),
         Nx.add(total_fwd3, step_loss_fwd3), 
         Nx.add(valid_fwd3, step_valid_fwd3),
         inf, h_new, pr_new, zt, tp}
      end
  
    {_, acc_fwd1, val_fwd1, acc_fwd2, val_fwd2, acc_fwd3, val_fwd3, _, _, _, _, _} = result
    # compress and save final hlong for a long term memory context?

    # Divide ONLY by the actual number of valid tokens 
    total_loss1 = Nx.divide(acc_fwd1, Nx.add(val_fwd1, 1.0e-8))
    total_loss2 = Nx.divide(acc_fwd2, Nx.add(val_fwd2, 1.0e-8))
    total_loss3 = Nx.divide(acc_fwd3, Nx.add(val_fwd3, 1.0e-8))
    
    
    total_loss = total_loss1 + (total_loss2 * 0.5)  + (total_loss3 * 0.25)

    {total_loss, {total_loss1, total_loss2, total_loss3}}
  end

  defn compute_grad(params, batch_tokens) do
    seq_len = Nx.axis_size(batch_tokens, 1) - 1
    input_tokens  = Nx.slice_along_axis(batch_tokens, 0, seq_len, axis: 1)

    {{total_loss, {total_loss1, total_loss2, total_loss3}}, raw_grads} = 
      value_and_grad(params, fn p -> compute_sequence_loss(input_tokens, p) end, &elem(&1, 0))
      
    {total_loss, total_loss1, total_loss2, total_loss3, raw_grads}
  end
end
{:module, MOE.Phase2Trainer, <<70, 79, 82, 49, 0, 0, 37, ...>>, true}
defmodule MOE.CheckpointManager do
  @moduledoc """
  Scans the directory for the latest checkpoint of a specific run prefix.
  If no checkpoints exist, it triggers a completely fresh initialization.
  """
  def get_resume_state(run_prefix) do
    checkpoints = Path.wildcard("#{run_prefix}_checkpoint_step_*.bin")

    if Enum.empty?(checkpoints) do
      if File.exists?("#{run_prefix}_final.bin") do
        IO.puts("Found completed run: #{run_prefix}_final.bin")
        {"#{run_prefix}_final.bin", :completed}
      else
        IO.puts("No checkpoints found for '#{run_prefix}'. Starting FRESH from Genesis.")
        {:fresh, 0}
      end
    else
      # Extract step numbers using regex and find the maximum
      latest_file = Enum.max_by(checkpoints, fn file ->
        case Regex.run(~r/_step_(\d+)\.bin$/, file) do
          [_, step_str] -> String.to_integer(step_str)
          _ -> -1
        end
      end)

      [_, step_str] = Regex.run(~r/_step_(\d+)\.bin$/, latest_file)
      step = String.to_integer(step_str)
      
      IO.puts("Auto-Resuming '#{run_prefix}' from Step #{step}...")
      {latest_file, step}
    end
  end
end
{:module, MOE.CheckpointManager, <<70, 79, 82, 49, 0, 0, 17, ...>>, {:get_resume_state, 1}}
run_prefix  = "v67_MOE_2048sq_yolo_lgmuon_xxxl4"
# frozen_path = "./data/f_semantic_reservoir_512D.bin"
total_steps = 7401

{load_path, start_step} = MOE.CheckpointManager.get_resume_state(run_prefix)

if start_step == :completed do
  IO.puts("This run has already reached #{total_steps} steps. Exiting.") 
  
else
  batch_size = 64
  # ./data/bbylm_512_fullmix (256 too) bbylm_lg_wiki_512 # try data with sq len of just one word
  data_dir = "./data/bbylm_1024_strict" #/babylm_high_sanitize(sq 256), /bbylm_512_strict(sq 512)
  
  IO.puts("Initializing Lazy Curriculum Data Stream from [#{data_dir}]...")
  
  data_stream = 
    MOE.CurriculumStreamer.build_infinite_stream(data_dir, batch_size)
    |> Stream.drop(start_step) 

   {starting_trainable, initial_key} =
    if load_path == :fresh do
      IO.puts("Igniting brand new Trainable weights for #{run_prefix}...")
      {ip, ik} = MOE.Parameter.init(Nx.Random.key(System.system_time()))
      # %{frozen: {r, _m}} = File.read!(frozen_path) |> :erlang.binary_to_term()
      {ip, ik}
    else
      IO.puts("Loading Trainable Weights from #{load_path}...")
      # Checkpoints now only contain %{trainable: ...}
      %{trainable: t_p} = File.read!(load_path) |> :erlang.binary_to_term()
      {t_p, Nx.Random.key(System.system_time())}
    end

  trainable_gpu = MOE.Tree.map(starting_trainable, &Nx.backend_copy(&1, gpu))
  step_count = Nx.tensor(start_step) |> Nx.backend_copy(gpu)
  
  # ZIP FROM THE START_STEP
  {final_p, _key, _step} =
    Enum.reduce(Stream.zip(start_step..(total_steps - 1), data_stream), 
      {trainable_gpu, initial_key, step_count}, 
      fn {step, cpu_batch}, {cur_tr, cur_key, c_step} ->        
        
      gpu_batch = Nx.backend_copy(cpu_batch, gpu)
     
      base_lr = 7.0e-4
      min_lr = 7.0e-5
      warmup_steps = 400
      cooldown_start = 6800
      
      current_lr = 
        if step < warmup_steps do
          base_lr * (step / warmup_steps)
        else
          if step < cooldown_start do
            base_lr
          else
            progress = min(max((step - cooldown_start) / (total_steps - cooldown_start), 0.0), 1.0) 
            min_lr + 0.5 * (base_lr - min_lr) * (1.0 + :math.cos(:math.pi() * progress))
          end
        end
      
      lr_tensor = Nx.tensor(current_lr, type: :f32) |> Nx.backend_copy(gpu)

      split_keys = Nx.Random.split(cur_key)
      next_key = split_keys[1]
      
      {loss_tensor, fl1, fl2, fl3, grads} = MOE.Phase2Trainer.compute_grad(cur_tr, gpu_batch)
      
      {tot_v, tot_1, tot_2, tot_3} = {Nx.to_number(loss_tensor), Nx.to_number(fl1), Nx.to_number(fl2), Nx.to_number(fl3)}

      {up_tr, up_step} = MOE.Optimizer.update(cur_tr, grads, c_step, lr_tensor)
  
      # Telemetry
      {c1, c2, cb, cq, cg, ce, qu, emb} = up_tr

      c1_norm = c1 |> Nx.pow(2) |> Nx.sum() |> Nx.sqrt() |> Nx.to_number() |> Float.round(4)
      c2_norm = c2 |> Nx.pow(2) |> Nx.sum() |> Nx.sqrt() |> Nx.to_number() |> Float.round(4)
      cb_norm = cb |> Nx.pow(2) |> Nx.sum() |> Nx.sqrt() |> Nx.to_number() |> Float.round(4)
      cq_norm = cq |> Nx.pow(2) |> Nx.sum() |> Nx.sqrt() |> Nx.to_number() |> Float.round(4)
      cg_norm = cg |> Nx.pow(2) |> Nx.sum() |> Nx.sqrt() |> Nx.to_number() |> Float.round(4)
      ce_norm = ce |> Nx.pow(2) |> Nx.sum() |> Nx.sqrt() |> Nx.to_number() |> Float.round(4)
      qu_norm = qu |> Nx.pow(2) |> Nx.sum() |> Nx.sqrt() |> Nx.to_number() |> Float.round(4)

      # Shape {128} — one norm per character slice
      slice_norms = emb |> Nx.pow(2) |> Nx.sum(axes: [-2, -1]) |> Nx.sqrt()
      
      # Then log summary stats
      emb_norm_mean = slice_norms |> Nx.mean() |> Nx.to_number() |> Float.round(4)
      emb_norm_max  = slice_norms |> Nx.reduce_max() |> Nx.to_number() |> Float.round(4)
      emb_norm_min  = slice_norms |> Nx.reduce_min() |> Nx.to_number() |> Float.round(4)
      
      IO.puts("➡️ Step #{step} | LR: #{Float.round(current_lr, 6)} | Loss[t,1,2,3]: #{Float.round(tot_v, 4)} | #{Float.round(tot_1, 4)} | #{Float.round(tot_2, 4)} | #{Float.round(tot_3, 4)}")
      IO.puts("➡️ PN 1: c1 #{c1_norm} |  c2 #{c2_norm} |  cb #{cb_norm} |  cq #{cq_norm} |  ce #{ce_norm} |  cg #{cg_norm}")
      IO.puts("➡️ PN 2: mean #{emb_norm_mean} | max #{emb_norm_max} | min #{emb_norm_min} |  qu #{qu_norm}")
  
      # Checkpoint Saving (Save both structures!) try every 500 for 64bx512sqln
      if rem(step, 50) == 0 and step > 0 do
        IO.puts("Checkpoint reached! Saving Step #{step}...")
        cpu_tr = MOE.Tree.map(up_tr, &Nx.backend_copy(&1, Nx.BinaryBackend))
        filename = "#{run_prefix}_checkpoint_step_#{step}.bin"
        File.write!(filename, :erlang.term_to_binary(%{trainable: cpu_tr}))
        :erlang.garbage_collect()
      end
  
      {up_tr, next_key, up_step}
    end)

  IO.puts("Saving Final Fourier Reservoir Weights...")
  fin_t = MOE.Tree.map(final_p, &Nx.backend_copy(&1, Nx.BinaryBackend))
  # You could save frozen here too if desired, but since they are deterministic it's optional.
  File.write!("#{run_prefix}_final.bin", :erlang.term_to_binary(%{trainable: fin_t}))
  IO.puts("Training Complete!")
end
...
➡️ PN 1: c1 22.6513 |  c2 11.3832 |  cb 0.0043 |  cq 22.6273 |  ce 0.0043 |  cg 11.3138
➡️ PN 2: mean 11.3166 | max 11.5085 | min 11.1289 |  qu 11.3001
➡️ Step 71 | LR: 1.24e-4 | Loss[t,1,2,3]: 8.4417 | 4.8255 | 4.8183 | 4.8282
➡️ PN 1: c1 22.6512 |  c2 11.3833 |  cb 0.0045 |  cq 22.6273 |  ce 0.0045 |  cg 11.3138
➡️ PN 2: mean 11.3166 | max 11.5085 | min 11.1289 |  qu 11.3001
➡️ Step 72 | LR: 1.26e-4 | Loss[t,1,2,3]: 8.4306 | 4.8176 | 4.8133 | 4.8255
➡️ PN 1: c1 22.6511 |  c2 11.3833 |  cb 0.0046 |  cq 22.6273 |  ce 0.0046 |  cg 11.3138
➡️ PN 2: mean 11.3166 | max 11.5085 | min 11.1289 |  qu 11.3001
➡️ Step 73 | LR: 1.28e-4 | Loss[t,1,2,3]: 8.4116 | 4.8044 | 4.804 | 4.821
➡️ PN 1: c1 22.6511 |  c2 11.3833 |  cb 0.0047 |  cq 22.6273 |  ce 0.0047 |  cg 11.3138
➡️ PN 2: mean 11.3166 | max 11.5085 | min 11.1289 |  qu 11.3001
➡️ Step 74 | LR: 1.3e-4 | Loss[t,1,2,3]: 8.4142 | 4.806 | 4.8056 | 4.8219
➡️ PN 1: c1 22.651 |  c2 11.3833 |  cb 0.0049 |  cq 22.6273 |  ce 0.0049 |  cg 11.3138
➡️ PN 2: mean 11.3166 | max 11.5085 | min 11.1289 |  qu 11.3001
➡️ Step 75 | LR: 1.31e-4 | Loss[t,1,2,3]: 8.4098 | 4.8028 | 4.8034 | 4.8212
➡️ PN 1: c1 22.6509 |  c2 11.3833 |  cb 0.005 |  cq 22.6272 |  ce 0.005 |  cg 11.3138
➡️ PN 2: mean 11.3166 | max 11.5085 | min 11.1288 |  qu 11.3001
➡️ Step 76 | LR: 1.33e-4 | Loss[t,1,2,3]: 8.3889 | 4.7886 | 4.7933 | 4.8148
➡️ PN 1: c1 22.6508 |  c2 11.3833 |  cb 0.0051 |  cq 22.6272 |  ce 0.0051 |  cg 11.3138
➡️ PN 2: mean 11.3166 | max 11.5085 | min 11.1288 |  qu 11.3001
➡️ Step 77 | LR: 1.35e-4 | Loss[t,1,2,3]: 8.3907 | 4.7893 | 4.7946 | 4.8163
➡️ PN 1: c1 22.6507 |  c2 11.3833 |  cb 0.0053 |  cq 22.6272 |  ce 0.0053 |  cg 11.3138
➡️ PN 2: mean 11.3166 | max 11.5085 | min 11.1288 |  qu 11.3001
➡️ Step 78 | LR: 1.37e-4 | Loss[t,1,2,3]: 8.383 | 4.7842 | 4.7903 | 4.8142
➡️ PN 1: c1 22.6506 |  c2 11.3833 |  cb 0.0054 |  cq 22.6272 |  ce 0.0054 |  cg 11.3138
➡️ PN 2: mean 11.3166 | max 11.5085 | min 11.1288 |  qu 11.3001
➡️ Step 79 | LR: 1.38e-4 | Loss[t,1,2,3]: 8.3716 | 4.7763 | 4.785 | 4.8112
➡️ PN 1: c1 22.6505 |  c2 11.3833 |  cb 0.0055 |  cq 22.6272 |  ce 0.0055 |  cg 11.3138
➡️ PN 2: mean 11.3166 | max 11.5085 | min 11.1287 |  qu 11.3001
➡️ Step 80 | LR: 1.4e-4 | Loss[t,1,2,3]: 8.3492 | 4.7606 | 4.774 | 4.8063
➡️ PN 1: c1 22.6504 |  c2 11.3833 |  cb 0.0057 |  cq 22.6272 |  ce 0.0057 |  cg 11.3138
➡️ PN 2: mean 11.3166 | max 11.5085 | min 11.1287 |  qu 11.3001
➡️ Step 81 | LR: 1.42e-4 | Loss[t,1,2,3]: 8.3505 | 4.7611 | 4.7751 | 4.8071
➡️ PN 1: c1 22.6503 |  c2 11.3833 |  cb 0.0058 |  cq 22.6272 |  ce 0.0058 |  cg 11.3138
➡️ PN 2: mean 11.3166 | max 11.5085 | min 11.1287 |  qu 11.3001
➡️ Step 82 | LR: 1.43e-4 | Loss[t,1,2,3]: 8.3442 | 4.7569 | 4.7719 | 4.8053
➡️ PN 1: c1 22.6502 |  c2 11.3833 |  cb 0.0059 |  cq 22.6272 |  ce 0.0059 |  cg 11.3138
➡️ PN 2: mean 11.3166 | max 11.5085 | min 11.1287 |  qu 11.3001
➡️ Step 83 | LR: 1.45e-4 | Loss[t,1,2,3]: 8.3299 | 4.7467 | 4.7654 | 4.8021
➡️ PN 1: c1 22.6501 |  c2 11.3833 |  cb 0.0061 |  cq 22.6272 |  ce 0.0061 |  cg 11.3138
➡️ PN 2: mean 11.3166 | max 11.5084 | min 11.1287 |  qu 11.3001
➡️ Step 84 | LR: 1.47e-4 | Loss[t,1,2,3]: 8.3203 | 4.7401 | 4.7606 | 4.7995
➡️ PN 1: c1 22.65 |  c2 11.3833 |  cb 0.0062 |  cq 22.6271 |  ce 0.0062 |  cg 11.3138
➡️ PN 2: mean 11.3166 | max 11.5084 | min 11.1286 |  qu 11.3001
➡️ Step 85 | LR: 1.49e-4 | Loss[t,1,2,3]: 8.3166 | 4.7373 | 4.7594 | 4.7984
➡️ PN 1: c1 22.6499 |  c2 11.3832 |  cb 0.0064 |  cq 22.6271 |  ce 0.0064 |  cg 11.3138
➡️ PN 2: mean 11.3166 | max 11.5084 | min 11.1286 |  qu 11.3002
➡️ Step 86 | LR: 1.5e-4 | Loss[t,1,2,3]: 8.31 | 4.7331 | 4.7556 | 4.7962
➡️ PN 1: c1 22.6498 |  c2 11.3832 |  cb 0.0065 |  cq 22.6271 |  ce 0.0065 |  cg 11.3138
➡️ PN 2: mean 11.3165 | max 11.5084 | min 11.1286 |  qu 11.3002
➡️ Step 87 | LR: 1.52e-4 | Loss[t,1,2,3]: 8.2931 | 4.7211 | 4.7479 | 4.7924
➡️ PN 1: c1 22.6496 |  c2 11.3832 |  cb 0.0067 |  cq 22.6271 |  ce 0.0067 |  cg 11.3137
➡️ PN 2: mean 11.3165 | max 11.5084 | min 11.1285 |  qu 11.3002
➡️ Step 88 | LR: 1.54e-4 | Loss[t,1,2,3]: 8.2886 | 4.7176 | 4.7461 | 4.7918
➡️ PN 1: c1 22.6495 |  c2 11.3832 |  cb 0.0068 |  cq 22.6271 |  ce 0.0068 |  cg 11.3137
➡️ PN 2: mean 11.3165 | max 11.5084 | min 11.1285 |  qu 11.3002
➡️ Step 89 | LR: 1.56e-4 | Loss[t,1,2,3]: 8.2766 | 4.709 | 4.7404 | 4.7893
➡️ PN 1: c1 22.6494 |  c2 11.3832 |  cb 0.007 |  cq 22.6271 |  ce 0.007 |  cg 11.3137
➡️ PN 2: mean 11.3165 | max 11.5084 | min 11.1285 |  qu 11.3002
➡️ Step 90 | LR: 1.58e-4 | Loss[t,1,2,3]: 8.265 | 4.7014 | 4.7343 | 4.7856
➡️ PN 1: c1 22.6493 |  c2 11.3832 |  cb 0.0072 |  cq 22.6271 |  ce 0.0072 |  cg 11.3137
➡️ PN 2: mean 11.3165 | max 11.5084 | min 11.1285 |  qu 11.3002
➡️ Step 91 | LR: 1.59e-4 | Loss[t,1,2,3]: 8.2574 | 4.6958 | 4.7309 | 4.7844
➡️ PN 1: c1 22.6491 |  c2 11.3831 |  cb 0.0073 |  cq 22.627 |  ce 0.0073 |  cg 11.3137
➡️ PN 2: mean 11.3165 | max 11.5084 | min 11.1284 |  qu 11.3002
➡️ Step 92 | LR: 1.61e-4 | Loss[t,1,2,3]: 8.251 | 4.6911 | 4.7285 | 4.7828
➡️ PN 1: c1 22.649 |  c2 11.3831 |  cb 0.0075 |  cq 22.627 |  ce 0.0075 |  cg 11.3137
➡️ PN 2: mean 11.3165 | max 11.5084 | min 11.1284 |  qu 11.3002
➡️ Step 93 | LR: 1.63e-4 | Loss[t,1,2,3]: 8.2299 | 4.6766 | 4.7179 | 4.7778
➡️ PN 1: c1 22.6489 |  c2 11.3831 |  cb 0.0076 |  cq 22.627 |  ce 0.0076 |  cg 11.3137
➡️ PN 2: mean 11.3165 | max 11.5084 | min 11.1284 |  qu 11.3002
➡️ Step 94 | LR: 1.64e-4 | Loss[t,1,2,3]: 8.2231 | 4.672 | 4.7143 | 4.7759
➡️ PN 1: c1 22.6487 |  c2 11.3831 |  cb 0.0078 |  cq 22.627 |  ce 0.0078 |  cg 11.3137
➡️ PN 2: mean 11.3165 | max 11.5084 | min 11.1283 |  qu 11.3001
➡️ Step 95 | LR: 1.66e-4 | Loss[t,1,2,3]: 8.2087 | 4.6621 | 4.7073 | 4.7719
➡️ PN 1: c1 22.6486 |  c2 11.383 |  cb 0.008 |  cq 22.627 |  ce 0.008 |  cg 11.3137
➡️ PN 2: mean 11.3165 | max 11.5084 | min 11.1283 |  qu 11.3001
➡️ Step 96 | LR: 1.68e-4 | Loss[t,1,2,3]: 8.2083 | 4.6616 | 4.7075 | 4.7721
➡️ PN 1: c1 22.6485 |  c2 11.383 |  cb 0.0081 |  cq 22.627 |  ce 0.0081 |  cg 11.3137
➡️ PN 2: mean 11.3165 | max 11.5083 | min 11.1283 |  qu 11.3001
➡️ Step 97 | LR: 1.7e-4 | Loss[t,1,2,3]: 8.1921 | 4.6499 | 4.7003 | 4.7683
➡️ PN 1: c1 22.6483 |  c2 11.383 |  cb 0.0083 |  cq 22.6269 |  ce 0.0083 |  cg 11.3137
➡️ PN 2: mean 11.3165 | max 11.5083 | min 11.1283 |  qu 11.3001
➡️ Step 98 | LR: 1.71e-4 | Loss[t,1,2,3]: 8.1766 | 4.6391 | 4.6926 | 4.765
➡️ PN 1: c1 22.6482 |  c2 11.3829 |  cb 0.0085 |  cq 22.6269 |  ce 0.0085 |  cg 11.3137
➡️ PN 2: mean 11.3165 | max 11.5083 | min 11.1282 |  qu 11.3001
➡️ Step 99 | LR: 1.73e-4 | Loss[t,1,2,3]: 8.1681 | 4.6329 | 4.6889 | 4.7632
➡️ PN 1: c1 22.648 |  c2 11.3829 |  cb 0.0087 |  cq 22.6269 |  ce 0.0087 |  cg 11.3137
➡️ PN 2: mean 11.3164 | max 11.5083 | min 11.1282 |  qu 11.3001
➡️ Step 100 | LR: 1.75e-4 | Loss[t,1,2,3]: 8.1688 | 4.634 | 4.6883 | 4.7625
➡️ PN 1: c1 22.6479 |  c2 11.3828 |  cb 0.0088 |  cq 22.6269 |  ce 0.0088 |  cg 11.3137
➡️ PN 2: mean 11.3164 | max 11.5083 | min 11.1282 |  qu 11.3001
Checkpoint reached! Saving Step 100...
➡️ Step 101 | LR: 1.77e-4 | Loss[t,1,2,3]: 8.1624 | 4.6293 | 4.6858 | 4.7609
➡️ PN 1: c1 22.6477 |  c2 11.3828 |  cb 0.009 |  cq 22.6269 |  ce 0.009 |  cg 11.3137
➡️ PN 2: mean 11.3164 | max 11.5083 | min 11.1281 |  qu 11.3001
➡️ Step 102 | LR: 1.79e-4 | Loss[t,1,2,3]: 8.1481 | 4.6198 | 4.678 | 4.7572
➡️ PN 1: c1 22.6475 |  c2 11.3827 |  cb 0.0092 |  cq 22.6268 |  ce 0.0092 |  cg 11.3137
➡️ PN 2: mean 11.3164 | max 11.5083 | min 11.1281 |  qu 11.3001
➡️ Step 103 | LR: 1.8e-4 | Loss[t,1,2,3]: 8.1305 | 4.607 | 4.6703 | 4.7537
➡️ PN 1: c1 22.6474 |  c2 11.3827 |  cb 0.0094 |  cq 22.6268 |  ce 0.0094 |  cg 11.3137
➡️ PN 2: mean 11.3164 | max 11.5083 | min 11.1281 |  qu 11.3001
➡️ Step 104 | LR: 1.82e-4 | Loss[t,1,2,3]: 8.1228 | 4.6018 | 4.6665 | 4.751
➡️ PN 1: c1 22.6472 |  c2 11.3826 |  cb 0.0095 |  cq 22.6268 |  ce 0.0095 |  cg 11.3137
➡️ PN 2: mean 11.3164 | max 11.5083 | min 11.128 |  qu 11.3001
➡️ Step 105 | LR: 1.84e-4 | Loss[t,1,2,3]: 8.1136 | 4.5954 | 4.6618 | 4.7489
➡️ PN 1: c1 22.647 |  c2 11.3826 |  cb 0.0097 |  cq 22.6268 |  ce 0.0097 |  cg 11.3137
➡️ PN 2: mean 11.3164 | max 11.5082 | min 11.128 |  qu 11.3001
➡️ Step 106 | LR: 1.86e-4 | Loss[t,1,2,3]: 8.0909 | 4.5794 | 4.651 | 4.7438
➡️ PN 1: c1 22.6468 |  c2 11.3825 |  cb 0.0099 |  cq 22.6267 |  ce 0.0099 |  cg 11.3137
➡️ PN 2: mean 11.3164 | max 11.5082 | min 11.128 |  qu 11.3001
➡️ Step 107 | LR: 1.87e-4 | Loss[t,1,2,3]: 8.0839 | 4.5742 | 4.6482 | 4.7422
➡️ PN 1: c1 22.6467 |  c2 11.3825 |  cb 0.0101 |  cq 22.6267 |  ce 0.0101 |  cg 11.3136
➡️ PN 2: mean 11.3164 | max 11.5082 | min 11.1279 |  qu 11.3
➡️ Step 108 | LR: 1.89e-4 | Loss[t,1,2,3]: 8.0747 | 4.5683 | 4.6429 | 4.7395
➡️ PN 1: c1 22.6465 |  c2 11.3824 |  cb 0.0103 |  cq 22.6267 |  ce 0.0103 |  cg 11.3136
➡️ PN 2: mean 11.3164 | max 11.5082 | min 11.1279 |  qu 11.3
➡️ Step 109 | LR: 1.91e-4 | Loss[t,1,2,3]: 8.069 | 4.5643 | 4.6404 | 4.738
➡️ PN 1: c1 22.6463 |  c2 11.3823 |  cb 0.0105 |  cq 22.6267 |  ce 0.0105 |  cg 11.3136
➡️ PN 2: mean 11.3163 | max 11.5082 | min 11.1279 |  qu 11.3
➡️ Step 110 | LR: 1.93e-4 | Loss[t,1,2,3]: 8.0608 | 4.5583 | 4.6369 | 4.7363
➡️ PN 1: c1 22.6461 |  c2 11.3823 |  cb 0.0107 |  cq 22.6266 |  ce 0.0107 |  cg 11.3136
➡️ PN 2: mean 11.3163 | max 11.5082 | min 11.1278 |  qu 11.3
➡️ Step 111 | LR: 1.94e-4 | Loss[t,1,2,3]: 8.018 | 4.5281 | 4.6165 | 4.7264
➡️ PN 1: c1 22.6459 |  c2 11.3822 |  cb 0.0109 |  cq 22.6266 |  ce 0.0109 |  cg 11.3136
➡️ PN 2: mean 11.3163 | max 11.5082 | min 11.1278 |  qu 11.3
➡️ Step 112 | LR: 1.96e-4 | Loss[t,1,2,3]: 8.0328 | 4.539 | 4.6232 | 4.7289
➡️ PN 1: c1 22.6457 |  c2 11.3821 |  cb 0.0111 |  cq 22.6266 |  ce 0.0111 |  cg 11.3136
➡️ PN 2: mean 11.3163 | max 11.5082 | min 11.1277 |  qu 11.3
➡️ Step 113 | LR: 1.98e-4 | Loss[t,1,2,3]: 8.0227 | 4.532 | 4.6182 | 4.7265
➡️ PN 1: c1 22.6455 |  c2 11.382 |  cb 0.0113 |  cq 22.6265 |  ce 0.0113 |  cg 11.3136
➡️ PN 2: mean 11.3163 | max 11.5081 | min 11.1277 |  qu 11.2999
➡️ Step 114 | LR: 1.99e-4 | Loss[t,1,2,3]: 8.0011 | 4.5168 | 4.6079 | 4.7212
➡️ PN 1: c1 22.6453 |  c2 11.3819 |  cb 0.0115 |  cq 22.6265 |  ce 0.0115 |  cg 11.3136
➡️ PN 2: mean 11.3163 | max 11.5081 | min 11.1277 |  qu 11.2999
➡️ Step 115 | LR: 2.01e-4 | Loss[t,1,2,3]: 7.9889 | 4.5084 | 4.6019 | 4.7184
➡️ PN 1: c1 22.6451 |  c2 11.3818 |  cb 0.0117 |  cq 22.6265 |  ce 0.0117 |  cg 11.3136
➡️ PN 2: mean 11.3163 | max 11.5081 | min 11.1276 |  qu 11.2999
➡️ Step 116 | LR: 2.03e-4 | Loss[t,1,2,3]: 7.9797 | 4.5023 | 4.5972 | 4.7154
➡️ PN 1: c1 22.6449 |  c2 11.3817 |  cb 0.0119 |  cq 22.6264 |  ce 0.0119 |  cg 11.3136
➡️ PN 2: mean 11.3163 | max 11.5081 | min 11.1276 |  qu 11.2999
➡️ Step 117 | LR: 2.05e-4 | Loss[t,1,2,3]: 7.9662 | 4.4927 | 4.5907 | 4.7123
➡️ PN 1: c1 22.6446 |  c2 11.3816 |  cb 0.0121 |  cq 22.6264 |  ce 0.0121 |  cg 11.3136
➡️ PN 2: mean 11.3162 | max 11.5081 | min 11.1276 |  qu 11.2998
➡️ Step 118 | LR: 2.06e-4 | Loss[t,1,2,3]: 7.9598 | 4.4885 | 4.5875 | 4.7103
➡️ PN 1: c1 22.6444 |  c2 11.3815 |  cb 0.0123 |  cq 22.6264 |  ce 0.0123 |  cg 11.3136
➡️ PN 2: mean 11.3162 | max 11.5081 | min 11.1275 |  qu 11.2998
➡️ Step 119 | LR: 2.08e-4 | Loss[t,1,2,3]: 7.951 | 4.4823 | 4.5833 | 4.7083
➡️ PN 1: c1 22.6442 |  c2 11.3814 |  cb 0.0125 |  cq 22.6263 |  ce 0.0125 |  cg 11.3135
➡️ PN 2: mean 11.3162 | max 11.508 | min 11.1275 |  qu 11.2998
➡️ Step 120 | LR: 2.1e-4 | Loss[t,1,2,3]: 7.9317 | 4.4693 | 4.5732 | 4.7032
➡️ PN 1: c1 22.644 |  c2 11.3813 |  cb 0.0127 |  cq 22.6263 |  ce 0.0127 |  cg 11.3135
➡️ PN 2: mean 11.3162 | max 11.508 | min 11.1274 |  qu 11.2998
➡️ Step 121 | LR: 2.12e-4 | Loss[t,1,2,3]: 7.926 | 4.4648 | 4.5712 | 4.7022
➡️ PN 1: c1 22.6437 |  c2 11.3812 |  cb 0.0129 |  cq 22.6263 |  ce 0.0129 |  cg 11.3135
➡️ PN 2: mean 11.3162 | max 11.508 | min 11.1274 |  qu 11.2997
➡️ Step 122 | LR: 2.13e-4 | Loss[t,1,2,3]: 7.9123 | 4.4555 | 4.5642 | 4.6985
➡️ PN 1: c1 22.6435 |  c2 11.3811 |  cb 0.0131 |  cq 22.6262 |  ce 0.0131 |  cg 11.3135
➡️ PN 2: mean 11.3162 | max 11.508 | min 11.1273 |  qu 11.2997
➡️ Step 123 | LR: 2.15e-4 | Loss[t,1,2,3]: 7.8982 | 4.446 | 4.5573 | 4.6943
➡️ PN 1: c1 22.6432 |  c2 11.381 |  cb 0.0133 |  cq 22.6262 |  ce 0.0133 |  cg 11.3135
➡️ PN 2: mean 11.3162 | max 11.5079 | min 11.1273 |  qu 11.2997
➡️ Step 124 | LR: 2.17e-4 | Loss[t,1,2,3]: 7.8738 | 4.4292 | 4.5449 | 4.6886
➡️ PN 1: c1 22.643 |  c2 11.3809 |  cb 0.0135 |  cq 22.6262 |  ce 0.0135 |  cg 11.3135
➡️ PN 2: mean 11.3162 | max 11.5079 | min 11.1273 |  qu 11.2996
➡️ Step 125 | LR: 2.19e-4 | Loss[t,1,2,3]: 7.8796 | 4.4332 | 4.5479 | 4.6899
➡️ PN 1: c1 22.6427 |  c2 11.3807 |  cb 0.0138 |  cq 22.6261 |  ce 0.0138 |  cg 11.3135
➡️ PN 2: mean 11.3161 | max 11.5079 | min 11.1272 |  qu 11.2996
➡️ Step 126 | LR: 2.2e-4 | Loss[t,1,2,3]: 7.8563 | 4.4173 | 4.5362 | 4.6837
➡️ PN 1: c1 22.6425 |  c2 11.3806 |  cb 0.014 |  cq 22.6261 |  ce 0.014 |  cg 11.3135
➡️ PN 2: mean 11.3161 | max 11.5079 | min 11.1272 |  qu 11.2995
➡️ Step 127 | LR: 2.22e-4 | Loss[t,1,2,3]: 7.842 | 4.4076 | 4.5284 | 4.6805
➡️ PN 1: c1 22.6422 |  c2 11.3805 |  cb 0.0142 |  cq 22.626 |  ce 0.0142 |  cg 11.3135
➡️ PN 2: mean 11.3161 | max 11.5079 | min 11.1271 |  qu 11.2995
➡️ Step 128 | LR: 2.24e-4 | Loss[t,1,2,3]: 7.7827 | 4.3657 | 4.5006 | 4.6672
➡️ PN 1: c1 22.642 |  c2 11.3803 |  cb 0.0144 |  cq 22.626 |  ce 0.0144 |  cg 11.3135
➡️ PN 2: mean 11.3161 | max 11.5079 | min 11.1271 |  qu 11.2995
➡️ Step 129 | LR: 2.26e-4 | Loss[t,1,2,3]: 7.7867 | 4.3695 | 4.5012 | 4.6664
➡️ PN 1: c1 22.6417 |  c2 11.3802 |  cb 0.0146 |  cq 22.6259 |  ce 0.0146 |  cg 11.3134
➡️ PN 2: mean 11.3161 | max 11.5079 | min 11.127 |  qu 11.2994
➡️ Step 130 | LR: 2.28e-4 | Loss[t,1,2,3]: 7.764 | 4.3531 | 4.4912 | 4.6611
➡️ PN 1: c1 22.6414 |  c2 11.38 |  cb 0.0149 |  cq 22.6259 |  ce 0.0149 |  cg 11.3134
➡️ PN 2: mean 11.3161 | max 11.5079 | min 11.127 |  qu 11.2994
➡️ Step 131 | LR: 2.29e-4 | Loss[t,1,2,3]: 7.7595 | 4.3505 | 4.4883 | 4.6593
➡️ PN 1: c1 22.6412 |  c2 11.3799 |  cb 0.0151 |  cq 22.6259 |  ce 0.0151 |  cg 11.3134
➡️ PN 2: mean 11.316 | max 11.5079 | min 11.127 |  qu 11.2993
➡️ Step 132 | LR: 2.31e-4 | Loss[t,1,2,3]: 7.7157 | 4.3203 | 4.4668 | 4.6481
➡️ PN 1: c1 22.6409 |  c2 11.3797 |  cb 0.0153 |  cq 22.6258 |  ce 0.0153 |  cg 11.3134
➡️ PN 2: mean 11.316 | max 11.5079 | min 11.1269 |  qu 11.2993
➡️ Step 133 | LR: 2.33e-4 | Loss[t,1,2,3]: 7.6993 | 4.3094 | 4.4581 | 4.6433
➡️ PN 1: c1 22.6406 |  c2 11.3795 |  cb 0.0155 |  cq 22.6258 |  ce 0.0156 |  cg 11.3134
➡️ PN 2: mean 11.316 | max 11.5079 | min 11.1269 |  qu 11.2992
➡️ Step 134 | LR: 2.35e-4 | Loss[t,1,2,3]: 7.6518 | 4.2754 | 4.436 | 4.6333
➡️ PN 1: c1 22.6404 |  c2 11.3793 |  cb 0.0158 |  cq 22.6257 |  ce 0.0158 |  cg 11.3134
➡️ PN 2: mean 11.316 | max 11.5079 | min 11.1268 |  qu 11.2992
➡️ Step 135 | LR: 2.36e-4 | Loss[t,1,2,3]: 7.7009 | 4.3106 | 4.4587 | 4.6437
➡️ PN 1: c1 22.6401 |  c2 11.3792 |  cb 0.016 |  cq 22.6257 |  ce 0.016 |  cg 11.3134
➡️ PN 2: mean 11.316 | max 11.5079 | min 11.1268 |  qu 11.2991
➡️ Step 136 | LR: 2.38e-4 | Loss[t,1,2,3]: 7.675 | 4.2924 | 4.4461 | 4.6378
➡️ PN 1: c1 22.6398 |  c2 11.379 |  cb 0.0162 |  cq 22.6256 |  ce 0.0163 |  cg 11.3134
➡️ PN 2: mean 11.316 | max 11.5079 | min 11.1267 |  qu 11.2991
➡️ Step 137 | LR: 2.4e-4 | Loss[t,1,2,3]: 7.6956 | 4.3077 | 4.4552 | 4.6413
➡️ PN 1: c1 22.6395 |  c2 11.3788 |  cb 0.0165 |  cq 22.6256 |  ce 0.0165 |  cg 11.3134
➡️ PN 2: mean 11.316 | max 11.5079 | min 11.1267 |  qu 11.299
➡️ Step 138 | LR: 2.41e-4 | Loss[t,1,2,3]: 7.6781 | 4.2954 | 4.4468 | 4.637
➡️ PN 1: c1 22.6392 |  c2 11.3786 |  cb 0.0167 |  cq 22.6255 |  ce 0.0167 |  cg 11.3133
➡️ PN 2: mean 11.3159 | max 11.5079 | min 11.1266 |  qu 11.2989
➡️ Step 139 | LR: 2.43e-4 | Loss[t,1,2,3]: 7.6143 | 4.2513 | 4.4153 | 4.6213
➡️ PN 1: c1 22.6389 |  c2 11.3784 |  cb 0.017 |  cq 22.6255 |  ce 0.017 |  cg 11.3133
➡️ PN 2: mean 11.3159 | max 11.5079 | min 11.1266 |  qu 11.2989
➡️ Step 140 | LR: 2.45e-4 | Loss[t,1,2,3]: 7.6036 | 4.244 | 4.41 | 4.6185
➡️ PN 1: c1 22.6386 |  c2 11.3782 |  cb 0.0172 |  cq 22.6254 |  ce 0.0172 |  cg 11.3133
➡️ PN 2: mean 11.3159 | max 11.5079 | min 11.1265 |  qu 11.2988
➡️ Step 141 | LR: 2.47e-4 | Loss[t,1,2,3]: 7.5849 | 4.2311 | 4.4005 | 4.6143
➡️ PN 1: c1 22.6383 |  c2 11.378 |  cb 0.0174 |  cq 22.6253 |  ce 0.0175 |  cg 11.3133
➡️ PN 2: mean 11.3159 | max 11.5079 | min 11.1265 |  qu 11.2988
➡️ Step 142 | LR: 2.48e-4 | Loss[t,1,2,3]: 7.6066 | 4.247 | 4.41 | 4.6184
➡️ PN 1: c1 22.638 |  c2 11.3778 |  cb 0.0177 |  cq 22.6253 |  ce 0.0177 |  cg 11.3133
➡️ PN 2: mean 11.3159 | max 11.5079 | min 11.1264 |  qu 11.2987
➡️ Step 143 | LR: 2.5e-4 | Loss[t,1,2,3]: 7.5605 | 4.2151 | 4.3879 | 4.6059
➡️ PN 1: c1 22.6376 |  c2 11.3776 |  cb 0.0179 |  cq 22.6252 |  ce 0.0179 |  cg 11.3133
➡️ PN 2: mean 11.3159 | max 11.5079 | min 11.1264 |  qu 11.2986
➡️ Step 144 | LR: 2.52e-4 | Loss[t,1,2,3]: 7.5176 | 4.1857 | 4.3663 | 4.5951
➡️ PN 1: c1 22.6373 |  c2 11.3774 |  cb 0.0182 |  cq 22.6252 |  ce 0.0182 |  cg 11.3133
➡️ PN 2: mean 11.3158 | max 11.5079 | min 11.1263 |  qu 11.2986
➡️ Step 145 | LR: 2.54e-4 | Loss[t,1,2,3]: 7.5386 | 4.2005 | 4.3762 | 4.5998
➡️ PN 1: c1 22.637 |  c2 11.3771 |  cb 0.0184 |  cq 22.6251 |  ce 0.0184 |  cg 11.3132
➡️ PN 2: mean 11.3158 | max 11.5079 | min 11.1263 |  qu 11.2985
➡️ Step 146 | LR: 2.55e-4 | Loss[t,1,2,3]: 7.5217 | 4.1894 | 4.367 | 4.5952
➡️ PN 1: c1 22.6367 |  c2 11.3769 |  cb 0.0187 |  cq 22.625 |  ce 0.0187 |  cg 11.3132
➡️ PN 2: mean 11.3158 | max 11.5079 | min 11.1262 |  qu 11.2984
➡️ Step 147 | LR: 2.57e-4 | Loss[t,1,2,3]: 7.5094 | 4.1812 | 4.3604 | 4.5918
➡️ PN 1: c1 22.6363 |  c2 11.3767 |  cb 0.0189 |  cq 22.625 |  ce 0.0189 |  cg 11.3132
➡️ PN 2: mean 11.3158 | max 11.5079 | min 11.1262 |  qu 11.2984
➡️ Step 148 | LR: 2.59e-4 | Loss[t,1,2,3]: 7.4914 | 4.1687 | 4.3517 | 4.5874
➡️ PN 1: c1 22.636 |  c2 11.3765 |  cb 0.0192 |  cq 22.6249 |  ce 0.0192 |  cg 11.3132
➡️ PN 2: mean 11.3158 | max 11.5079 | min 11.1261 |  qu 11.2983
➡️ Step 149 | LR: 2.61e-4 | Loss[t,1,2,3]: 7.5681 | 4.222 | 4.3895 | 4.6054
➡️ PN 1: c1 22.6356 |  c2 11.3762 |  cb 0.0194 |  cq 22.6248 |  ce 0.0195 |  cg 11.3132
➡️ PN 2: mean 11.3158 | max 11.5079 | min 11.126 |  qu 11.2982
➡️ Step 150 | LR: 2.62e-4 | Loss[t,1,2,3]: 7.4879 | 4.1677 | 4.3483 | 4.5841
➡️ PN 1: c1 22.6353 |  c2 11.376 |  cb 0.0197 |  cq 22.6248 |  ce 0.0197 |  cg 11.3132
➡️ PN 2: mean 11.3157 | max 11.5079 | min 11.126 |  qu 11.2981
Checkpoint reached! Saving Step 150...
➡️ Step 151 | LR: 2.64e-4 | Loss[t,1,2,3]: 7.4523 | 4.1431 | 4.3309 | 4.5751
➡️ PN 1: c1 22.6349 |  c2 11.3757 |  cb 0.02 |  cq 22.6247 |  ce 0.02 |  cg 11.3132
➡️ PN 2: mean 11.3157 | max 11.5079 | min 11.1259 |  qu 11.298
➡️ Step 152 | LR: 2.66e-4 | Loss[t,1,2,3]: 7.4303 | 4.1281 | 4.3196 | 4.5699
➡️ PN 1: c1 22.6346 |  c2 11.3755 |  cb 0.0202 |  cq 22.6246 |  ce 0.0202 |  cg 11.3131
➡️ PN 2: mean 11.3157 | max 11.5079 | min 11.1259 |  qu 11.298
➡️ Step 153 | LR: 2.68e-4 | Loss[t,1,2,3]: 7.4035 | 4.1108 | 4.3049 | 4.5612
➡️ PN 1: c1 22.6342 |  c2 11.3752 |  cb 0.0205 |  cq 22.6246 |  ce 0.0205 |  cg 11.3131
➡️ PN 2: mean 11.3157 | max 11.5079 | min 11.1258 |  qu 11.2979
➡️ Step 154 | LR: 2.69e-4 | Loss[t,1,2,3]: 7.3998 | 4.1079 | 4.3032 | 4.5611
➡️ PN 1: c1 22.6338 |  c2 11.3749 |  cb 0.0207 |  cq 22.6245 |  ce 0.0208 |  cg 11.3131
➡️ PN 2: mean 11.3157 | max 11.5079 | min 11.1257 |  qu 11.2978
➡️ Step 155 | LR: 2.71e-4 | Loss[t,1,2,3]: 7.4088 | 4.1153 | 4.3065 | 4.5613
➡️ PN 1: c1 22.6334 |  c2 11.3747 |  cb 0.021 |  cq 22.6244 |  ce 0.021 |  cg 11.3131
➡️ PN 2: mean 11.3156 | max 11.5079 | min 11.1257 |  qu 11.2977
➡️ Step 156 | LR: 2.73e-4 | Loss[t,1,2,3]: 7.4078 | 4.1149 | 4.3052 | 4.5611
➡️ PN 1: c1 22.633 |  c2 11.3744 |  cb 0.0213 |  cq 22.6243 |  ce 0.0213 |  cg 11.3131
➡️ PN 2: mean 11.3156 | max 11.5079 | min 11.1256 |  qu 11.2976
➡️ Step 157 | LR: 2.75e-4 | Loss[t,1,2,3]: 7.3798 | 4.0963 | 4.2904 | 4.5532
➡️ PN 1: c1 22.6326 |  c2 11.3741 |  cb 0.0215 |  cq 22.6243 |  ce 0.0216 |  cg 11.3131
➡️ PN 2: mean 11.3156 | max 11.5079 | min 11.1256 |  qu 11.2976
➡️ Step 158 | LR: 2.76e-4 | Loss[t,1,2,3]: 7.3085 | 4.0472 | 4.2554 | 4.5342
➡️ PN 1: c1 22.6323 |  c2 11.3739 |  cb 0.0218 |  cq 22.6242 |  ce 0.0218 |  cg 11.313
➡️ PN 2: mean 11.3156 | max 11.5079 | min 11.1255 |  qu 11.2975
➡️ Step 159 | LR: 2.78e-4 | Loss[t,1,2,3]: 7.329 | 4.0617 | 4.2649 | 4.5395
➡️ PN 1: c1 22.6319 |  c2 11.3736 |  cb 0.0221 |  cq 22.6241 |  ce 0.0221 |  cg 11.313
➡️ PN 2: mean 11.3156 | max 11.5079 | min 11.1255 |  qu 11.2974
➡️ Step 160 | LR: 2.8e-4 | Loss[t,1,2,3]: 7.314 | 4.0524 | 4.2559 | 4.5346
➡️ PN 1: c1 22.6314 |  c2 11.3733 |  cb 0.0224 |  cq 22.624 |  ce 0.0224 |  cg 11.313
➡️ PN 2: mean 11.3155 | max 11.5079 | min 11.1254 |  qu 11.2973
➡️ Step 161 | LR: 2.82e-4 | Loss[t,1,2,3]: 7.3007 | 4.0433 | 4.2492 | 4.5311
➡️ PN 1: c1 22.631 |  c2 11.373 |  cb 0.0226 |  cq 22.624 |  ce 0.0227 |  cg 11.313
➡️ PN 2: mean 11.3155 | max 11.5079 | min 11.1253 |  qu 11.2972
➡️ Step 162 | LR: 2.84e-4 | Loss[t,1,2,3]: 7.2912 | 4.0375 | 4.2438 | 4.5275
➡️ PN 1: c1 22.6306 |  c2 11.3727 |  cb 0.0229 |  cq 22.6239 |  ce 0.0229 |  cg 11.313
➡️ PN 2: mean 11.3155 | max 11.5079 | min 11.1253 |  qu 11.2972
➡️ Step 163 | LR: 2.85e-4 | Loss[t,1,2,3]: 7.3045 | 4.0474 | 4.2494 | 4.5295
➡️ PN 1: c1 22.6302 |  c2 11.3724 |  cb 0.0232 |  cq 22.6238 |  ce 0.0232 |  cg 11.3129
➡️ PN 2: mean 11.3155 | max 11.5079 | min 11.1252 |  qu 11.2971
➡️ Step 164 | LR: 2.87e-4 | Loss[t,1,2,3]: 7.2569 | 4.0152 | 4.2247 | 4.5176
➡️ PN 1: c1 22.6298 |  c2 11.3721 |  cb 0.0235 |  cq 22.6237 |  ce 0.0235 |  cg 11.3129
➡️ PN 2: mean 11.3155 | max 11.5079 | min 11.1251 |  qu 11.297
➡️ Step 165 | LR: 2.89e-4 | Loss[t,1,2,3]: 7.2481 | 4.01 | 4.2197 | 4.5131
➡️ PN 1: c1 22.6294 |  c2 11.3718 |  cb 0.0237 |  cq 22.6236 |  ce 0.0238 |  cg 11.3129
➡️ PN 2: mean 11.3154 | max 11.5079 | min 11.1251 |  qu 11.2969
➡️ Step 166 | LR: 2.9e-4 | Loss[t,1,2,3]: 7.2235 | 3.9942 | 4.2058 | 4.5054
➡️ PN 1: c1 22.6289 |  c2 11.3715 |  cb 0.024 |  cq 22.6235 |  ce 0.024 |  cg 11.3129
➡️ PN 2: mean 11.3154 | max 11.5079 | min 11.125 |  qu 11.2968
➡️ Step 167 | LR: 2.92e-4 | Loss[t,1,2,3]: 7.234 | 4.0012 | 4.2113 | 4.5086
➡️ PN 1: c1 22.6285 |  c2 11.3712 |  cb 0.0243 |  cq 22.6234 |  ce 0.0243 |  cg 11.3128
➡️ PN 2: mean 11.3154 | max 11.5079 | min 11.125 |  qu 11.2967
➡️ Step 168 | LR: 2.94e-4 | Loss[t,1,2,3]: 7.2098 | 3.9859 | 4.1972 | 4.5012
➡️ PN 1: c1 22.6281 |  c2 11.3709 |  cb 0.0246 |  cq 22.6234 |  ce 0.0246 |  cg 11.3128
➡️ PN 2: mean 11.3154 | max 11.5079 | min 11.1249 |  qu 11.2966
➡️ Step 169 | LR: 2.96e-4 | Loss[t,1,2,3]: 7.2427 | 4.0088 | 4.2133 | 4.5089
➡️ PN 1: c1 22.6276 |  c2 11.3705 |  cb 0.0249 |  cq 22.6233 |  ce 0.0249 |  cg 11.3128
➡️ PN 2: mean 11.3154 | max 11.5079 | min 11.1248 |  qu 11.2965
➡️ Step 170 | LR: 2.97e-4 | Loss[t,1,2,3]: 7.2051 | 3.9831 | 4.194 | 4.4998
➡️ PN 1: c1 22.6272 |  c2 11.3702 |  cb 0.0251 |  cq 22.6232 |  ce 0.0252 |  cg 11.3128
➡️ PN 2: mean 11.3153 | max 11.5079 | min 11.1248 |  qu 11.2964
➡️ Step 171 | LR: 2.99e-4 | Loss[t,1,2,3]: 7.2156 | 3.9921 | 4.1972 | 4.4995
➡️ PN 1: c1 22.6267 |  c2 11.3699 |  cb 0.0254 |  cq 22.6231 |  ce 0.0255 |  cg 11.3127
➡️ PN 2: mean 11.3153 | max 11.5079 | min 11.1247 |  qu 11.2963
➡️ Step 172 | LR: 3.01e-4 | Loss[t,1,2,3]: 7.2147 | 3.9921 | 4.1959 | 4.4985
➡️ PN 1: c1 22.6263 |  c2 11.3696 |  cb 0.0257 |  cq 22.623 |  ce 0.0258 |  cg 11.3127
➡️ PN 2: mean 11.3153 | max 11.5079 | min 11.1246 |  qu 11.2962
➡️ Step 173 | LR: 3.03e-4 | Loss[t,1,2,3]: 7.1274 | 3.9316 | 4.1534 | 4.4766
➡️ PN 1: c1 22.6258 |  c2 11.3692 |  cb 0.026 |  cq 22.6229 |  ce 0.0261 |  cg 11.3127
➡️ PN 2: mean 11.3153 | max 11.5079 | min 11.1246 |  qu 11.2962
➡️ Step 174 | LR: 3.04e-4 | Loss[t,1,2,3]: 7.1628 | 3.9581 | 4.1675 | 4.4836
➡️ PN 1: c1 22.6253 |  c2 11.3689 |  cb 0.0263 |  cq 22.6228 |  ce 0.0263 |  cg 11.3127
➡️ PN 2: mean 11.3153 | max 11.5079 | min 11.1245 |  qu 11.2961
➡️ Step 175 | LR: 3.06e-4 | Loss[t,1,2,3]: 7.1285 | 3.9335 | 4.152 | 4.4757
➡️ PN 1: c1 22.6249 |  c2 11.3685 |  cb 0.0266 |  cq 22.6227 |  ce 0.0266 |  cg 11.3126
➡️ PN 2: mean 11.3152 | max 11.5079 | min 11.1244 |  qu 11.296
➡️ Step 176 | LR: 3.08e-4 | Loss[t,1,2,3]: 7.0939 | 3.9122 | 4.1314 | 4.4638
➡️ PN 1: c1 22.6244 |  c2 11.3682 |  cb 0.0269 |  cq 22.6226 |  ce 0.0269 |  cg 11.3126
➡️ PN 2: mean 11.3152 | max 11.5079 | min 11.1243 |  qu 11.2959
➡️ Step 177 | LR: 3.1e-4 | Loss[t,1,2,3]: 7.0638 | 3.8908 | 4.1177 | 4.4566
➡️ PN 1: c1 22.6239 |  c2 11.3678 |  cb 0.0272 |  cq 22.6225 |  ce 0.0272 |  cg 11.3126
➡️ PN 2: mean 11.3152 | max 11.5079 | min 11.1243 |  qu 11.2958
➡️ Step 178 | LR: 3.11e-4 | Loss[t,1,2,3]: 7.0678 | 3.8951 | 4.1174 | 4.4559
➡️ PN 1: c1 22.6235 |  c2 11.3675 |  cb 0.0274 |  cq 22.6224 |  ce 0.0275 |  cg 11.3126
➡️ PN 2: mean 11.3152 | max 11.5079 | min 11.1242 |  qu 11.2957
➡️ Step 179 | LR: 3.13e-4 | Loss[t,1,2,3]: 7.0985 | 3.917 | 4.1315 | 4.4627
➡️ PN 1: c1 22.623 |  c2 11.3671 |  cb 0.0277 |  cq 22.6223 |  ce 0.0278 |  cg 11.3125
➡️ PN 2: mean 11.3152 | max 11.5079 | min 11.1241 |  qu 11.2956
➡️ Step 180 | LR: 3.15e-4 | Loss[t,1,2,3]: 7.0756 | 3.9018 | 4.1196 | 4.4559
➡️ PN 1: c1 22.6225 |  c2 11.3668 |  cb 0.028 |  cq 22.6222 |  ce 0.0281 |  cg 11.3125
➡️ PN 2: mean 11.3151 | max 11.5079 | min 11.1241 |  qu 11.2955
➡️ Step 181 | LR: 3.17e-4 | Loss[t,1,2,3]: 7.0658 | 3.8958 | 4.1139 | 4.4522
➡️ PN 1: c1 22.622 |  c2 11.3664 |  cb 0.0283 |  cq 22.6221 |  ce 0.0284 |  cg 11.3125
➡️ PN 2: mean 11.3151 | max 11.5079 | min 11.124 |  qu 11.2954
➡️ Step 182 | LR: 3.18e-4 | Loss[t,1,2,3]: 7.0477 | 3.8842 | 4.1038 | 4.4464
➡️ PN 1: c1 22.6216 |  c2 11.3661 |  cb 0.0286 |  cq 22.622 |  ce 0.0287 |  cg 11.3124
➡️ PN 2: mean 11.3151 | max 11.5079 | min 11.1239 |  qu 11.2953
➡️ Step 183 | LR: 3.2e-4 | Loss[t,1,2,3]: 7.0354 | 3.8766 | 4.0962 | 4.4427
➡️ PN 1: c1 22.6211 |  c2 11.3657 |  cb 0.0289 |  cq 22.6219 |  ce 0.029 |  cg 11.3124
➡️ PN 2: mean 11.3151 | max 11.5079 | min 11.1239 |  qu 11.2952
➡️ Step 184 | LR: 3.22e-4 | Loss[t,1,2,3]: 7.0114 | 3.8615 | 4.0822 | 4.4349
➡️ PN 1: c1 22.6206 |  c2 11.3653 |  cb 0.0292 |  cq 22.6218 |  ce 0.0293 |  cg 11.3124
➡️ PN 2: mean 11.315 | max 11.5079 | min 11.1238 |  qu 11.2952
➡️ Step 185 | LR: 3.24e-4 | Loss[t,1,2,3]: 7.0125 | 3.8625 | 4.0827 | 4.4345
➡️ PN 1: c1 22.6201 |  c2 11.365 |  cb 0.0295 |  cq 22.6217 |  ce 0.0296 |  cg 11.3123
➡️ PN 2: mean 11.315 | max 11.5079 | min 11.1237 |  qu 11.2951
➡️ Step 186 | LR: 3.25e-4 | Loss[t,1,2,3]: 6.9558 | 3.8252 | 4.0525 | 4.4174
➡️ PN 1: c1 22.6196 |  c2 11.3646 |  cb 0.0298 |  cq 22.6216 |  ce 0.0299 |  cg 11.3123
➡️ PN 2: mean 11.315 | max 11.5079 | min 11.1237 |  qu 11.295
➡️ Step 187 | LR: 3.27e-4 | Loss[t,1,2,3]: 6.9675 | 3.8324 | 4.0592 | 4.4218
➡️ PN 1: c1 22.6191 |  c2 11.3642 |  cb 0.0301 |  cq 22.6215 |  ce 0.0302 |  cg 11.3123
➡️ PN 2: mean 11.315 | max 11.5079 | min 11.1236 |  qu 11.2949
➡️ Step 188 | LR: 3.29e-4 | Loss[t,1,2,3]: 6.9716 | 3.8366 | 4.0594 | 4.4212
➡️ PN 1: c1 22.6186 |  c2 11.3638 |  cb 0.0304 |  cq 22.6214 |  ce 0.0304 |  cg 11.3123
➡️ PN 2: mean 11.315 | max 11.5079 | min 11.1235 |  qu 11.2948
➡️ Step 189 | LR: 3.31e-4 | Loss[t,1,2,3]: 6.928 | 3.807 | 4.0374 | 4.4091
➡️ PN 1: c1 22.6182 |  c2 11.3634 |  cb 0.0307 |  cq 22.6212 |  ce 0.0307 |  cg 11.3122
➡️ PN 2: mean 11.3149 | max 11.5079 | min 11.1235 |  qu 11.2947
➡️ Step 190 | LR: 3.33e-4 | Loss[t,1,2,3]: 6.9596 | 3.8299 | 4.0517 | 4.4158
➡️ PN 1: c1 22.6177 |  c2 11.363 |  cb 0.031 |  cq 22.6211 |  ce 0.031 |  cg 11.3122
➡️ PN 2: mean 11.3149 | max 11.5079 | min 11.1234 |  qu 11.2946
➡️ Step 191 | LR: 3.34e-4 | Loss[t,1,2,3]: 7.2026 | 4.0001 | 4.1683 | 4.4734
➡️ PN 1: c1 22.6172 |  c2 11.3627 |  cb 0.0313 |  cq 22.621 |  ce 0.0313 |  cg 11.3122
➡️ PN 2: mean 11.3149 | max 11.5079 | min 11.1233 |  qu 11.2945
➡️ Step 192 | LR: 3.36e-4 | Loss[t,1,2,3]: 6.9466 | 3.8225 | 4.0428 | 4.4108
➡️ PN 1: c1 22.6167 |  c2 11.3623 |  cb 0.0316 |  cq 22.6209 |  ce 0.0316 |  cg 11.3121
➡️ PN 2: mean 11.3149 | max 11.5078 | min 11.1233 |  qu 11.2944
➡️ Step 193 | LR: 3.38e-4 | Loss[t,1,2,3]: 6.8844 | 3.7797 | 4.0126 | 4.3934
➡️ PN 1: c1 22.6162 |  c2 11.3619 |  cb 0.0319 |  cq 22.6208 |  ce 0.032 |  cg 11.3121
➡️ PN 2: mean 11.3149 | max 11.5078 | min 11.1232 |  qu 11.2943
➡️ Step 194 | LR: 3.4e-4 | Loss[t,1,2,3]: 6.8636 | 3.7666 | 4.0005 | 4.3869
➡️ PN 1: c1 22.6156 |  c2 11.3614 |  cb 0.0322 |  cq 22.6207 |  ce 0.0323 |  cg 11.3121
➡️ PN 2: mean 11.3148 | max 11.5078 | min 11.1231 |  qu 11.2942
➡️ Step 195 | LR: 3.41e-4 | Loss[t,1,2,3]: 6.8699 | 3.773 | 4.0005 | 4.3866
➡️ PN 1: c1 22.6151 |  c2 11.361 |  cb 0.0325 |  cq 22.6205 |  ce 0.0326 |  cg 11.312
➡️ PN 2: mean 11.3148 | max 11.5078 | min 11.123 |  qu 11.2941
➡️ Step 196 | LR: 3.43e-4 | Loss[t,1,2,3]: 6.8892 | 3.7859 | 4.0108 | 4.3913
➡️ PN 1: c1 22.6146 |  c2 11.3606 |  cb 0.0328 |  cq 22.6204 |  ce 0.0329 |  cg 11.312
➡️ PN 2: mean 11.3148 | max 11.5078 | min 11.123 |  qu 11.294
➡️ Step 197 | LR: 3.45e-4 | Loss[t,1,2,3]: 6.9586 | 3.8337 | 4.0455 | 4.4085
➡️ PN 1: c1 22.6141 |  c2 11.3602 |  cb 0.0331 |  cq 22.6203 |  ce 0.0332 |  cg 11.312
➡️ PN 2: mean 11.3148 | max 11.5078 | min 11.1229 |  qu 11.2939
➡️ Step 198 | LR: 3.47e-4 | Loss[t,1,2,3]: 6.7795 | 3.7114 | 3.9551 | 4.362
➡️ PN 1: c1 22.6136 |  c2 11.3597 |  cb 0.0334 |  cq 22.6202 |  ce 0.0335 |  cg 11.3119
➡️ PN 2: mean 11.3147 | max 11.5078 | min 11.1228 |  qu 11.2938
➡️ Step 199 | LR: 3.48e-4 | Loss[t,1,2,3]: 6.8275 | 3.7446 | 3.9788 | 4.3739
➡️ PN 1: c1 22.6131 |  c2 11.3593 |  cb 0.0337 |  cq 22.6201 |  ce 0.0338 |  cg 11.3119
➡️ PN 2: mean 11.3147 | max 11.5078 | min 11.1227 |  qu 11.2936
➡️ Step 200 | LR: 3.5e-4 | Loss[t,1,2,3]: 6.7701 | 3.7074 | 3.947 | 4.3568
➡️ PN 1: c1 22.6126 |  c2 11.3588 |  cb 0.034 |  cq 22.6199 |  ce 0.0341 |  cg 11.3119
➡️ PN 2: mean 11.3147 | max 11.5078 | min 11.1227 |  qu 11.2935
Checkpoint reached! Saving Step 200...
➡️ Step 201 | LR: 3.52e-4 | Loss[t,1,2,3]: 6.7428 | 3.688 | 3.9344 | 4.3504
➡️ PN 1: c1 22.612 |  c2 11.3583 |  cb 0.0343 |  cq 22.6198 |  ce 0.0344 |  cg 11.3118
➡️ PN 2: mean 11.3147 | max 11.5078 | min 11.1226 |  qu 11.2934
➡️ Step 202 | LR: 3.53e-4 | Loss[t,1,2,3]: 6.7656 | 3.7057 | 3.9431 | 4.3534
➡️ PN 1: c1 22.6115 |  c2 11.3579 |  cb 0.0346 |  cq 22.6197 |  ce 0.0347 |  cg 11.3118
➡️ PN 2: mean 11.3147 | max 11.5078 | min 11.1225 |  qu 11.2933
➡️ Step 203 | LR: 3.55e-4 | Loss[t,1,2,3]: 6.7801 | 3.7155 | 3.9509 | 4.3568
➡️ PN 1: c1 22.611 |  c2 11.3574 |  cb 0.0349 |  cq 22.6195 |  ce 0.0351 |  cg 11.3117
➡️ PN 2: mean 11.3146 | max 11.5078 | min 11.1224 |  qu 11.2932
➡️ Step 204 | LR: 3.57e-4 | Loss[t,1,2,3]: 6.7442 | 3.6907 | 3.9331 | 4.348
➡️ PN 1: c1 22.6104 |  c2 11.3569 |  cb 0.0353 |  cq 22.6194 |  ce 0.0354 |  cg 11.3117
➡️ PN 2: mean 11.3146 | max 11.5078 | min 11.1224 |  qu 11.2931
➡️ Step 205 | LR: 3.59e-4 | Loss[t,1,2,3]: 6.7557 | 3.7005 | 3.9365 | 4.3477
➡️ PN 1: c1 22.6099 |  c2 11.3565 |  cb 0.0356 |  cq 22.6193 |  ce 0.0357 |  cg 11.3117
➡️ PN 2: mean 11.3146 | max 11.5078 | min 11.1223 |  qu 11.2929
➡️ Step 206 | LR: 3.6e-4 | Loss[t,1,2,3]: 6.7745 | 3.7139 | 3.945 | 4.3526
➡️ PN 1: c1 22.6093 |  c2 11.356 |  cb 0.0359 |  cq 22.6191 |  ce 0.036 |  cg 11.3116
➡️ PN 2: mean 11.3146 | max 11.5078 | min 11.1222 |  qu 11.2928
➡️ Step 207 | LR: 3.62e-4 | Loss[t,1,2,3]: 6.7021 | 3.6656 | 3.9069 | 4.3318
➡️ PN 1: c1 22.6088 |  c2 11.3555 |  cb 0.0362 |  cq 22.619 |  ce 0.0363 |  cg 11.3116
➡️ PN 2: mean 11.3145 | max 11.5078 | min 11.1221 |  qu 11.2927
➡️ Step 208 | LR: 3.64e-4 | Loss[t,1,2,3]: 6.6441 | 3.627 | 3.8767 | 4.3152
➡️ PN 1: c1 22.6082 |  c2 11.355 |  cb 0.0365 |  cq 22.6189 |  ce 0.0367 |  cg 11.3116
➡️ PN 2: mean 11.3145 | max 11.5078 | min 11.1221 |  qu 11.2926
➡️ Step 209 | LR: 3.66e-4 | Loss[t,1,2,3]: 6.7026 | 3.667 | 3.9057 | 4.3309
➡️ PN 1: c1 22.6077 |  c2 11.3545 |  cb 0.0368 |  cq 22.6187 |  ce 0.037 |  cg 11.3115
➡️ PN 2: mean 11.3145 | max 11.5078 | min 11.122 |  qu 11.2925
➡️ Step 210 | LR: 3.67e-4 | Loss[t,1,2,3]: 6.6898 | 3.6593 | 3.8984 | 4.3252
➡️ PN 1: c1 22.6071 |  c2 11.3539 |  cb 0.0372 |  cq 22.6186 |  ce 0.0373 |  cg 11.3115
➡️ PN 2: mean 11.3145 | max 11.5078 | min 11.1219 |  qu 11.2923
➡️ Step 211 | LR: 3.69e-4 | Loss[t,1,2,3]: 6.6157 | 3.609 | 3.8604 | 4.3057
➡️ PN 1: c1 22.6066 |  c2 11.3534 |  cb 0.0375 |  cq 22.6184 |  ce 0.0376 |  cg 11.3114
➡️ PN 2: mean 11.3145 | max 11.5078 | min 11.1218 |  qu 11.2922
➡️ Step 212 | LR: 3.71e-4 | Loss[t,1,2,3]: 6.593 | 3.5953 | 3.8468 | 4.2973
➡️ PN 1: c1 22.606 |  c2 11.3529 |  cb 0.0378 |  cq 22.6183 |  ce 0.038 |  cg 11.3114
➡️ PN 2: mean 11.3144 | max 11.5078 | min 11.1218 |  qu 11.2921
➡️ Step 213 | LR: 3.73e-4 | Loss[t,1,2,3]: 6.6578 | 3.6383 | 3.8813 | 4.3151
➡️ PN 1: c1 22.6055 |  c2 11.3524 |  cb 0.0381 |  cq 22.6181 |  ce 0.0383 |  cg 11.3114
➡️ PN 2: mean 11.3144 | max 11.5078 | min 11.1217 |  qu 11.292
➡️ Step 214 | LR: 3.74e-4 | Loss[t,1,2,3]: 6.6634 | 3.6455 | 3.8799 | 4.3117
➡️ PN 1: c1 22.6049 |  c2 11.3518 |  cb 0.0385 |  cq 22.618 |  ce 0.0387 |  cg 11.3113
➡️ PN 2: mean 11.3144 | max 11.5078 | min 11.1216 |  qu 11.2918
➡️ Step 215 | LR: 3.76e-4 | Loss[t,1,2,3]: 6.6275 | 3.6211 | 3.8615 | 4.3023
➡️ PN 1: c1 22.6043 |  c2 11.3513 |  cb 0.0388 |  cq 22.6178 |  ce 0.039 |  cg 11.3113
➡️ PN 2: mean 11.3144 | max 11.5078 | min 11.1215 |  qu 11.2917
➡️ Step 216 | LR: 3.78e-4 | Loss[t,1,2,3]: 6.6249 | 3.6188 | 3.8607 | 4.3028
➡️ PN 1: c1 22.6038 |  c2 11.3507 |  cb 0.0392 |  cq 22.6177 |  ce 0.0393 |  cg 11.3113
➡️ PN 2: mean 11.3143 | max 11.5078 | min 11.1214 |  qu 11.2916
➡️ Step 217 | LR: 3.8e-4 | Loss[t,1,2,3]: 6.5783 | 3.5893 | 3.8346 | 4.287
➡️ PN 1: c1 22.6032 |  c2 11.3502 |  cb 0.0395 |  cq 22.6175 |  ce 0.0397 |  cg 11.3112
➡️ PN 2: mean 11.3143 | max 11.5078 | min 11.1214 |  qu 11.2914
➡️ Step 218 | LR: 3.82e-4 | Loss[t,1,2,3]: 6.7005 | 3.6735 | 3.8954 | 4.3169
➡️ PN 1: c1 22.6027 |  c2 11.3497 |  cb 0.0398 |  cq 22.6174 |  ce 0.04 |  cg 11.3112
➡️ PN 2: mean 11.3143 | max 11.5078 | min 11.1213 |  qu 11.2913
➡️ Step 219 | LR: 3.83e-4 | Loss[t,1,2,3]: 6.5675 | 3.582 | 3.8292 | 4.2839
➡️ PN 1: c1 22.6021 |  c2 11.3491 |  cb 0.0402 |  cq 22.6172 |  ce 0.0404 |  cg 11.3111
➡️ PN 2: mean 11.3143 | max 11.5078 | min 11.1212 |  qu 11.2912
➡️ Step 220 | LR: 3.85e-4 | Loss[t,1,2,3]: 6.6052 | 3.6086 | 3.8473 | 4.2919
➡️ PN 1: c1 22.6015 |  c2 11.3485 |  cb 0.0405 |  cq 22.6171 |  ce 0.0407 |  cg 11.3111
➡️ PN 2: mean 11.3143 | max 11.5078 | min 11.1211 |  qu 11.291
➡️ Step 221 | LR: 3.87e-4 | Loss[t,1,2,3]: 6.6262 | 3.6249 | 3.8546 | 4.2958
➡️ PN 1: c1 22.601 |  c2 11.348 |  cb 0.0409 |  cq 22.6169 |  ce 0.041 |  cg 11.3111
➡️ PN 2: mean 11.3142 | max 11.5078 | min 11.121 |  qu 11.2909
➡️ Step 222 | LR: 3.89e-4 | Loss[t,1,2,3]: 6.4825 | 3.5273 | 3.7823 | 4.2562
➡️ PN 1: c1 22.6004 |  c2 11.3474 |  cb 0.0412 |  cq 22.6168 |  ce 0.0414 |  cg 11.311
➡️ PN 2: mean 11.3142 | max 11.5078 | min 11.121 |  qu 11.2908
➡️ Step 223 | LR: 3.9e-4 | Loss[t,1,2,3]: 6.5667 | 3.5863 | 3.8226 | 4.2765
➡️ PN 1: c1 22.5998 |  c2 11.3468 |  cb 0.0415 |  cq 22.6166 |  ce 0.0417 |  cg 11.311
➡️ PN 2: mean 11.3142 | max 11.5079 | min 11.1209 |  qu 11.2906
➡️ Step 224 | LR: 3.92e-4 | Loss[t,1,2,3]: 6.5579 | 3.5811 | 3.8175 | 4.2722
➡️ PN 1: c1 22.5993 |  c2 11.3462 |  cb 0.0419 |  cq 22.6164 |  ce 0.0421 |  cg 11.3109
➡️ PN 2: mean 11.3142 | max 11.5079 | min 11.1208 |  qu 11.2905
➡️ Step 225 | LR: 3.94e-4 | Loss[t,1,2,3]: 6.5295 | 3.5621 | 3.8023 | 4.2652
➡️ PN 1: c1 22.5987 |  c2 11.3456 |  cb 0.0422 |  cq 22.6163 |  ce 0.0424 |  cg 11.3109
➡️ PN 2: mean 11.3142 | max 11.5079 | min 11.1207 |  qu 11.2903
➡️ Step 226 | LR: 3.95e-4 | Loss[t,1,2,3]: 6.4976 | 3.5403 | 3.7862 | 4.2568
➡️ PN 1: c1 22.5981 |  c2 11.345 |  cb 0.0425 |  cq 22.6161 |  ce 0.0428 |  cg 11.3109
➡️ PN 2: mean 11.3141 | max 11.5079 | min 11.1206 |  qu 11.2902
➡️ Step 227 | LR: 3.97e-4 | Loss[t,1,2,3]: 6.4838 | 3.5316 | 3.779 | 4.2508
➡️ PN 1: c1 22.5975 |  c2 11.3444 |  cb 0.0429 |  cq 22.6159 |  ce 0.0431 |  cg 11.3108
➡️ PN 2: mean 11.3141 | max 11.5079 | min 11.1206 |  qu 11.29
➡️ Step 228 | LR: 3.99e-4 | Loss[t,1,2,3]: 6.4631 | 3.5191 | 3.766 | 4.2439
➡️ PN 1: c1 22.597 |  c2 11.3438 |  cb 0.0433 |  cq 22.6158 |  ce 0.0435 |  cg 11.3108
➡️ PN 2: mean 11.3141 | max 11.5079 | min 11.1205 |  qu 11.2899
➡️ Step 229 | LR: 4.01e-4 | Loss[t,1,2,3]: 6.4838 | 3.5343 | 3.7755 | 4.2471
➡️ PN 1: c1 22.5964 |  c2 11.3431 |  cb 0.0436 |  cq 22.6156 |  ce 0.0438 |  cg 11.3107
➡️ PN 2: mean 11.3141 | max 11.5079 | min 11.1204 |  qu 11.2897
➡️ Step 230 | LR: 4.02e-4 | Loss[t,1,2,3]: 6.4596 | 3.5191 | 3.7614 | 4.2389
➡️ PN 1: c1 22.5958 |  c2 11.3425 |  cb 0.044 |  cq 22.6154 |  ce 0.0442 |  cg 11.3107
➡️ PN 2: mean 11.3141 | max 11.5079 | min 11.1203 |  qu 11.2896
➡️ Step 231 | LR: 4.04e-4 | Loss[t,1,2,3]: 6.4444 | 3.5097 | 3.7522 | 4.2344
➡️ PN 1: c1 22.5952 |  c2 11.3419 |  cb 0.0443 |  cq 22.6153 |  ce 0.0446 |  cg 11.3106
➡️ PN 2: mean 11.314 | max 11.5079 | min 11.1202 |  qu 11.2894
➡️ Step 232 | LR: 4.06e-4 | Loss[t,1,2,3]: 6.4245 | 3.4976 | 3.7407 | 4.2261
➡️ PN 1: c1 22.5947 |  c2 11.3412 |  cb 0.0447 |  cq 22.6151 |  ce 0.0449 |  cg 11.3106
➡️ PN 2: mean 11.314 | max 11.5079 | min 11.1202 |  qu 11.2893
➡️ Step 233 | LR: 4.08e-4 | Loss[t,1,2,3]: 6.4177 | 3.4928 | 3.7369 | 4.2258
➡️ PN 1: c1 22.5941 |  c2 11.3406 |  cb 0.045 |  cq 22.6149 |  ce 0.0452 |  cg 11.3106
➡️ PN 2: mean 11.314 | max 11.5079 | min 11.1201 |  qu 11.2891
➡️ Step 234 | LR: 4.09e-4 | Loss[t,1,2,3]: 6.3034 | 3.4157 | 3.6788 | 4.1932
➡️ PN 1: c1 22.5935 |  c2 11.3399 |  cb 0.0454 |  cq 22.6147 |  ce 0.0456 |  cg 11.3105
➡️ PN 2: mean 11.314 | max 11.5079 | min 11.12 |  qu 11.2889
➡️ Step 235 | LR: 4.11e-4 | Loss[t,1,2,3]: 6.3798 | 3.469 | 3.7154 | 4.2124
➡️ PN 1: c1 22.5929 |  c2 11.3392 |  cb 0.0457 |  cq 22.6146 |  ce 0.046 |  cg 11.3105
➡️ PN 2: mean 11.3139 | max 11.5079 | min 11.1199 |  qu 11.2888
➡️ Step 236 | LR: 4.13e-4 | Loss[t,1,2,3]: 6.3353 | 3.4406 | 3.6909 | 4.1968
➡️ PN 1: c1 22.5924 |  c2 11.3386 |  cb 0.0461 |  cq 22.6144 |  ce 0.0463 |  cg 11.3104
➡️ PN 2: mean 11.3139 | max 11.5079 | min 11.1198 |  qu 11.2886
➡️ Step 237 | LR: 4.15e-4 | Loss[t,1,2,3]: 6.2898 | 3.41 | 3.6676 | 4.184
➡️ PN 1: c1 22.5918 |  c2 11.3379 |  cb 0.0465 |  cq 22.6142 |  ce 0.0467 |  cg 11.3104
➡️ PN 2: mean 11.3139 | max 11.5079 | min 11.1197 |  qu 11.2884
➡️ Step 238 | LR: 4.16e-4 | Loss[t,1,2,3]: 6.4402 | 3.5139 | 3.7419 | 4.2214
➡️ PN 1: c1 22.5912 |  c2 11.3372 |  cb 0.0468 |  cq 22.614 |  ce 0.0471 |  cg 11.3104
➡️ PN 2: mean 11.3139 | max 11.5079 | min 11.1197 |  qu 11.2883
➡️ Step 239 | LR: 4.18e-4 | Loss[t,1,2,3]: 6.2844 | 3.4089 | 3.6614 | 4.1794
➡️ PN 1: c1 22.5906 |  c2 11.3365 |  cb 0.0472 |  cq 22.6138 |  ce 0.0474 |  cg 11.3103
➡️ PN 2: mean 11.3139 | max 11.5079 | min 11.1196 |  qu 11.2881
➡️ Step 240 | LR: 4.2e-4 | Loss[t,1,2,3]: 6.3226 | 3.4372 | 3.6781 | 4.1852
➡️ PN 1: c1 22.59 |  c2 11.3358 |  cb 0.0476 |  cq 22.6136 |  ce 0.0478 |  cg 11.3103
➡️ PN 2: mean 11.3138 | max 11.5079 | min 11.1195 |  qu 11.2879
➡️ Step 241 | LR: 4.22e-4 | Loss[t,1,2,3]: 6.3937 | 3.4855 | 3.7145 | 4.2036
➡️ PN 1: c1 22.5894 |  c2 11.3351 |  cb 0.0479 |  cq 22.6134 |  ce 0.0482 |  cg 11.3102
➡️ PN 2: mean 11.3138 | max 11.5079 | min 11.1194 |  qu 11.2878
➡️ Step 242 | LR: 4.23e-4 | Loss[t,1,2,3]: 6.4311 | 3.5132 | 3.7303 | 4.2107
➡️ PN 1: c1 22.5889 |  c2 11.3344 |  cb 0.0483 |  cq 22.6133 |  ce 0.0486 |  cg 11.3102
➡️ PN 2: mean 11.3138 | max 11.5079 | min 11.1193 |  qu 11.2876
➡️ Step 243 | LR: 4.25e-4 | Loss[t,1,2,3]: 6.2318 | 3.3777 | 3.6294 | 4.1577
➡️ PN 1: c1 22.5883 |  c2 11.3337 |  cb 0.0487 |  cq 22.6131 |  ce 0.049 |  cg 11.3101
➡️ PN 2: mean 11.3138 | max 11.5079 | min 11.1193 |  qu 11.2875
➡️ Step 244 | LR: 4.27e-4 | Loss[t,1,2,3]: 6.3544 | 3.4626 | 3.6896 | 4.1881
➡️ PN 1: c1 22.5877 |  c2 11.333 |  cb 0.0491 |  cq 22.6129 |  ce 0.0493 |  cg 11.3101
➡️ PN 2: mean 11.3138 | max 11.5079 | min 11.1192 |  qu 11.2873
➡️ Step 245 | LR: 4.29e-4 | Loss[t,1,2,3]: 6.3214 | 3.442 | 3.6703 | 4.177
➡️ PN 1: c1 22.5872 |  c2 11.3323 |  cb 0.0494 |  cq 22.6127 |  ce 0.0497 |  cg 11.31
➡️ PN 2: mean 11.3138 | max 11.5079 | min 11.1191 |  qu 11.2871
➡️ Step 246 | LR: 4.31e-4 | Loss[t,1,2,3]: 6.3441 | 3.4576 | 3.682 | 4.1822
➡️ PN 1: c1 22.5866 |  c2 11.3316 |  cb 0.0498 |  cq 22.6125 |  ce 0.0501 |  cg 11.31
➡️ PN 2: mean 11.3137 | max 11.5078 | min 11.119 |  qu 11.287
➡️ Step 247 | LR: 4.32e-4 | Loss[t,1,2,3]: 6.1688 | 3.3391 | 3.5926 | 4.1338
➡️ PN 1: c1 22.586 |  c2 11.3309 |  cb 0.0502 |  cq 22.6123 |  ce 0.0505 |  cg 11.31
➡️ PN 2: mean 11.3137 | max 11.5078 | min 11.1189 |  qu 11.2868
➡️ Step 248 | LR: 4.34e-4 | Loss[t,1,2,3]: 6.234 | 3.3852 | 3.6229 | 4.1494
➡️ PN 1: c1 22.5854 |  c2 11.3301 |  cb 0.0505 |  cq 22.6121 |  ce 0.0508 |  cg 11.3099
➡️ PN 2: mean 11.3137 | max 11.5078 | min 11.1188 |  qu 11.2866
➡️ Step 249 | LR: 4.36e-4 | Loss[t,1,2,3]: 6.2855 | 3.421 | 3.6485 | 4.1612
➡️ PN 1: c1 22.5848 |  c2 11.3294 |  cb 0.0509 |  cq 22.6119 |  ce 0.0512 |  cg 11.3099
➡️ PN 2: mean 11.3137 | max 11.5078 | min 11.1188 |  qu 11.2864
➡️ Step 250 | LR: 4.38e-4 | Loss[t,1,2,3]: 6.2024 | 3.3668 | 3.6031 | 4.1362
➡️ PN 1: c1 22.5842 |  c2 11.3286 |  cb 0.0513 |  cq 22.6117 |  ce 0.0516 |  cg 11.3098
➡️ PN 2: mean 11.3137 | max 11.5078 | min 11.1187 |  qu 11.2863
Checkpoint reached! Saving Step 250...
➡️ Step 251 | LR: 4.39e-4 | Loss[t,1,2,3]: 6.3079 | 3.4416 | 3.6526 | 4.1599
➡️ PN 1: c1 22.5837 |  c2 11.3279 |  cb 0.0517 |  cq 22.6115 |  ce 0.052 |  cg 11.3098
➡️ PN 2: mean 11.3137 | max 11.5078 | min 11.1186 |  qu 11.2861
➡️ Step 252 | LR: 4.41e-4 | Loss[t,1,2,3]: 6.2888 | 3.4275 | 3.6441 | 4.1569
➡️ PN 1: c1 22.5832 |  c2 11.3272 |  cb 0.052 |  cq 22.6113 |  ce 0.0524 |  cg 11.3097
➡️ PN 2: mean 11.3137 | max 11.5078 | min 11.1185 |  qu 11.286
➡️ Step 253 | LR: 4.43e-4 | Loss[t,1,2,3]: 6.312 | 3.4445 | 3.655 | 4.1598
➡️ PN 1: c1 22.5826 |  c2 11.3264 |  cb 0.0524 |  cq 22.6111 |  ce 0.0527 |  cg 11.3097
➡️ PN 2: mean 11.3136 | max 11.5078 | min 11.1184 |  qu 11.2858
➡️ Step 254 | LR: 4.45e-4 | Loss[t,1,2,3]: 6.2447 | 3.4009 | 3.6186 | 4.1381
➡️ PN 1: c1 22.5821 |  c2 11.3257 |  cb 0.0528 |  cq 22.6109 |  ce 0.0531 |  cg 11.3096
➡️ PN 2: mean 11.3136 | max 11.5078 | min 11.1183 |  qu 11.2856
➡️ Step 255 | LR: 4.46e-4 | Loss[t,1,2,3]: 6.1897 | 3.3645 | 3.5893 | 4.1223
➡️ PN 1: c1 22.5815 |  c2 11.3249 |  cb 0.0532 |  cq 22.6107 |  ce 0.0535 |  cg 11.3096
➡️ PN 2: mean 11.3136 | max 11.5078 | min 11.1183 |  qu 11.2854
➡️ Step 256 | LR: 4.48e-4 | Loss[t,1,2,3]: 6.3088 | 3.4483 | 3.6453 | 4.1513
➡️ PN 1: c1 22.581 |  c2 11.3242 |  cb 0.0536 |  cq 22.6105 |  ce 0.0539 |  cg 11.3096
➡️ PN 2: mean 11.3136 | max 11.5078 | min 11.1182 |  qu 11.2853
➡️ Step 257 | LR: 4.5e-4 | Loss[t,1,2,3]: 6.2638 | 3.4177 | 3.6232 | 4.1378
➡️ PN 1: c1 22.5805 |  c2 11.3234 |  cb 0.054 |  cq 22.6103 |  ce 0.0543 |  cg 11.3095
➡️ PN 2: mean 11.3136 | max 11.5078 | min 11.1181 |  qu 11.2851
➡️ Step 258 | LR: 4.52e-4 | Loss[t,1,2,3]: 6.1494 | 3.3393 | 3.566 | 4.1085
➡️ PN 1: c1 22.5799 |  c2 11.3226 |  cb 0.0543 |  cq 22.6101 |  ce 0.0547 |  cg 11.3095
➡️ PN 2: mean 11.3136 | max 11.5078 | min 11.118 |  qu 11.2849
➡️ Step 259 | LR: 4.53e-4 | Loss[t,1,2,3]: 6.1364 | 3.3332 | 3.5562 | 4.1005
➡️ PN 1: c1 22.5793 |  c2 11.3218 |  cb 0.0547 |  cq 22.6099 |  ce 0.0551 |  cg 11.3094
➡️ PN 2: mean 11.3136 | max 11.5078 | min 11.1179 |  qu 11.2848
➡️ Step 260 | LR: 4.55e-4 | Loss[t,1,2,3]: 6.2893 | 3.4398 | 3.6304 | 4.1373
➡️ PN 1: c1 22.5788 |  c2 11.3211 |  cb 0.0551 |  cq 22.6097 |  ce 0.0555 |  cg 11.3094
➡️ PN 2: mean 11.3136 | max 11.5078 | min 11.1179 |  qu 11.2846
➡️ Step 261 | LR: 4.57e-4 | Loss[t,1,2,3]: 6.2217 | 3.3927 | 3.5978 | 4.1206
➡️ PN 1: c1 22.5783 |  c2 11.3203 |  cb 0.0555 |  cq 22.6095 |  ce 0.0559 |  cg 11.3093
➡️ PN 2: mean 11.3136 | max 11.5079 | min 11.1178 |  qu 11.2844
➡️ Step 262 | LR: 4.59e-4 | Loss[t,1,2,3]: 6.24 | 3.4075 | 3.6038 | 4.1225
➡️ PN 1: c1 22.5778 |  c2 11.3195 |  cb 0.0559 |  cq 22.6093 |  ce 0.0563 |  cg 11.3093
➡️ PN 2: mean 11.3136 | max 11.5079 | min 11.1177 |  qu 11.2843
➡️ Step 263 | LR: 4.6e-4 | Loss[t,1,2,3]: 6.1589 | 3.3531 | 3.5623 | 4.0986
➡️ PN 1: c1 22.5772 |  c2 11.3187 |  cb 0.0563 |  cq 22.6091 |  ce 0.0567 |  cg 11.3092
➡️ PN 2: mean 11.3135 | max 11.5079 | min 11.1176 |  qu 11.2841
➡️ Step 264 | LR: 4.62e-4 | Loss[t,1,2,3]: 6.3398 | 3.4786 | 3.6502 | 4.1444
➡️ PN 1: c1 22.5768 |  c2 11.318 |  cb 0.0566 |  cq 22.609 |  ce 0.057 |  cg 11.3092
➡️ PN 2: mean 11.3135 | max 11.5079 | min 11.1175 |  qu 11.2839
➡️ Step 265 | LR: 4.64e-4 | Loss[t,1,2,3]: 6.078 | 3.3013 | 3.5172 | 4.0722
➡️ PN 1: c1 22.5762 |  c2 11.3171 |  cb 0.057 |  cq 22.6087 |  ce 0.0574 |  cg 11.3091
➡️ PN 2: mean 11.3135 | max 11.5079 | min 11.1175 |  qu 11.2838
➡️ Step 266 | LR: 4.66e-4 | Loss[t,1,2,3]: 6.1848 | 3.376 | 3.5689 | 4.0974
➡️ PN 1: c1 22.5756 |  c2 11.3163 |  cb 0.0574 |  cq 22.6085 |  ce 0.0578 |  cg 11.3091
➡️ PN 2: mean 11.3135 | max 11.5079 | min 11.1174 |  qu 11.2836
➡️ Step 267 | LR: 4.67e-4 | Loss[t,1,2,3]: 6.0808 | 3.3045 | 3.5169 | 4.0715
➡️ PN 1: c1 22.5751 |  c2 11.3155 |  cb 0.0578 |  cq 22.6083 |  ce 0.0582 |  cg 11.309
➡️ PN 2: mean 11.3135 | max 11.5079 | min 11.1173 |  qu 11.2834
➡️ Step 268 | LR: 4.69e-4 | Loss[t,1,2,3]: 6.1825 | 3.3767 | 3.5649 | 4.0933
➡️ PN 1: c1 22.5746 |  c2 11.3147 |  cb 0.0582 |  cq 22.6081 |  ce 0.0586 |  cg 11.309
➡️ PN 2: mean 11.3135 | max 11.5079 | min 11.1172 |  qu 11.2832
➡️ Step 269 | LR: 4.71e-4 | Loss[t,1,2,3]: 6.0954 | 3.3173 | 3.521 | 4.0706
➡️ PN 1: c1 22.5741 |  c2 11.3138 |  cb 0.0586 |  cq 22.6079 |  ce 0.059 |  cg 11.3089
➡️ PN 2: mean 11.3135 | max 11.5079 | min 11.1171 |  qu 11.2831
➡️ Step 270 | LR: 4.73e-4 | Loss[t,1,2,3]: 6.0524 | 3.2902 | 3.4967 | 4.0554
➡️ PN 1: c1 22.5735 |  c2 11.3129 |  cb 0.059 |  cq 22.6077 |  ce 0.0594 |  cg 11.3089
➡️ PN 2: mean 11.3135 | max 11.508 | min 11.117 |  qu 11.2829
➡️ Step 271 | LR: 4.74e-4 | Loss[t,1,2,3]: 6.1664 | 3.3691 | 3.5531 | 4.083
➡️ PN 1: c1 22.573 |  c2 11.3121 |  cb 0.0594 |  cq 22.6075 |  ce 0.0598 |  cg 11.3088
➡️ PN 2: mean 11.3135 | max 11.508 | min 11.117 |  qu 11.2827
➡️ Step 272 | LR: 4.76e-4 | Loss[t,1,2,3]: 6.122 | 3.3398 | 3.5298 | 4.0693
➡️ PN 1: c1 22.5724 |  c2 11.3113 |  cb 0.0598 |  cq 22.6073 |  ce 0.0602 |  cg 11.3088
➡️ PN 2: mean 11.3135 | max 11.508 | min 11.1169 |  qu 11.2825
➡️ Step 273 | LR: 4.78e-4 | Loss[t,1,2,3]: 6.1406 | 3.3544 | 3.5367 | 4.0717
➡️ PN 1: c1 22.572 |  c2 11.3104 |  cb 0.0602 |  cq 22.6071 |  ce 0.0606 |  cg 11.3087
➡️ PN 2: mean 11.3135 | max 11.5081 | min 11.1168 |  qu 11.2824
➡️ Step 274 | LR: 4.8e-4 | Loss[t,1,2,3]: 6.0534 | 3.2975 | 3.4893 | 4.0449
➡️ PN 1: c1 22.5714 |  c2 11.3096 |  cb 0.0606 |  cq 22.6069 |  ce 0.061 |  cg 11.3087
➡️ PN 2: mean 11.3134 | max 11.5081 | min 11.1167 |  qu 11.2822
➡️ Step 275 | LR: 4.81e-4 | Loss[t,1,2,3]: 6.1514 | 3.3613 | 3.5428 | 4.0748
➡️ PN 1: c1 22.571 |  c2 11.3087 |  cb 0.061 |  cq 22.6067 |  ce 0.0614 |  cg 11.3087
➡️ PN 2: mean 11.3134 | max 11.5081 | min 11.1166 |  qu 11.282
➡️ Step 276 | LR: 4.83e-4 | Loss[t,1,2,3]: 6.2893 | 3.4608 | 3.6054 | 4.1031
➡️ PN 1: c1 22.5706 |  c2 11.308 |  cb 0.0613 |  cq 22.6065 |  ce 0.0617 |  cg 11.3086
➡️ PN 2: mean 11.3135 | max 11.5082 | min 11.1165 |  qu 11.2819
➡️ Step 277 | LR: 4.85e-4 | Loss[t,1,2,3]: 6.0936 | 3.3252 | 3.5099 | 4.0537
➡️ PN 1: c1 22.5701 |  c2 11.3071 |  cb 0.0617 |  cq 22.6063 |  ce 0.0621 |  cg 11.3086
➡️ PN 2: mean 11.3134 | max 11.5082 | min 11.1164 |  qu 11.2817
➡️ Step 278 | LR: 4.86e-4 | Loss[t,1,2,3]: 6.1148 | 3.3435 | 3.5157 | 4.0538
➡️ PN 1: c1 22.5696 |  c2 11.3062 |  cb 0.0621 |  cq 22.6061 |  ce 0.0625 |  cg 11.3085
➡️ PN 2: mean 11.3134 | max 11.5082 | min 11.1163 |  qu 11.2815
➡️ Step 279 | LR: 4.88e-4 | Loss[t,1,2,3]: 6.1325 | 3.3555 | 3.5248 | 4.0586
➡️ PN 1: c1 22.5691 |  c2 11.3054 |  cb 0.0625 |  cq 22.6059 |  ce 0.0629 |  cg 11.3085
➡️ PN 2: mean 11.3134 | max 11.5082 | min 11.1163 |  qu 11.2814
➡️ Step 280 | LR: 4.9e-4 | Loss[t,1,2,3]: 6.1243 | 3.3521 | 3.5185 | 4.0517
➡️ PN 1: c1 22.5687 |  c2 11.3045 |  cb 0.0628 |  cq 22.6057 |  ce 0.0633 |  cg 11.3084
➡️ PN 2: mean 11.3134 | max 11.5082 | min 11.1162 |  qu 11.2812
➡️ Step 281 | LR: 4.92e-4 | Loss[t,1,2,3]: 6.1166 | 3.3493 | 3.5113 | 4.0464
➡️ PN 1: c1 22.5682 |  c2 11.3036 |  cb 0.0632 |  cq 22.6055 |  ce 0.0637 |  cg 11.3084
➡️ PN 2: mean 11.3134 | max 11.5082 | min 11.1161 |  qu 11.281
➡️ Step 282 | LR: 4.94e-4 | Loss[t,1,2,3]: 6.0766 | 3.3225 | 3.4904 | 4.0354
➡️ PN 1: c1 22.5677 |  c2 11.3028 |  cb 0.0636 |  cq 22.6053 |  ce 0.0641 |  cg 11.3083
➡️ PN 2: mean 11.3134 | max 11.5082 | min 11.116 |  qu 11.2809
➡️ Step 283 | LR: 4.95e-4 | Loss[t,1,2,3]: 6.0358 | 3.2929 | 3.4722 | 4.0271
➡️ PN 1: c1 22.5672 |  c2 11.3019 |  cb 0.064 |  cq 22.6051 |  ce 0.0644 |  cg 11.3083
➡️ PN 2: mean 11.3134 | max 11.5082 | min 11.1159 |  qu 11.2807
➡️ Step 284 | LR: 4.97e-4 | Loss[t,1,2,3]: 6.1069 | 3.3446 | 3.5045 | 4.0401
➡️ PN 1: c1 22.5668 |  c2 11.301 |  cb 0.0644 |  cq 22.6049 |  ce 0.0648 |  cg 11.3082
➡️ PN 2: mean 11.3134 | max 11.5082 | min 11.1158 |  qu 11.2806
➡️ Step 285 | LR: 4.99e-4 | Loss[t,1,2,3]: 6.0738 | 3.325 | 3.4842 | 4.0268
➡️ PN 1: c1 22.5663 |  c2 11.3001 |  cb 0.0648 |  cq 22.6048 |  ce 0.0653 |  cg 11.3082
➡️ PN 2: mean 11.3134 | max 11.5082 | min 11.1157 |  qu 11.2804
➡️ Step 286 | LR: 0.0005 | Loss[t,1,2,3]: 6.0047 | 3.2773 | 3.4501 | 4.0093
➡️ PN 1: c1 22.5658 |  c2 11.2991 |  cb 0.0652 |  cq 22.6046 |  ce 0.0657 |  cg 11.3081
➡️ PN 2: mean 11.3134 | max 11.5082 | min 11.1157 |  qu 11.2802
➡️ Step 287 | LR: 5.02e-4 | Loss[t,1,2,3]: 6.0205 | 3.2902 | 3.4556 | 4.01
➡️ PN 1: c1 22.5654 |  c2 11.2982 |  cb 0.0656 |  cq 22.6043 |  ce 0.0661 |  cg 11.3081
➡️ PN 2: mean 11.3134 | max 11.5082 | min 11.1156 |  qu 11.2801
➡️ Step 288 | LR: 5.04e-4 | Loss[t,1,2,3]: 6.0332 | 3.2986 | 3.4628 | 4.0128
➡️ PN 1: c1 22.5649 |  c2 11.2973 |  cb 0.066 |  cq 22.6042 |  ce 0.0665 |  cg 11.308
➡️ PN 2: mean 11.3134 | max 11.5082 | min 11.1155 |  qu 11.2799
➡️ Step 289 | LR: 5.06e-4 | Loss[t,1,2,3]: 5.9611 | 3.2531 | 3.4218 | 3.9885
➡️ PN 1: c1 22.5644 |  c2 11.2963 |  cb 0.0664 |  cq 22.6039 |  ce 0.0669 |  cg 11.308
➡️ PN 2: mean 11.3134 | max 11.5082 | min 11.1154 |  qu 11.2797
➡️ Step 290 | LR: 5.08e-4 | Loss[t,1,2,3]: 5.9806 | 3.2677 | 3.43 | 3.9917
➡️ PN 1: c1 22.5639 |  c2 11.2953 |  cb 0.0669 |  cq 22.6037 |  ce 0.0673 |  cg 11.3079
➡️ PN 2: mean 11.3134 | max 11.5082 | min 11.1153 |  qu 11.2796
➡️ Step 291 | LR: 5.09e-4 | Loss[t,1,2,3]: 6.0722 | 3.33 | 3.4764 | 4.0159
➡️ PN 1: c1 22.5635 |  c2 11.2944 |  cb 0.0672 |  cq 22.6035 |  ce 0.0677 |  cg 11.3079
➡️ PN 2: mean 11.3134 | max 11.5082 | min 11.1152 |  qu 11.2794
➡️ Step 292 | LR: 5.11e-4 | Loss[t,1,2,3]: 6.1126 | 3.3609 | 3.4926 | 4.0216
➡️ PN 1: c1 22.5631 |  c2 11.2935 |  cb 0.0676 |  cq 22.6034 |  ce 0.0681 |  cg 11.3078
➡️ PN 2: mean 11.3134 | max 11.5082 | min 11.1151 |  qu 11.2792
➡️ Step 293 | LR: 5.13e-4 | Loss[t,1,2,3]: 6.0344 | 3.3082 | 3.4532 | 3.9985
➡️ PN 1: c1 22.5626 |  c2 11.2926 |  cb 0.068 |  cq 22.6032 |  ce 0.0685 |  cg 11.3078
➡️ PN 2: mean 11.3134 | max 11.5082 | min 11.115 |  qu 11.2791
➡️ Step 294 | LR: 5.14e-4 | Loss[t,1,2,3]: 6.1084 | 3.3596 | 3.4894 | 4.0164
➡️ PN 1: c1 22.5622 |  c2 11.2917 |  cb 0.0684 |  cq 22.603 |  ce 0.0689 |  cg 11.3077
➡️ PN 2: mean 11.3134 | max 11.5082 | min 11.1149 |  qu 11.279
➡️ Step 295 | LR: 5.16e-4 | Loss[t,1,2,3]: 5.9567 | 3.2584 | 3.4099 | 3.9733
➡️ PN 1: c1 22.5618 |  c2 11.2907 |  cb 0.0688 |  cq 22.6028 |  ce 0.0693 |  cg 11.3077
➡️ PN 2: mean 11.3134 | max 11.5082 | min 11.1149 |  qu 11.2788
➡️ Step 296 | LR: 5.18e-4 | Loss[t,1,2,3]: 6.1038 | 3.3589 | 3.4836 | 4.0121
➡️ PN 1: c1 22.5614 |  c2 11.2897 |  cb 0.0691 |  cq 22.6027 |  ce 0.0696 |  cg 11.3076
➡️ PN 2: mean 11.3134 | max 11.5082 | min 11.1148 |  qu 11.2787
➡️ Step 297 | LR: 5.2e-4 | Loss[t,1,2,3]: 5.9799 | 3.2756 | 3.4199 | 3.9776
➡️ PN 1: c1 22.561 |  c2 11.2887 |  cb 0.0695 |  cq 22.6025 |  ce 0.07 |  cg 11.3076
➡️ PN 2: mean 11.3134 | max 11.5082 | min 11.1147 |  qu 11.2785
➡️ Step 298 | LR: 5.22e-4 | Loss[t,1,2,3]: 6.0761 | 3.3421 | 3.4683 | 3.9995
➡️ PN 1: c1 22.5606 |  c2 11.2878 |  cb 0.0699 |  cq 22.6023 |  ce 0.0704 |  cg 11.3075
➡️ PN 2: mean 11.3134 | max 11.5082 | min 11.1146 |  qu 11.2783
➡️ Step 299 | LR: 5.23e-4 | Loss[t,1,2,3]: 5.9443 | 3.2542 | 3.3991 | 3.9622
➡️ PN 1: c1 22.5602 |  c2 11.2868 |  cb 0.0703 |  cq 22.6021 |  ce 0.0707 |  cg 11.3075
➡️ PN 2: mean 11.3134 | max 11.5082 | min 11.1145 |  qu 11.2782
➡️ Step 300 | LR: 5.25e-4 | Loss[t,1,2,3]: 5.9418 | 3.2531 | 3.3974 | 3.9602
➡️ PN 1: c1 22.5597 |  c2 11.2857 |  cb 0.0707 |  cq 22.6019 |  ce 0.0712 |  cg 11.3074
➡️ PN 2: mean 11.3134 | max 11.5082 | min 11.1144 |  qu 11.278
Checkpoint reached! Saving Step 300...
➡️ Step 301 | LR: 5.27e-4 | Loss[t,1,2,3]: 6.0005 | 3.2955 | 3.4251 | 3.9701
➡️ PN 1: c1 22.5593 |  c2 11.2848 |  cb 0.0711 |  cq 22.6017 |  ce 0.0716 |  cg 11.3074
➡️ PN 2: mean 11.3133 | max 11.5082 | min 11.1143 |  qu 11.2779
➡️ Step 302 | LR: 5.28e-4 | Loss[t,1,2,3]: 6.0377 | 3.3248 | 3.4377 | 3.9764
➡️ PN 1: c1 22.5589 |  c2 11.2838 |  cb 0.0714 |  cq 22.6016 |  ce 0.0719 |  cg 11.3073
➡️ PN 2: mean 11.3133 | max 11.5082 | min 11.1142 |  qu 11.2777
➡️ Step 303 | LR: 5.3e-4 | Loss[t,1,2,3]: 5.9857 | 3.2888 | 3.4124 | 3.9628
➡️ PN 1: c1 22.5585 |  c2 11.2828 |  cb 0.0719 |  cq 22.6014 |  ce 0.0723 |  cg 11.3073
➡️ PN 2: mean 11.3133 | max 11.5082 | min 11.1141 |  qu 11.2776
➡️ Step 304 | LR: 5.32e-4 | Loss[t,1,2,3]: 5.9761 | 3.2817 | 3.4088 | 3.9598
➡️ PN 1: c1 22.5581 |  c2 11.2818 |  cb 0.0722 |  cq 22.6012 |  ce 0.0727 |  cg 11.3072
➡️ PN 2: mean 11.3133 | max 11.5082 | min 11.114 |  qu 11.2775
➡️ Step 305 | LR: 5.34e-4 | Loss[t,1,2,3]: 5.9826 | 3.2868 | 3.4117 | 3.9601
➡️ PN 1: c1 22.5577 |  c2 11.2807 |  cb 0.0726 |  cq 22.6011 |  ce 0.0731 |  cg 11.3072
➡️ PN 2: mean 11.3133 | max 11.5082 | min 11.1139 |  qu 11.2773
➡️ Step 306 | LR: 5.35e-4 | Loss[t,1,2,3]: 5.9597 | 3.2748 | 3.3959 | 3.9478
➡️ PN 1: c1 22.5572 |  c2 11.2797 |  cb 0.0731 |  cq 22.6009 |  ce 0.0735 |  cg 11.3071
➡️ PN 2: mean 11.3133 | max 11.5082 | min 11.1138 |  qu 11.2772
➡️ Step 307 | LR: 5.37e-4 | Loss[t,1,2,3]: 5.9439 | 3.2655 | 3.3859 | 3.9421
➡️ PN 1: c1 22.5568 |  c2 11.2787 |  cb 0.0734 |  cq 22.6007 |  ce 0.0739 |  cg 11.3071
➡️ PN 2: mean 11.3133 | max 11.5082 | min 11.1137 |  qu 11.277
➡️ Step 308 | LR: 5.39e-4 | Loss[t,1,2,3]: 6.0385 | 3.3317 | 3.4319 | 3.9634
➡️ PN 1: c1 22.5565 |  c2 11.2776 |  cb 0.0738 |  cq 22.6006 |  ce 0.0742 |  cg 11.307
➡️ PN 2: mean 11.3133 | max 11.5082 | min 11.1136 |  qu 11.2769
➡️ Step 309 | LR: 5.41e-4 | Loss[t,1,2,3]: 6.0248 | 3.3233 | 3.4236 | 3.9588
➡️ PN 1: c1 22.5561 |  c2 11.2766 |  cb 0.0741 |  cq 22.6004 |  ce 0.0746 |  cg 11.307
➡️ PN 2: mean 11.3134 | max 11.5082 | min 11.1135 |  qu 11.2768
➡️ Step 310 | LR: 5.43e-4 | Loss[t,1,2,3]: 6.0052 | 3.3095 | 3.4141 | 3.9543
➡️ PN 1: c1 22.5558 |  c2 11.2756 |  cb 0.0745 |  cq 22.6003 |  ce 0.0749 |  cg 11.3069
➡️ PN 2: mean 11.3134 | max 11.5082 | min 11.1134 |  qu 11.2767
➡️ Step 311 | LR: 5.44e-4 | Loss[t,1,2,3]: 5.9959 | 3.307 | 3.4056 | 3.9441
➡️ PN 1: c1 22.5554 |  c2 11.2746 |  cb 0.0749 |  cq 22.6001 |  ce 0.0753 |  cg 11.3069
➡️ PN 2: mean 11.3134 | max 11.5082 | min 11.1133 |  qu 11.2765
➡️ Step 312 | LR: 5.46e-4 | Loss[t,1,2,3]: 5.8968 | 3.24 | 3.3549 | 3.9177
➡️ PN 1: c1 22.555 |  c2 11.2735 |  cb 0.0753 |  cq 22.5999 |  ce 0.0757 |  cg 11.3068
➡️ PN 2: mean 11.3134 | max 11.5082 | min 11.1133 |  qu 11.2764
➡️ Step 313 | LR: 5.48e-4 | Loss[t,1,2,3]: 6.0355 | 3.334 | 3.426 | 3.9539
➡️ PN 1: c1 22.5546 |  c2 11.2724 |  cb 0.0756 |  cq 22.5998 |  ce 0.076 |  cg 11.3068
➡️ PN 2: mean 11.3134 | max 11.5082 | min 11.1132 |  qu 11.2763
➡️ Step 314 | LR: 5.49e-4 | Loss[t,1,2,3]: 5.9639 | 3.2905 | 3.3836 | 3.9265
➡️ PN 1: c1 22.5543 |  c2 11.2714 |  cb 0.076 |  cq 22.5997 |  ce 0.0764 |  cg 11.3068
➡️ PN 2: mean 11.3134 | max 11.5082 | min 11.1131 |  qu 11.2761
➡️ Step 315 | LR: 5.51e-4 | Loss[t,1,2,3]: 6.0679 | 3.3604 | 3.4369 | 3.9563
➡️ PN 1: c1 22.554 |  c2 11.2703 |  cb 0.0763 |  cq 22.5995 |  ce 0.0767 |  cg 11.3067
➡️ PN 2: mean 11.3134 | max 11.5082 | min 11.113 |  qu 11.276
➡️ Step 316 | LR: 5.53e-4 | Loss[t,1,2,3]: 5.8917 | 3.2371 | 3.3523 | 3.9139
➡️ PN 1: c1 22.5536 |  c2 11.2692 |  cb 0.0767 |  cq 22.5994 |  ce 0.0771 |  cg 11.3067
➡️ PN 2: mean 11.3134 | max 11.5082 | min 11.1129 |  qu 11.2759
➡️ Step 317 | LR: 5.55e-4 | Loss[t,1,2,3]: 5.9423 | 3.2738 | 3.3749 | 3.9239
➡️ PN 1: c1 22.5532 |  c2 11.2681 |  cb 0.0771 |  cq 22.5992 |  ce 0.0775 |  cg 11.3066
➡️ PN 2: mean 11.3134 | max 11.5082 | min 11.1128 |  qu 11.2758
➡️ Step 318 | LR: 5.57e-4 | Loss[t,1,2,3]: 5.8698 | 3.2279 | 3.3347 | 3.8979
➡️ PN 1: c1 22.5528 |  c2 11.267 |  cb 0.0775 |  cq 22.5991 |  ce 0.0778 |  cg 11.3066
➡️ PN 2: mean 11.3134 | max 11.5082 | min 11.1127 |  qu 11.2756
➡️ Step 319 | LR: 5.58e-4 | Loss[t,1,2,3]: 5.9537 | 3.2862 | 3.3755 | 3.9191
➡️ PN 1: c1 22.5524 |  c2 11.2659 |  cb 0.0778 |  cq 22.5989 |  ce 0.0782 |  cg 11.3065
➡️ PN 2: mean 11.3134 | max 11.5082 | min 11.1126 |  qu 11.2755
➡️ Step 320 | LR: 5.6e-4 | Loss[t,1,2,3]: 6.0278 | 3.3383 | 3.4116 | 3.9348
➡️ PN 1: c1 22.5521 |  c2 11.2648 |  cb 0.0782 |  cq 22.5988 |  ce 0.0785 |  cg 11.3065
➡️ PN 2: mean 11.3134 | max 11.5082 | min 11.1125 |  qu 11.2754
➡️ Step 321 | LR: 5.62e-4 | Loss[t,1,2,3]: 5.9868 | 3.3121 | 3.3884 | 3.9218
➡️ PN 1: c1 22.5518 |  c2 11.2638 |  cb 0.0785 |  cq 22.5987 |  ce 0.0788 |  cg 11.3064
➡️ PN 2: mean 11.3134 | max 11.5082 | min 11.1124 |  qu 11.2753
➡️ Step 322 | LR: 5.63e-4 | Loss[t,1,2,3]: 6.0834 | 3.378 | 3.4379 | 3.9456
➡️ PN 1: c1 22.5515 |  c2 11.2627 |  cb 0.0787 |  cq 22.5986 |  ce 0.079 |  cg 11.3064
➡️ PN 2: mean 11.3134 | max 11.5082 | min 11.1123 |  qu 11.2752
➡️ Step 323 | LR: 5.65e-4 | Loss[t,1,2,3]: 5.9708 | 3.3007 | 3.381 | 3.9184
➡️ PN 1: c1 22.5512 |  c2 11.2616 |  cb 0.0791 |  cq 22.5985 |  ce 0.0794 |  cg 11.3063
➡️ PN 2: mean 11.3134 | max 11.5082 | min 11.1122 |  qu 11.2751
➡️ Step 324 | LR: 5.67e-4 | Loss[t,1,2,3]: 6.0082 | 3.3257 | 3.4014 | 3.9272
➡️ PN 1: c1 22.5509 |  c2 11.2605 |  cb 0.0794 |  cq 22.5983 |  ce 0.0797 |  cg 11.3063
➡️ PN 2: mean 11.3134 | max 11.5082 | min 11.1121 |  qu 11.275
➡️ Step 325 | LR: 5.69e-4 | Loss[t,1,2,3]: 5.9645 | 3.297 | 3.3782 | 3.9136
➡️ PN 1: c1 22.5505 |  c2 11.2594 |  cb 0.0798 |  cq 22.5982 |  ce 0.08 |  cg 11.3062
➡️ PN 2: mean 11.3134 | max 11.5083 | min 11.112 |  qu 11.2749
➡️ Step 326 | LR: 5.7e-4 | Loss[t,1,2,3]: 6.0358 | 3.3498 | 3.4091 | 3.9259
➡️ PN 1: c1 22.5503 |  c2 11.2583 |  cb 0.0801 |  cq 22.5981 |  ce 0.0803 |  cg 11.3062
➡️ PN 2: mean 11.3134 | max 11.5083 | min 11.1119 |  qu 11.2748
➡️ Step 327 | LR: 5.72e-4 | Loss[t,1,2,3]: 6.088 | 3.3849 | 3.4352 | 3.942
➡️ PN 1: c1 22.55 |  c2 11.2572 |  cb 0.0803 |  cq 22.598 |  ce 0.0805 |  cg 11.3061
➡️ PN 2: mean 11.3134 | max 11.5083 | min 11.1118 |  qu 11.2747
➡️ Step 328 | LR: 5.74e-4 | Loss[t,1,2,3]: 6.0202 | 3.3388 | 3.4015 | 3.9225
➡️ PN 1: c1 22.5497 |  c2 11.2561 |  cb 0.0806 |  cq 22.5979 |  ce 0.0808 |  cg 11.3061
➡️ PN 2: mean 11.3134 | max 11.5083 | min 11.1117 |  qu 11.2746
➡️ Step 329 | LR: 5.76e-4 | Loss[t,1,2,3]: 6.0309 | 3.3475 | 3.4053 | 3.9228
➡️ PN 1: c1 22.5494 |  c2 11.255 |  cb 0.0809 |  cq 22.5978 |  ce 0.0811 |  cg 11.306
➡️ PN 2: mean 11.3134 | max 11.5083 | min 11.1116 |  qu 11.2745
➡️ Step 330 | LR: 5.77e-4 | Loss[t,1,2,3]: 5.9853 | 3.3157 | 3.3832 | 3.9117
➡️ PN 1: c1 22.5491 |  c2 11.2538 |  cb 0.0812 |  cq 22.5977 |  ce 0.0814 |  cg 11.306
➡️ PN 2: mean 11.3134 | max 11.5083 | min 11.1115 |  qu 11.2744
➡️ Step 331 | LR: 5.79e-4 | Loss[t,1,2,3]: 5.9166 | 3.2674 | 3.3508 | 3.8951
➡️ PN 1: c1 22.5488 |  c2 11.2527 |  cb 0.0815 |  cq 22.5976 |  ce 0.0816 |  cg 11.3059
➡️ PN 2: mean 11.3134 | max 11.5083 | min 11.1114 |  qu 11.2742
➡️ Step 332 | LR: 5.81e-4 | Loss[t,1,2,3]: 5.9865 | 3.3219 | 3.3781 | 3.9021
➡️ PN 1: c1 22.5485 |  c2 11.2515 |  cb 0.0817 |  cq 22.5975 |  ce 0.0818 |  cg 11.3059
➡️ PN 2: mean 11.3134 | max 11.5083 | min 11.1113 |  qu 11.2742
➡️ Step 333 | LR: 5.83e-4 | Loss[t,1,2,3]: 5.9971 | 3.3287 | 3.3837 | 3.9062
➡️ PN 1: c1 22.5482 |  c2 11.2503 |  cb 0.0821 |  cq 22.5974 |  ce 0.0821 |  cg 11.3058
➡️ PN 2: mean 11.3134 | max 11.5083 | min 11.1112 |  qu 11.2741
➡️ Step 334 | LR: 5.84e-4 | Loss[t,1,2,3]: 5.9086 | 3.2691 | 3.3389 | 3.8802
➡️ PN 1: c1 22.5478 |  c2 11.2491 |  cb 0.0825 |  cq 22.5973 |  ce 0.0825 |  cg 11.3058
➡️ PN 2: mean 11.3134 | max 11.5083 | min 11.1111 |  qu 11.274
➡️ Step 335 | LR: 5.86e-4 | Loss[t,1,2,3]: 5.9803 | 3.3198 | 3.373 | 3.8962
➡️ PN 1: c1 22.5475 |  c2 11.2479 |  cb 0.0828 |  cq 22.5972 |  ce 0.0828 |  cg 11.3057
➡️ PN 2: mean 11.3134 | max 11.5083 | min 11.111 |  qu 11.2739
➡️ Step 336 | LR: 5.88e-4 | Loss[t,1,2,3]: 5.8972 | 3.2634 | 3.331 | 3.8731
➡️ PN 1: c1 22.5472 |  c2 11.2466 |  cb 0.0832 |  cq 22.597 |  ce 0.0832 |  cg 11.3057
➡️ PN 2: mean 11.3134 | max 11.5083 | min 11.1109 |  qu 11.2738
➡️ Step 337 | LR: 5.9e-4 | Loss[t,1,2,3]: 5.9422 | 3.2958 | 3.3514 | 3.8829
➡️ PN 1: c1 22.5469 |  c2 11.2454 |  cb 0.0835 |  cq 22.5969 |  ce 0.0834 |  cg 11.3056
➡️ PN 2: mean 11.3134 | max 11.5083 | min 11.1107 |  qu 11.2737
➡️ Step 338 | LR: 5.92e-4 | Loss[t,1,2,3]: 5.9874 | 3.3279 | 3.3725 | 3.893
➡️ PN 1: c1 22.5466 |  c2 11.2442 |  cb 0.0838 |  cq 22.5969 |  ce 0.0837 |  cg 11.3056
➡️ PN 2: mean 11.3134 | max 11.5083 | min 11.1106 |  qu 11.2737
➡️ Step 339 | LR: 5.93e-4 | Loss[t,1,2,3]: 6.0993 | 3.4026 | 3.4322 | 3.9226
➡️ PN 1: c1 22.5464 |  c2 11.243 |  cb 0.0839 |  cq 22.5968 |  ce 0.0838 |  cg 11.3055
➡️ PN 2: mean 11.3134 | max 11.5083 | min 11.1106 |  qu 11.2736
➡️ Step 340 | LR: 5.95e-4 | Loss[t,1,2,3]: 6.1481 | 3.4399 | 3.4514 | 3.9298
➡️ PN 1: c1 22.5463 |  c2 11.242 |  cb 0.0839 |  cq 22.5968 |  ce 0.0838 |  cg 11.3055
➡️ PN 2: mean 11.3135 | max 11.5083 | min 11.1105 |  qu 11.2735
➡️ Step 341 | LR: 5.97e-4 | Loss[t,1,2,3]: 6.2292 | 3.4963 | 3.4906 | 3.9501
➡️ PN 1: c1 22.5462 |  c2 11.2409 |  cb 0.0839 |  cq 22.5968 |  ce 0.0838 |  cg 11.3054
➡️ PN 2: mean 11.3135 | max 11.5083 | min 11.1104 |  qu 11.2734
➡️ Step 342 | LR: 5.98e-4 | Loss[t,1,2,3]: 6.2772 | 3.5292 | 3.5144 | 3.9633
➡️ PN 1: c1 22.5462 |  c2 11.2399 |  cb 0.0838 |  cq 22.5968 |  ce 0.0838 |  cg 11.3054
➡️ PN 2: mean 11.3135 | max 11.5083 | min 11.1103 |  qu 11.2733
➡️ Step 343 | LR: 0.0006 | Loss[t,1,2,3]: 6.4438 | 3.6459 | 3.5932 | 4.0052
➡️ PN 1: c1 22.5463 |  c2 11.2392 |  cb 0.0837 |  cq 22.5969 |  ce 0.0837 |  cg 11.3054
➡️ PN 2: mean 11.3135 | max 11.5083 | min 11.1102 |  qu 11.2733
➡️ Step 344 | LR: 6.02e-4 | Loss[t,1,2,3]: 6.4121 | 3.6233 | 3.579 | 3.9973
➡️ PN 1: c1 22.5464 |  c2 11.2384 |  cb 0.0835 |  cq 22.597 |  ce 0.0836 |  cg 11.3053
➡️ PN 2: mean 11.3136 | max 11.5083 | min 11.1101 |  qu 11.2733
➡️ Step 345 | LR: 6.04e-4 | Loss[t,1,2,3]: 6.2021 | 3.4764 | 3.4787 | 3.9452
➡️ PN 1: c1 22.5463 |  c2 11.2372 |  cb 0.0835 |  cq 22.597 |  ce 0.0836 |  cg 11.3053
➡️ PN 2: mean 11.3136 | max 11.5083 | min 11.11 |  qu 11.2732
➡️ Step 346 | LR: 6.06e-4 | Loss[t,1,2,3]: 6.2218 | 3.4894 | 3.4894 | 3.9507
➡️ PN 1: c1 22.5462 |  c2 11.2362 |  cb 0.0835 |  cq 22.597 |  ce 0.0836 |  cg 11.3052
➡️ PN 2: mean 11.3136 | max 11.5083 | min 11.1098 |  qu 11.2731
➡️ Step 347 | LR: 6.07e-4 | Loss[t,1,2,3]: 6.1448 | 3.4378 | 3.4492 | 3.9293
➡️ PN 1: c1 22.546 |  c2 11.235 |  cb 0.0836 |  cq 22.597 |  ce 0.0837 |  cg 11.3052
➡️ PN 2: mean 11.3136 | max 11.5083 | min 11.1097 |  qu 11.273
➡️ Step 348 | LR: 6.09e-4 | Loss[t,1,2,3]: 6.2034 | 3.4764 | 3.4803 | 3.9474
➡️ PN 1: c1 22.5459 |  c2 11.2338 |  cb 0.0836 |  cq 22.597 |  ce 0.0837 |  cg 11.3052
➡️ PN 2: mean 11.3136 | max 11.5084 | min 11.1096 |  qu 11.273
➡️ Step 349 | LR: 6.11e-4 | Loss[t,1,2,3]: 6.1367 | 3.4294 | 3.4491 | 3.9311
➡️ PN 1: c1 22.5457 |  c2 11.2326 |  cb 0.0837 |  cq 22.597 |  ce 0.0838 |  cg 11.3051
➡️ PN 2: mean 11.3136 | max 11.5084 | min 11.1095 |  qu 11.2729
➡️ Step 350 | LR: 6.12e-4 | Loss[t,1,2,3]: 6.1991 | 3.4745 | 3.4774 | 3.9435
➡️ PN 1: c1 22.5455 |  c2 11.2315 |  cb 0.0837 |  cq 22.5969 |  ce 0.0838 |  cg 11.3051
➡️ PN 2: mean 11.3136 | max 11.5084 | min 11.1094 |  qu 11.2728
Checkpoint reached! Saving Step 350...
➡️ Step 351 | LR: 6.14e-4 | Loss[t,1,2,3]: 6.1078 | 3.4124 | 3.4317 | 3.9183
➡️ PN 1: c1 22.5454 |  c2 11.2302 |  cb 0.0838 |  cq 22.5969 |  ce 0.0839 |  cg 11.305
➡️ PN 2: mean 11.3136 | max 11.5084 | min 11.1093 |  qu 11.2728
➡️ Step 352 | LR: 6.16e-4 | Loss[t,1,2,3]: 6.769 | 3.8703 | 3.7536 | 4.0877
➡️ PN 1: c1 22.5458 |  c2 11.2297 |  cb 0.0835 |  cq 22.5971 |  ce 0.0837 |  cg 11.305
➡️ PN 2: mean 11.3136 | max 11.5084 | min 11.1092 |  qu 11.2728
➡️ Step 353 | LR: 6.18e-4 | Loss[t,1,2,3]: 6.1813 | 3.4617 | 3.4691 | 3.9401
➡️ PN 1: c1 22.5456 |  c2 11.2285 |  cb 0.0836 |  cq 22.5971 |  ce 0.0838 |  cg 11.305
➡️ PN 2: mean 11.3136 | max 11.5084 | min 11.1091 |  qu 11.2727
➡️ Step 354 | LR: 6.2e-4 | Loss[t,1,2,3]: 6.1008 | 3.4057 | 3.4295 | 3.9213
➡️ PN 1: c1 22.5453 |  c2 11.2272 |  cb 0.0838 |  cq 22.597 |  ce 0.084 |  cg 11.3049
➡️ PN 2: mean 11.3136 | max 11.5084 | min 11.1089 |  qu 11.2726
➡️ Step 355 | LR: 6.21e-4 | Loss[t,1,2,3]: 6.1459 | 3.438 | 3.4508 | 3.9298
➡️ PN 1: c1 22.5451 |  c2 11.2258 |  cb 0.084 |  cq 22.597 |  ce 0.0841 |  cg 11.3049
➡️ PN 2: mean 11.3137 | max 11.5084 | min 11.1088 |  qu 11.2726
➡️ Step 356 | LR: 6.23e-4 | Loss[t,1,2,3]: 6.1852 | 3.4659 | 3.4699 | 3.9373
➡️ PN 1: c1 22.545 |  c2 11.2246 |  cb 0.084 |  cq 22.5969 |  ce 0.0842 |  cg 11.3048
➡️ PN 2: mean 11.3137 | max 11.5084 | min 11.1087 |  qu 11.2725
➡️ Step 357 | LR: 6.25e-4 | Loss[t,1,2,3]: 6.1858 | 3.4674 | 3.4681 | 3.9371
➡️ PN 1: c1 22.5448 |  c2 11.2234 |  cb 0.0841 |  cq 22.5969 |  ce 0.0843 |  cg 11.3048
➡️ PN 2: mean 11.3137 | max 11.5084 | min 11.1086 |  qu 11.2725
➡️ Step 358 | LR: 6.26e-4 | Loss[t,1,2,3]: 6.1254 | 3.425 | 3.4397 | 3.9223
➡️ PN 1: c1 22.5446 |  c2 11.222 |  cb 0.0843 |  cq 22.5969 |  ce 0.0844 |  cg 11.3047
➡️ PN 2: mean 11.3137 | max 11.5085 | min 11.1085 |  qu 11.2724
➡️ Step 359 | LR: 6.28e-4 | Loss[t,1,2,3]: 6.1461 | 3.4406 | 3.4484 | 3.925
➡️ PN 1: c1 22.5444 |  c2 11.2208 |  cb 0.0844 |  cq 22.5968 |  ce 0.0845 |  cg 11.3047
➡️ PN 2: mean 11.3137 | max 11.5085 | min 11.1084 |  qu 11.2724
➡️ Step 360 | LR: 6.3e-4 | Loss[t,1,2,3]: 6.1836 | 3.4677 | 3.4654 | 3.9328
➡️ PN 1: c1 22.5442 |  c2 11.2195 |  cb 0.0845 |  cq 22.5968 |  ce 0.0846 |  cg 11.3046
➡️ PN 2: mean 11.3137 | max 11.5085 | min 11.1082 |  qu 11.2724
➡️ Step 361 | LR: 6.32e-4 | Loss[t,1,2,3]: 6.1997 | 3.4798 | 3.4722 | 3.9353
➡️ PN 1: c1 22.544 |  c2 11.2182 |  cb 0.0846 |  cq 22.5968 |  ce 0.0847 |  cg 11.3046
➡️ PN 2: mean 11.3137 | max 11.5085 | min 11.1081 |  qu 11.2723
➡️ Step 362 | LR: 6.34e-4 | Loss[t,1,2,3]: 6.2077 | 3.4827 | 3.4792 | 3.9417
➡️ PN 1: c1 22.5438 |  c2 11.2169 |  cb 0.0846 |  cq 22.5968 |  ce 0.0848 |  cg 11.3045
➡️ PN 2: mean 11.3137 | max 11.5086 | min 11.108 |  qu 11.2723
➡️ Step 363 | LR: 6.35e-4 | Loss[t,1,2,3]: 6.2099 | 3.4868 | 3.4773 | 3.938
➡️ PN 1: c1 22.5437 |  c2 11.2156 |  cb 0.0847 |  cq 22.5968 |  ce 0.0848 |  cg 11.3045
➡️ PN 2: mean 11.3137 | max 11.5086 | min 11.1079 |  qu 11.2723
➡️ Step 364 | LR: 6.37e-4 | Loss[t,1,2,3]: 6.2587 | 3.5198 | 3.5021 | 3.9512
➡️ PN 1: c1 22.5435 |  c2 11.2144 |  cb 0.0847 |  cq 22.5968 |  ce 0.0848 |  cg 11.3044
➡️ PN 2: mean 11.3137 | max 11.5086 | min 11.1078 |  qu 11.2722
➡️ Step 365 | LR: 6.39e-4 | Loss[t,1,2,3]: 6.1417 | 3.4421 | 3.4403 | 3.9176
➡️ PN 1: c1 22.5433 |  c2 11.2131 |  cb 0.0848 |  cq 22.5967 |  ce 0.0849 |  cg 11.3044
➡️ PN 2: mean 11.3137 | max 11.5086 | min 11.1076 |  qu 11.2722
➡️ Step 366 | LR: 6.41e-4 | Loss[t,1,2,3]: 6.1946 | 3.4766 | 3.4696 | 3.9327
➡️ PN 1: c1 22.5431 |  c2 11.2118 |  cb 0.0849 |  cq 22.5967 |  ce 0.085 |  cg 11.3043
➡️ PN 2: mean 11.3137 | max 11.5086 | min 11.1075 |  qu 11.2722
➡️ Step 367 | LR: 6.42e-4 | Loss[t,1,2,3]: 6.798 | 3.8991 | 3.7567 | 4.082
➡️ PN 1: c1 22.5436 |  c2 11.2112 |  cb 0.0846 |  cq 22.5969 |  ce 0.0848 |  cg 11.3043
➡️ PN 2: mean 11.3137 | max 11.5088 | min 11.1074 |  qu 11.2722
➡️ Step 368 | LR: 6.44e-4 | Loss[t,1,2,3]: 6.1953 | 3.4779 | 3.4692 | 3.9313
➡️ PN 1: c1 22.5434 |  c2 11.2099 |  cb 0.0847 |  cq 22.5969 |  ce 0.0849 |  cg 11.3043
➡️ PN 2: mean 11.3137 | max 11.5088 | min 11.1073 |  qu 11.2721
➡️ Step 369 | LR: 6.46e-4 | Loss[t,1,2,3]: 6.2132 | 3.4896 | 3.4786 | 3.9374
➡️ PN 1: c1 22.5433 |  c2 11.2085 |  cb 0.0848 |  cq 22.5969 |  ce 0.0849 |  cg 11.3042
➡️ PN 2: mean 11.3137 | max 11.5088 | min 11.1072 |  qu 11.2721
➡️ Step 370 | LR: 6.48e-4 | Loss[t,1,2,3]: 6.1798 | 3.4697 | 3.4575 | 3.9254
➡️ PN 1: c1 22.543 |  c2 11.2072 |  cb 0.0849 |  cq 22.5968 |  ce 0.085 |  cg 11.3041
➡️ PN 2: mean 11.3137 | max 11.5088 | min 11.107 |  qu 11.2721
➡️ Step 371 | LR: 6.49e-4 | Loss[t,1,2,3]: 6.4023 | 3.6233 | 3.5665 | 3.9828
➡️ PN 1: c1 22.543 |  c2 11.206 |  cb 0.0847 |  cq 22.5969 |  ce 0.0849 |  cg 11.3041
➡️ PN 2: mean 11.3137 | max 11.5088 | min 11.1069 |  qu 11.2721
➡️ Step 372 | LR: 6.51e-4 | Loss[t,1,2,3]: 6.1251 | 3.435 | 3.4271 | 3.9061
➡️ PN 1: c1 22.5428 |  c2 11.2047 |  cb 0.0849 |  cq 22.5968 |  ce 0.085 |  cg 11.3041
➡️ PN 2: mean 11.3137 | max 11.5089 | min 11.1068 |  qu 11.2721
➡️ Step 373 | LR: 6.53e-4 | Loss[t,1,2,3]: 6.2089 | 3.4911 | 3.4701 | 3.931
➡️ PN 1: c1 22.5426 |  c2 11.2033 |  cb 0.085 |  cq 22.5968 |  ce 0.0851 |  cg 11.304
➡️ PN 2: mean 11.3137 | max 11.5089 | min 11.1067 |  qu 11.2721
➡️ Step 374 | LR: 6.55e-4 | Loss[t,1,2,3]: 6.3107 | 3.5644 | 3.5178 | 3.9494
➡️ PN 1: c1 22.5425 |  c2 11.202 |  cb 0.0849 |  cq 22.5968 |  ce 0.0851 |  cg 11.304
➡️ PN 2: mean 11.3137 | max 11.5089 | min 11.1066 |  qu 11.272
➡️ Step 375 | LR: 6.56e-4 | Loss[t,1,2,3]: 6.2463 | 3.5176 | 3.4891 | 3.9366
➡️ PN 1: c1 22.5423 |  c2 11.2007 |  cb 0.085 |  cq 22.5968 |  ce 0.0851 |  cg 11.3039
➡️ PN 2: mean 11.3137 | max 11.509 | min 11.1064 |  qu 11.272
➡️ Step 376 | LR: 6.58e-4 | Loss[t,1,2,3]: 6.1643 | 3.4604 | 3.4487 | 3.918
➡️ PN 1: c1 22.542 |  c2 11.1993 |  cb 0.0851 |  cq 22.5968 |  ce 0.0852 |  cg 11.3038
➡️ PN 2: mean 11.3137 | max 11.509 | min 11.1063 |  qu 11.2721
➡️ Step 377 | LR: 6.6e-4 | Loss[t,1,2,3]: 6.2217 | 3.5009 | 3.4758 | 3.9316
➡️ PN 1: c1 22.5418 |  c2 11.1979 |  cb 0.0852 |  cq 22.5968 |  ce 0.0853 |  cg 11.3038
➡️ PN 2: mean 11.3136 | max 11.509 | min 11.1062 |  qu 11.2721
➡️ Step 378 | LR: 6.61e-4 | Loss[t,1,2,3]: 6.2223 | 3.5031 | 3.4743 | 3.9279
➡️ PN 1: c1 22.5417 |  c2 11.1964 |  cb 0.0852 |  cq 22.5968 |  ce 0.0853 |  cg 11.3037
➡️ PN 2: mean 11.3136 | max 11.5089 | min 11.106 |  qu 11.2721
➡️ Step 379 | LR: 6.63e-4 | Loss[t,1,2,3]: 6.2335 | 3.5092 | 3.4823 | 3.9327
➡️ PN 1: c1 22.5415 |  c2 11.195 |  cb 0.0853 |  cq 22.5967 |  ce 0.0854 |  cg 11.3037
➡️ PN 2: mean 11.3136 | max 11.5089 | min 11.1059 |  qu 11.2721
➡️ Step 380 | LR: 6.65e-4 | Loss[t,1,2,3]: 6.1593 | 3.4581 | 3.4437 | 3.9175
➡️ PN 1: c1 22.5412 |  c2 11.1936 |  cb 0.0855 |  cq 22.5967 |  ce 0.0856 |  cg 11.3036
➡️ PN 2: mean 11.3136 | max 11.509 | min 11.1058 |  qu 11.2721
➡️ Step 381 | LR: 6.67e-4 | Loss[t,1,2,3]: 6.2167 | 3.5002 | 3.4701 | 3.926
➡️ PN 1: c1 22.541 |  c2 11.1922 |  cb 0.0856 |  cq 22.5967 |  ce 0.0856 |  cg 11.3036
➡️ PN 2: mean 11.3136 | max 11.509 | min 11.1057 |  qu 11.2721
➡️ Step 382 | LR: 6.68e-4 | Loss[t,1,2,3]: 6.2539 | 3.5262 | 3.4889 | 3.9331
➡️ PN 1: c1 22.5409 |  c2 11.1908 |  cb 0.0856 |  cq 22.5967 |  ce 0.0856 |  cg 11.3035
➡️ PN 2: mean 11.3136 | max 11.509 | min 11.1055 |  qu 11.2721
➡️ Step 383 | LR: 6.7e-4 | Loss[t,1,2,3]: 6.2234 | 3.5056 | 3.4723 | 3.9267
➡️ PN 1: c1 22.5407 |  c2 11.1893 |  cb 0.0857 |  cq 22.5967 |  ce 0.0857 |  cg 11.3035
➡️ PN 2: mean 11.3136 | max 11.509 | min 11.1054 |  qu 11.2721
➡️ Step 384 | LR: 6.72e-4 | Loss[t,1,2,3]: 6.2463 | 3.5197 | 3.4863 | 3.9337
➡️ PN 1: c1 22.5405 |  c2 11.1879 |  cb 0.0857 |  cq 22.5966 |  ce 0.0858 |  cg 11.3034
➡️ PN 2: mean 11.3136 | max 11.509 | min 11.1053 |  qu 11.2722
➡️ Step 385 | LR: 6.74e-4 | Loss[t,1,2,3]: 6.2252 | 3.5094 | 3.471 | 3.921
➡️ PN 1: c1 22.5403 |  c2 11.1864 |  cb 0.0858 |  cq 22.5966 |  ce 0.0858 |  cg 11.3034
➡️ PN 2: mean 11.3136 | max 11.509 | min 11.1051 |  qu 11.2722
➡️ Step 386 | LR: 6.75e-4 | Loss[t,1,2,3]: 6.2096 | 3.4971 | 3.4649 | 3.9204
➡️ PN 1: c1 22.5401 |  c2 11.185 |  cb 0.0859 |  cq 22.5966 |  ce 0.0859 |  cg 11.3033
➡️ PN 2: mean 11.3136 | max 11.5091 | min 11.105 |  qu 11.2723
➡️ Step 387 | LR: 6.77e-4 | Loss[t,1,2,3]: 6.2472 | 3.5245 | 3.4816 | 3.9274
➡️ PN 1: c1 22.5399 |  c2 11.1835 |  cb 0.0859 |  cq 22.5966 |  ce 0.086 |  cg 11.3033
➡️ PN 2: mean 11.3136 | max 11.5091 | min 11.1049 |  qu 11.2723
➡️ Step 388 | LR: 6.79e-4 | Loss[t,1,2,3]: 6.2392 | 3.5178 | 3.479 | 3.9276
➡️ PN 1: c1 22.5397 |  c2 11.1821 |  cb 0.086 |  cq 22.5966 |  ce 0.086 |  cg 11.3032
➡️ PN 2: mean 11.3136 | max 11.5091 | min 11.1047 |  qu 11.2724
➡️ Step 389 | LR: 6.81e-4 | Loss[t,1,2,3]: 6.3339 | 3.5839 | 3.5245 | 3.9508
➡️ PN 1: c1 22.5396 |  c2 11.1806 |  cb 0.0859 |  cq 22.5966 |  ce 0.0859 |  cg 11.3032
➡️ PN 2: mean 11.3135 | max 11.5092 | min 11.1046 |  qu 11.2724
➡️ Step 390 | LR: 6.82e-4 | Loss[t,1,2,3]: 6.2993 | 3.5604 | 3.5075 | 3.9408
➡️ PN 1: c1 22.5394 |  c2 11.1791 |  cb 0.0859 |  cq 22.5966 |  ce 0.0859 |  cg 11.3031
➡️ PN 2: mean 11.3135 | max 11.5092 | min 11.1045 |  qu 11.2724
➡️ Step 391 | LR: 6.84e-4 | Loss[t,1,2,3]: 6.277 | 3.5482 | 3.4927 | 3.9297
➡️ PN 1: c1 22.5392 |  c2 11.1777 |  cb 0.0859 |  cq 22.5966 |  ce 0.0858 |  cg 11.3031
➡️ PN 2: mean 11.3135 | max 11.5092 | min 11.1043 |  qu 11.2725
➡️ Step 392 | LR: 6.86e-4 | Loss[t,1,2,3]: 6.8152 | 3.9196 | 3.7561 | 4.0702
➡️ PN 1: c1 22.5396 |  c2 11.1768 |  cb 0.0855 |  cq 22.5968 |  ce 0.0856 |  cg 11.303
➡️ PN 2: mean 11.3136 | max 11.5092 | min 11.1042 |  qu 11.2725
➡️ Step 393 | LR: 6.88e-4 | Loss[t,1,2,3]: 6.3295 | 3.5808 | 3.5224 | 3.9499
➡️ PN 1: c1 22.5395 |  c2 11.1753 |  cb 0.0855 |  cq 22.5968 |  ce 0.0855 |  cg 11.303
➡️ PN 2: mean 11.3136 | max 11.5092 | min 11.1041 |  qu 11.2726
➡️ Step 394 | LR: 6.9e-4 | Loss[t,1,2,3]: 6.3119 | 3.5695 | 3.5128 | 3.9438
➡️ PN 1: c1 22.5393 |  c2 11.1738 |  cb 0.0855 |  cq 22.5968 |  ce 0.0855 |  cg 11.3029
➡️ PN 2: mean 11.3135 | max 11.5092 | min 11.1039 |  qu 11.2727
➡️ Step 395 | LR: 6.91e-4 | Loss[t,1,2,3]: 6.3378 | 3.5865 | 3.5275 | 3.9501
➡️ PN 1: c1 22.5391 |  c2 11.1723 |  cb 0.0855 |  cq 22.5968 |  ce 0.0855 |  cg 11.3029
➡️ PN 2: mean 11.3135 | max 11.5091 | min 11.1038 |  qu 11.2727
➡️ Step 396 | LR: 6.93e-4 | Loss[t,1,2,3]: 6.3329 | 3.5839 | 3.5238 | 3.9484
➡️ PN 1: c1 22.5389 |  c2 11.1708 |  cb 0.0855 |  cq 22.5968 |  ce 0.0855 |  cg 11.3028
➡️ PN 2: mean 11.3135 | max 11.5092 | min 11.1036 |  qu 11.2728
➡️ Step 397 | LR: 6.95e-4 | Loss[t,1,2,3]: 6.3422 | 3.5904 | 3.5288 | 3.9496
➡️ PN 1: c1 22.5388 |  c2 11.1693 |  cb 0.0855 |  cq 22.5968 |  ce 0.0855 |  cg 11.3028
➡️ PN 2: mean 11.3135 | max 11.5091 | min 11.1035 |  qu 11.2729
➡️ Step 398 | LR: 6.96e-4 | Loss[t,1,2,3]: 6.2918 | 3.5576 | 3.502 | 3.9328
➡️ PN 1: c1 22.5386 |  c2 11.1678 |  cb 0.0855 |  cq 22.5968 |  ce 0.0855 |  cg 11.3027
➡️ PN 2: mean 11.3135 | max 11.5092 | min 11.1033 |  qu 11.2729
➡️ Step 399 | LR: 6.98e-4 | Loss[t,1,2,3]: 6.3286 | 3.5835 | 3.5188 | 3.9428
➡️ PN 1: c1 22.5384 |  c2 11.1663 |  cb 0.0855 |  cq 22.5968 |  ce 0.0855 |  cg 11.3027
➡️ PN 2: mean 11.3135 | max 11.5092 | min 11.1032 |  qu 11.273
➡️ Step 400 | LR: 0.0007 | Loss[t,1,2,3]: 6.3385 | 3.5922 | 3.5206 | 3.9439
➡️ PN 1: c1 22.5382 |  c2 11.1649 |  cb 0.0855 |  cq 22.5968 |  ce 0.0854 |  cg 11.3026
➡️ PN 2: mean 11.3135 | max 11.5092 | min 11.103 |  qu 11.2731
Checkpoint reached! Saving Step 400...