File size: 1,608 Bytes
a10ba7f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# LIPE V2 Student Model: Refinement & Contingency Plan

## 1. CNN Bottleneck: Valid Padding Strategy
*   **Primary Plan:** Use `padding=0` for all Conv layers.
    *   Input: (1, 8, 8)
    *   Conv1 (k3, p0): -> (16, 6, 6)
    *   Conv2 (k3, p0): -> (32, 4, 4)
    *   Conv3 (k3, p0): -> (64, 2, 2)
    *   GAP: -> (64,)
*   **Contingency:** If FLOPs are still high, implement **Depthwise Separable Convolutions** for layers 2 and 3.

## 2. Fusion Logic: Asymmetric Routing
*   **Primary Plan (Residual Addition):** 
    *   Geometric MLP output dim = 256 (matches total Appearance tokens).
    *   `if State A: Combined = Appearance + Geometry`
    *   `if State B: Combined = Geometry`
    *   *Note:* This requires `nn.Linear` in Geometry branch to output 256.
*   **Contingency (EMA Caching):**
    *   Maintain a 384-dim Concatenated vector.
    *   `if State B: Use Appearance_tokens from t-1 (cached/EMA)` to avoid shape mismatch and zero-multiplication overhead.

## 3. Geometric Stability: LayerNorm Integration
*   **Primary Plan:** Replace `Dropout(0.1)` with `nn.LayerNorm(256)` after the first hidden layer of the Geometric branch.
*   **Contingency:** If CPU latency increases, switch to `nn.utils.weight_norm` on Linear layers to stabilize gradients without explicit normalization steps.

## 4. Summary of Architecture Changes
| Component | From (Old Spec) | To (Refined Spec) |
| :--- | :--- | :--- |
| **CNN Padding** | `p=1` (Same) | `p=0` (Valid) |
| **Fusion Mode** | `Concatenation(384)` | `Residual Addition(256)` |
| **Regularization** | `Dropout(0.1)` | `LayerNorm + Dropout(0.05)` |