[Pytorch] Expected all tensors to be on the same device, but found at least two devices, cuda:0 and cpu!
·
Error Note
서로 다른 공간에 있는 텐서들끼리 연산하려고 할때 발생하는 에러입니다. 연산해야 할 텐서 중 하나는 GPU에 하나는 CPU에 있을 때 발생합니다. GPU와 CPU는 엄연히 다른 기기이기 때문에 메모리 공간 또한 분리되어 있습니다. 따라서! 텐서끼리 연산을 할 때에는 반드시 같은 기기에 두어야 합니다. 그렇다면, 두 텐서가 같은 기기에 있는지 어떻게 확인할 수 있을까요? 바로, is_cuda()함수를 사용하면 됩니다! # CPU 텐서 t = torch.randn(3,3) t.is_cuda # False # GPU 텐서 t = torch.randn(3,3).cuda() # .cuda()로 GPU로 옮겨줄 수 있습니다. t.is_cuda # True 연산에는 대부분 GPU를 이용하기 때문에 False가 나온 ..
[Python Coding] 파이썬 진수변환
·
My Study/Algorithm
알고리즘 문제에 종종 등장하는 내용이기 때문에 따로 정리해둡니다.​▶ n진수 -> 10진수파이썬에서 기본적으로 제공하는 int()함수를 사용하면 됩니다.int(string, base)로 사용할 수 있습니다. string에는 변경하고자 하는 n진수를 문자열 형태로, base에는 string에 해당하는 진법을 넣으면 됩니다.print(int('1010',2))print(int('2020',3))print(int('3030',4))print(int('4040',5))print(int('5050',6))print(int('ACFD',16))// 결과창1060204520111044285  ​▶ 10진수 -> 2, 8, 16진수bin(), oct(), hex() 함수를 이용하면 됩니다.print(bin(10))pr..
[인공지능 기초] EM Clustering
·
AI Research/Artificial Intelligence
이번 포스팅에서는 EM Clustering에 대해 설명해보도록 하겠습니다. 간단히 얘기하자면 EM Clustering은 Expectation단계와 Maximization 단계를 이용하여 클러스터링합니다. 자세히 설명하기 전에 Soft Clusterting에 대해 먼저 설명하겠습니다. ​ - Soft Clustering Soft Clustering은 여러 클러스터들이 서로 겹쳐질 수 있는 클러스터링을 말합니다. K-Means Clustering의 경우에는 K개의 클러스터를 가정한 뒤 각 클러스터의 평균을 기준으로 하여 클러스터링 하는 방식입니다. 이는 하나의 데이터는 하나의 클러스터에만 포함될 수 있는 구조입니다. 그러나 실세계의 데이터들은 꼭 하나의 클러스터에만 포함되지 않을 수도 있습니다. Soft C..
[인공지능 기초] Likelihood(가능도, 우도)
·
AI Research/Artificial Intelligence
이번 포스팅에서는 Likelihood(가능도, 우도)와 최대 우도 추정(maximum likelihood)에 대해 설명하겠습니다. Likelihood에 대해 설명하기 전에 Likelihood와 헷갈리는 이름인 Probability(확률)에 대해 간단하게 설명하겠습니다! ​ - Probability(확률) 확률이란 확률 분포가 주어졌을 때, 특정한 관측 값이나 관측 구간이 확률 분포 안에 얼마나 존재할 수 있을지를 나타내는 값입니다. 핵심은 확률 분포(probability distribution)는 고정하고 그 때의 관측 값 X에 대한 확률 값을 구하는 것입니다. 이를 수식으로 나타내면 아래와 같습니다. ​ 아래 그림으로 설명해보겠습니다. 위 그림의 확률 분포는 쥐들의 몸무게 분포입니다. 종 모양을 이루고..