본문 바로가기

전체 글

(61)
[PYTORCH] DataLoader worker is killed by signal: killed 오류 그 아무도 돌려놓은 서버에 kill하라는 명령을 내리지 않았지만 밤에 돌려놓고 다음날 오전에 확인하면 이렇게 죽어있는 경우가 있다. 오류 내용은 아래 그림과 같다. 필자는 서버컴퓨터에 docker container를 띄워서 사용하고 있다. 구글링을 요리조리 해봤는데 --ipc=host를 추가하면 해결이 된다라는 말도 있었는데 필자는 이미 항상 써왔던 것이어서 패스. 그리고 shm size가 작아서 그럴수도 있다라는 말도 있었는데 이미 133G로 정말 빵빵하게 늘려져 있어서 패스. 그냥 데이터의 크기가 커서 안돌아간다는 건... 아니지 않을까 싶다... 어쨋든 상황상으로 생각해볼때 작은 데이터셋으로 테스트를 할때에는 문제가 없었는데 큰 데이터셋으로 학습을 돌릴때 저러는 것으로 보아 데이터의 크기가 너무 커..
[문제풀이] Hash - 전화번호 목록 1차 시도 def solution(phone_book): phone_book.sort() # 어차피 길이가 같으면 절대 있을수 없지 phone_dict = {} for phone in phone_book: phone_dict[len(phone)] = phone if len(set(list(phone_dict.keys()))) == 1: return True for i in range(len(phone_book)): for j in range(1, len(phone_book)): if phone_book[i+j].startswith(phone_book[i]) or phone_book[i].startswith(phone_book[i+j]): return False del phone_book[i] return..
[Matplotlib] HeatMap 그리기 Introduction Python에서는 정말 많은 라이브러리들이 있다. 그 중에서도 머신러닝/딥러닝을 하는 사람들이라면 Heatmap을 한번쯤 써보지 않나 싶다. Heatmap은 '다양한 정보를 일정한 이미지 위에서 열 분포 형태로 visualization 한 것'을 의미한다. Code import matplotlib.pyplot as plt import numpy as np import torch data = torch.rand(128, 256) # freq, time # data = data.permute(1, 0) print(data.size()) data = data.numpy() plt.figure(figsize=(10, 9)) plt.matshow(data) plt.colorbar() 구현 ..
[문제풀이] Hash - 완주하지 못한 선수 1차 시도 def solution(participant, completion): part_dic = {person: 0 for person in participant} for person in completion: part_dic[person] = 1 for key, value in part_dic.items(): if value == 0: return key 첫번째 시도에서는 동명이인을 해결하지 못하였다. dictionary는 동일한 key를 가지는 형태를 허용하지 않기 때문이다. 어떻게 해결할까고민을 하다가 value에 사람의 인원수를 넣으면 어떨까 싶었다. 그래서 "사람:인원" 의 key-value형태를 구성하고, 반복문으로 completion 리스트를 돌면서 인원수를 감소시키고 인원수가 음수가 되..
[알고리즘] 해시 테이블 (Hash Table) Hash Table Hash Table는 연관배열 구조를 이용하는 자료구조 중 하나로써 단순하게 생각하면 'key-value'의 구조라고 할 수 있다. 연관배열 자료구조(associative array)란 key와 value가 1:1로 이루어진 구조이다. Hash는 검색과 저장이 빠른 자료구조이다. 파이썬에서는 Dictionary로 구현이되어있고, 자바에서는 java.util 하위에 HashMap, Map으로 정의되어있다. 해시는 값 자체를 Index로 사용하기 때문에 시간복잡도 O(1)로 매우 빠르다. hash table을 사용하여 해결할 수 있는 문제유형은 한 묶음의 데이터에 '중복이 없거나', 데이터가 몇번 발견되는지에 대한 '빈도를 세거나', '순서가 필요하지 않거나', 'key-value 쌍으로..
[PYTORCH] Truncated File Read Error error message /usr/local/lib/python3.6/dist-packages/PIL/TiffImagePlugin.py:819: UserWarning: Truncated File Read warnings.warn(str(msg)) PIL (pillow)라이브러리에서 A라는 이미지를 로드하면서 발생한 오류이다. 이유는 A라는 이미지가 손상된 상태이기 때문이다. 즉 코드의 문제는 아니고 손상된 이미지이기 때문에 발생하는 warning이다. 궁금증 해결 끝.
[Recognition] FoodRecognitionTask 시작(1) Introduction 연구실에서 진행하는 프로젝트 이외에 서브프로젝트로 무언가를 좀 해보고 싶었는데 친구가 일거리를 하나 뿌려주고 가서 겸사겸사 사이드 프로젝트로 Food Recognition을 진행하려 한다. 필자는 연구실에 들어와서 Image processing -> signal processing -> speech recognition -> emotion recognition -> speaker verification -> self-supervised learning 순서대로 타고 흘러갔다. 뭐가이리 많이 바뀌었냐 할 수 있겠지만 Image processing은 딥러닝을 처음 시작하는 사람이라면 누구든지 접해볼 수 있는 task중에 하나이다. 그러면서 어떠한 계기(?)에 의해서 speech 관련 ..
[WavAugment] audio augmentation 기법 정리 Introduction augmentation 기법은 데이터에 약간의 변화(원래 데이터의 특성을 잃지 않을 정도로)를 주는 기법이다. augmentation을 사용하므로써 한정적인 데이터를 늘려주는 효과를 볼 수도 있고 딥러닝 모델이 학습 데이터에 대해 overfitting되는 것도 막아주는 효과를 볼 수 있다. 그래서 대부분의 Task (필자가 알고있는 Speech, NLP, vision)에서 data augmentation 기법을 사용하고 있다. augmentation 기법은 self-supervised learning에서 필수로 필요한 기법 중 하나이다. 기본적으로 self-supervised learning은 supervised learning과 다르게 '정답'이라는 label이 없는 상태에서 학..