dev_AI_framework

레이어 자체가 자기 행렬 조각을 반환( 1번째 방법, 인덱스로 연결 관계 표현하기 )

명징직조지훈 2025. 5. 13. 11:52

예제 모델

model = SequentialMat()
model.add(DenseMat(3, input_dim=2))       # (2 → 3)
model.add(ActivationMat("sigmoid"))       # sigmoid

입력 : x (1, 2)

 

1️⃣ op_matrix: 연산 종류 (정수 인코딩)

0 const ← x (입력 노드)
1 const ← W (2×3)
2 const ← b (1×3)
3 matmul ← x @ W
4 add ← matmul + b
5 activation_sigmoid ← sigmoid(add)
op_matrix = np.array([
    0,  # 0: input x
    0,  # 1: W
    0,  # 2: b
    1,  # 3: matmul
    2,  # 4: add
    3   # 5: sigmoid
], dtype=np.int32)

 

2️⃣ input_matrix: 각 연산이 참조하는 입력 노드 인덱스

input_matrix = np.array([
    [-1, -1],     # x (입력)
    [-1, -1],     # W
    [-1, -1],     # b
    [0, 1],       # matmul(x, W)
    [3, 2],       # add(matmul, b)
    [4, -1],      # sigmoid(add)
], dtype=np.int32)

 

3️⃣ param_vector: 상수 노드의 값

param_vector = [
    x,         # input (사용자는 전달, 값 고정)
    W,         # weight (2×3)
    b,         # bias (1×3)
    None,      # matmul
    None,      # add
    None       # sigmoid
]

 

혹은 조금 더 확장해서 표현하는 건 어떨까?