본문 바로가기

Data-science

(128)
[pytorch] RuntimeError: 0D or 1D target tensor expected, multi-target not supported 에러 nn.CrossEntropyLoss() 혹은 F.cross_entropy 를 사용했을 때 나타나는 에러일 것이다. nn.CrossEntropyLoss()(pred, target) 이렇게 계산이 되는데 가령 pred의 shape의 [ B, C]라면 C는 클래스 갯수 B는 배치 사이즈 target의 shape은 [B] 가 되어야 하는데 [B, 1]이렇게 돼서 문제가 발생하는 거다. 그래서 문제를 해결하려면 target의 shape를 축소해주자. nn.CrossEntropyLoss()(pred, target.squeeze(dim=-1)) https://pytorch.org/docs/stable/generated/torch.nn.CrossEntropyLoss.html CrossEntropyLoss — PyTor..
[논문 읽기] ConvLSTM 이해하기 시계열에 좋은 LSTM! 이미지에 좋은 Conv! 이 둘을 짬뽕시킨 Convolutional LSTM을 알아보자. LSTM에 대한 사전지식이 필요하다. https://limitsinx.tistory.com/62 [코드로 이해하는 딥러닝 2-11] - RNN(Recurrent Neural Network)/LSTM(Long-Short-Term-Memory) [코드로 이해하는 딥러닝 0] - 글연재에 앞서 https://limitsinx.tistory.com/27 [코드로 이해하는 딥러닝 1] - Tensorflow 시작 https://limitsinx.tistory.com/28 [코드로 이해하는 딥러닝 2] - Tensorflow 변.. limitsinx.tistory.com $i_t$는 입력 게이트, $f..
[pytorch error] GAN학습시 에러, RuntimeError: one of the variables needed for gradient computation has been modified by an inplace operation 에러 발생시 대처법 This happens because the opt_D.step() modifies the parameters of your discriminator inplace. But these parameters are required to compute the gradient for the generator. Hence the error. We fixed the inplace detection for the optimizers in 1.5, this is why it works in 1.4. You should re-organize your code to only do the steps() after all the gradients have been computed or make sure you don't mo..
[논문 읽기] Three-D Safari: Learning to Estimate Zebra Pose, Shape, and Texturefrom Images “In the Wild”
[논문 읽기] UIS-RNN 설명, FULLY SUPERVISED SPEAKER DIARIZATION 설명 - 수식 설명 수식 설명 추가) $$ x_t | x_[t-1], y_[t] $$ 의 분포를 정규분포로 가정하고 있습니다. $$ x_[t-1], y_[t] $$ 는 각각 t-1까지의 sequence들, t까지의 청자 정보들입니다. 이 둘을 알고 있을 때 t에서의 sequence의 분포를 가정하는 것이지요. 가령 그림에서 보면 $y_7$=1, 2, 3, 4 경우의 수를 갖고 있지요. x는 $x_6$까지 알고 있는 상황이고요. 이런 상황일 때 $x_7$이 무엇이냐를 말하는 것입니다. 평균 $$u_t$$를 보았을 때 (분모/분자로 나눌 수 있는데 둘 다) 1모양의 binary indicator가 있습니다. 이는 이전의 화자랑 특정 화자가 같으면 1, 아니면 0을 나타내고 이를 다 더한 후 역수를 취한 값입니다. 가령 위 그림..
[논문 읽기] UIS-RNN 설명, FULLY SUPERVISED SPEAKER DIARIZATION 설명 - 2 어려운 수식들이 등장한다. x_t의 사후확률이, 뮤(u)라 쓰겠다. u_t를 평균으로 하는 정규 분포를 따른다고... 위 수식적인 설명보단 그림을 통해 이해하는게 더 빠르다. 점선을 기준으로 왼쪽이 알고 있는 부분, 오른쪽이 새로운 가능성인 부분이다. 왼쪽 부분에서 화자는 (파랑,파랑, 노랑, 분홍, 노랑, 노랑)으로 분리 된다. 그러면 그 다음 화자는? 기존의 파랑, 노랑, 분홍 중 하나이거나 다른 색깔(초록)일 수도 있다. 그 확률이 이전에 나온 y 수열과 x 수열에 영향을 받는 것이다. 수식이 꽤 어렵다.. 1 번에서 말했듯 밑줄친 저 결합확률의 로그를 최대화하는 게 목적이다. g를 간단하게 상수로 놓으면 해가 간단해진다. 그런데 세타와 시그마제곱은 이게 어렵다. 그래서 확률적 경사 상승법 (sgd..
[tensorflow] 메모리 과부하시 해결법 import tensorflow physical_devices = tensorflow.config.list_physical_devices('GPU') try: tensorflow.config.experimental.set_memory_growth(physical_devices[0], True) tensorflow.config.experimental.set_memory_growth(physical_devices[1], True) except: # Invalid device or cannot modify virtual devices once initialized. pass GPU가 2개일 경우 위 코드를 쓴다. 하나일 경우 [0]하나만 쓰자! 이렇게할 경우 gpu를 한 번에 다 잡고 시작하는게 아니라, 네트..
[pandas] pandas dataframe 이용해서 그룹별로 train/val 나누기 가끔 dataframe 자체로 train_test_split을 해야 할 때가 있다. 그럴 땐 어떻게 해야하나... 특히 그룹별로 특정 샘플이 valset에 균등하게 포함되도록 하려면...? 간단한 방법 groupby후 sampling을 한다. validation을 0.2만큼 하고 싶으면 frac=0.2로 준다. 그렇게 나타난 valDataset의 index를 drop 해주면 된다. 이것보다 어려운 방법은 drop의 반대 방법으로 있는 부분만 iloc으로 남기는 것이다. 이상 끝

728x90