개요인공 신경망을 최적화하는 과정에서 미분은 필수적인 요소이다. PyTorch는 이러한 최적화 과정인 역전파(backpropagation) 를 손쉽게 수행할 수 있도록 자동 미분(Automatic Differentiation) 기능을 제공한다. 이번 포스팅에서는 PyTorch에서 역전파를 사용하는 방법과 자동 미분의 기본 개념을 단계별로 살펴본다. 역전파란?역전파는 신경망의 가중치를 최적화하기 위해 손실 함수의 기울기를 계산하는 알고리즘이다. 이 과정에서 체인 룰(연쇄 법칙)을 사용하여 각 가중치에 대한 손실 함수의 미분값을 효율적으로 계산한다. PyTorch는 자동 미분 기능을 통해 이러한 계산을 자동으로 처리해준다. 자동 미분 준비하기자동 미분을 사용하기 위해서는 먼저 필요한 라이브러리를 불러오고, ..
개요텐서(Tensor)는 PyTorch에서 데이터를 표현하고 연산을 수행하는 핵심 단위이다. GPU를 활용한 고속 연산이 가능하며, Numpy 배열과 유사한 구조로 쉽게 다룰 수 있다. 이번 포스팅에서는 텐서의 생성부터 다양한 조작 방법까지 단계별로 살펴본다. 텐서 생성하기필요한 라이브러리 불러오기먼저 PyTorch와 Numpy 라이브러리를 불러온다.import torchimport numpy as np빈 텐서 생성torch.empty 함수를 사용하면 초기화되지 않은 텐서를 생성할 수 있다.x = torch.empty(5, 4) # 5x4 크기의 빈 텐서 생성print(x)다양한 텐서 생성 방법모든 요소가 1인 텐서ones_tensor = torch.ones(3, 3) # 3x3 크기의 모든 요소가 ..
개요 OOP와 ORM에서 다형성은 코드의 재사용성과 유지 보수성을 극대화 하는 아름다운 매커니즘이다. 그런데 이것을 ORM과 접목시켰을 때, JSON이 기본적으로 다형성을 제공하지 않기 때문에 상위 클래스나 인터페이스를 통한 다양한 하위 클래스의 객체를 직렬화 역직렬화 하는 것이 까다로울 수 있다. 이를 해결하기 위해 Jackson과 같은 라이브러리에서는 @JsonSubTypes와 같은 애노테이션을 제공하여 다형적 구조를 효과적으로 관리할 수 있게 도와준다. 이번 글에서는 Jackson의 @JsonSubTypes 애노테이션을 중심으로, 다형성 JSON 데이터를 올바르게 직렬화하고 역직렬화하는 방법에 대해 알아보자. 내용@JsonSubTypes의 기본 개념 @JsonSubTypes는 Jackson 라이브..