RuntimeError: element 0 of tensors does not require grad and does not have a grad_fn 파이토치의 기울기 계산 기능(required_grad)을 끈(False) 상태인 tensor로 기울기 계산을 할 경우 발생하는 에러다. 파이토치에서는 required_grad의 상태가 True인 tensor에 대해서만 grad_fn을 생성하고, grad_fn을 통해 자동 미분/역전파 과정을 수행한다. 해결 방법 1. tensor를 생성할 때, requires_grad=True로 명시 example_tensor = torch.tensor([1.,2.,3.],requires_grad=True) 2. tensor 생성 후, x.requires_grad(True..
torch tensor -> numpy import torch torch_value = torch.randn(1,3) print(torch_value) # tensor([[0.5519, 0.1323, 0.1297]]) numpy_value = torch_value.numpy() print(numpy_value) # [[0.551902, 0.132319, 0.129740]] numpy -> torch tensor import torch import numpy as np numpy_value = np.ones(4) print(numpy_value) # [1. 1. 1. 1.] torch_value = torch.from_numpy(numpy_value) print(torch_value) # tensor([1..
도커 이미지를 빌드할 때, 호스트의 영향을 받는다. linux 기반 gpu 머신 / 서버는 대부분 linux amd64 체계를 지원한다. 하지만 mac os apple silicon 에서는 arm 64를 지원하기 때문에, mac os 에서 빌드한 도커 이미지를 linux 체계에서 사용할 수 없는 문제가 발생한다. 이러한 문제를 해결하기 위해 cross build 기술을 사용하여, 원하는 구조로 도커 이미지를 빌드한다. docker build --platform linux/amd64 -t [이미지이름]:[이미지태그] [도커파일경로]
Coarse-grained VS Fine-grainedCoarse-grained의 의미는 결이 거친, 조잡한 이라는 뜻이다. 반대로 Fine의 의미는 세밀한 이라는 뜻이다. 따라서 Coarse-grained classification은 Cifar10, Cifar100, MNIST 등의 데이터 셋을 이용하 이미지를 분류 하는 것 처럼, 큰 라벨을 가지고 분류하는 것을 의미한다. Fine-grained classification은 coarse-grained classification 보다 더 세밀하게 분류하는 것인데, 강아지의 품종을 구분 한다는 등의 예시가 있다.
확률 분포 p(y|x)는 특정 케이스, 디바이스, 도메인에 따라 다를 수 있다. 이러한 문제를 Data Heterogeneity 문제를 해결하는 과정에서 해결되기도 한다. Federated Learning 분야에서 주로 연구되는 주제로, 클라이언트 마다 서로 다른 분포를 가진 상황을 해결하는 것을 목표로 한다.
공변량 변화(covariate shift)는 학습 데이터의 분포가 테스트 데이터의 분포와 다른 상황을 의미한다. 여기서 공변량은 학습데이터를 의미하고, 수학적으로는 입력 데이터의 분포인 p(x)는 변하는데, p(y|x)는 그대로 있는 경우를 말한다. 딥러닝에서 예시는 다음과 같다.안면 인식 알고리즘은 학습 데이터로 대개 젊은 얼굴로 학습을 하지만, 실제 테스트 데이터는 다양한 나이의 얼굴이 입력된다.고양이, 개 등의 분류 태스크에서, 희귀종이 테스트 세트에 포함된 경우