minjeong-oh
기록
minjeong-oh
전체 방문자
오늘
어제
  • 분류 전체보기 (207)
    • ML & Neural Net (3)
    • ◼️GNN (1)
    • ◼️시계열 (1)
    • ◼️추천시스템 (0)
    • ◼️수학 (3)
    • Data Engineer (2)
    • ◼️Spark (1)
    • ◼️Kafka (1)
    • ◼️Elestic Search (0)
    • ◼️Redis (0)
    • ◼️ClickHouse (1)
    • Programming Language (4)
    • ◼️셸 스크립트 (0)
    • ◼️SQL (0)
    • ◼️React (0)
    • ◼️Git (1)
    • ◼️Python (1)
    • ◼️C++ (33)
    • ◼️Fortran 99 (2)
    • ◼️OpenGL (7)
    • ◼️MFC (35)
    • ◼️Flutter (46)
    • ◼️Kotlin (1)
    • ◼️Android (1)
    • ◼️Java (1)
    • ◼️C (4)
    • Development (0)
    • ◼️디자인패턴 (0)
    • ◼️네트워크 (2)
    • ◼️인증 (1)
    • Computer Science (4)
    • 알고리즘 문제풀이 (12)
    • SQL 고득점 Kit 문제풀이 (8)
    • 취업준비 (0)
    • Notion 정리 글 (1)
    • Article Scrap (12)
      • Careerly - Q&A (7)
      • Careerly - Post (2)
    • 기타 등등 (16)

블로그 메뉴

  • 글쓰기
  • 홈
  • 태그
  • 방명록
  • 편집

공지사항

인기 글

태그

  • 그램업그레이드
  • 이것이C++이다책참고
  • 인공지능개발자
  • OpenGL회전
  • NextJSSwagger
  • 이차원구조체배열포인터
  • GSLB
  • API문서정리
  • AI배워야하나
  • 구조체배열포인터
  • 19년식그램SSD장착
  • SpringBootSwagger
  • 구조체매개변수
  • hello테마
  • 19년식그램램장착
  • 리눅스파티션
  • 그램풀스팩업그레이드
  • kafka구축
  • 티스토리폰트배경색없애기
  • mfc

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
minjeong-oh

기록

◼️GNN

PyTorch의 신경망을 구성할 때 사용되는 기본 클래스 nn.Model & SGNN

2024. 9. 6. 13:59
class SGNN(nn.Module):  # nn.Module을 상속받음으로써 PyTorch의 신경망 구조로 동작
    def __init__(self, in_feats, hidden_feats, out_feats):
        super(SGNN, self).__init__()  # nn.Module의 생성자를 호출하여 초기화
        self.layer1 = SGNNLayer(in_feats, hidden_feats)  # 첫 번째 레이어
        self.layer2 = SGNNLayer(hidden_feats, out_feats)  # 두 번째 레이어

    def forward(self, graph):  # forward 메서드는 순전파 로직을 정의
        h = graph.ndata['feat']  # 그래프의 노드 피처를 입력으로 사용
        print(f"입력 피처 차원: {h.shape}")
        h = self.layer1(graph, h)  # 첫 번째 레이어 통과
        print(f"첫 번째 레이어 출력 차원: {h.shape}")
        h = self.layer2(graph, h)  # 두 번째 레이어 통과
        return h  # 최종 출력

nn.Model 클래스를 상속받아 새로운 신경망 레이어나 모델을 정의할 수 있다.

 

PyTorch에서 모든 신경망은 nn.Moule을 기반으로 구현되며, 이를 통해 레이어를 생성하고, 학습 가능한 파라미터(가중치)를 자동으로 추적할 수 있다.

 

nn.Module의 역할

  • 신경망의 레이어 또는 모델을 정의하는 데 사용된다.
  1. 파라미터 관리
    : nn.Module을 상속받은 클래스 내부에서 선언된 파라미터(nn.Linear와 같은 레이어의 가중치)는 자동으로 추적된다.
  2. 재귀적으로 모율 구성
    : nn.Module을 상속받은 클래스 내에서 또 다른 nn.Module(레이어나 서브모듈)을 선언하면, 이를 재귀적으로 관리하고 모듈 간에 데이터 전파를 쉽게 할 수 있다.
  3. forward 메서드 제공
    : nn.Module 클래스는 forward() 메서드를 정의하도록 요구한다. 이 메서드는 입력 데이터를 ㄹ받아서 레이어에 통과시켜, 신경망의 순전파(forward propagation)을 정의한다.
  4. 파라미터 초기화 및 저장/로드
    : nn.Module은 신경망의 파라미터 초기화, 저장, 로드 기능도 제공한다.

 

 

    티스토리툴바