Data is ___ ?
article thumbnail
[RuntimeError: CUDA error: ouf of memory] 딥러닝 학습 시 메모리 에러가 뜰 때 !? | GPU 메모리 정리하기
에러일지 2024. 2. 17. 01:31

문제 상황 터미널에서 학습 코드를 실행시키자 마다 아래와 같은 에러가 발생했다. 곧바로, nvidia-mi 및 watch -d -n 0.5 nvidia-smi를 찍어보니 GPU를 사용하고 있지 않음에도 Memory-Usage 부분에서 메모리가 정리되지 않고 있었다. 문제 원인 실험을 하면서 input, output 찍어본다고 강제종료를 했던 탓,,! (Ctrl + c) 학습 프로세스를 강제 종료할 시에는 간혹 프로세스가 완전히 종료되지 않고 GPU 메모리에 찌꺼기가 남아 있는 경우가 발생한다. 이렇게 되면 다시 학습을 실행시킬 경우 메모리가 가득차서 학습이 되지 않는다. 문제 해결 1) 아래와 같은 명령어를 입력하여 딥러닝 학습을 실행시킨 파이썬 파일의 ID를 찾는다. ps aux | grep pytho..

[ModuleNotFoundError : No module named [패키지명]] 패키지가 없다고 뜰때 ?
에러일지 2023. 9. 26. 21:17

가상환경을 활성화하고 패키지를 설치하고 임포트 했는데, ModuleNotFoundError : No module named [패키지명]와 같은 에러가 발생했다. 이를 해결하는 방법을 정리하고자 한다. 모듈 자체가 설치되어 있지 않은 경우 # 가상환경 활성화 (conda activate [가상환경이름]) pip install [패키지명] conda install [패키지명] 서버 환경에 여러 버전의 Python이 설치되어 있는 경우 위의 방법은 원래 아는 방법이여서 이렇게 저렇게 설치를 해 보았지만, 정작 conda list에서 확인했을 때 원하는 패키지가 설치되어 있지 않았다. 영어로 막 적혀져 있는 출력 메세지를 자세히 보니 Defaulting to user installation because nor..

article thumbnail
[Host key verification failed] 서버 우회 접속이 안될 때
에러일지 2023. 8. 13. 17:08

연구실 컴퓨터로 계속 작업하다가 VOT 코드도 살펴보고 실험해볼까해서 오랜만에 연구실 서버에 들어가려했더니,,, 연구실 서버랑 내 컴퓨터랑 연결이 이상한지 주피터랩에 자꾸 들어가지지 않았다. ㅠ 해결방안까지 2가지 문제가 있었고 다행히 모두 해결 ! Host key verification failed 1. 주피터랩 접속 먼저 연구실 서버에 들어가서 주피터랩 설정하니 들어가지는 것 확인 2. 로컬 컴퓨터에서 연결 위와 같이 에러 발생 3. 해결방안 연구실 선배님 + 구글링의 도움으로 극적 해결,, 에러가 발생했다고 설명해준 경로로 타고 들어가서 known_hosts 파일을 지워준다. 처음에 이걸 아예 지워버려도 되나 ? 했는데 요청할때마다 파일이 생기는 것 같다. 4. 해결완료 channel 3 : ope..

article thumbnail
에라토스테네스의 체

에라토스테네스의 체 알고리즘 특정한 수의 범위 안에 존재하는 모든 소수를 찾아야 할 때 다수의 자연수에 대하여 소수 여부를 판별할 때 사용하는 대표적인 알고리즘 에라토스테네스의 체 알고리즘의 구체적인 동작 과정 1) 2부터 N까지의 모든 자연수를 나열한다. 2) 남은 수 중에서 아직 처리하지 않은 가장 작은 수 i를 찾는다. 3) 남은 수 중에서 i의 배수를 모두 제거한다. (i는 제거하지 않음 !) 4) 더 이상 반복할 수 없을 때까지 2번과 3번의 과정을 반복한다. 에라토스테네서의 체 알고리즘 동작 예시 1) 2부터 N까지의 모든 자연수를 나열한다. 2) 아직 처리하지 않은 가장 작은 수 2를 제외한 2의 배수는 모두 제거한다 3) 아직 처리하지 않은 가장 작은 수 3을 제외한 3의 배수는 모두 제거..

[파이썬] 약수, 배수, 소수

import math a,b = map(int, input().split()) math.gcd(a,b) math.lcm(a,b)

집합과 맵

백준 단계별로 풀어보기(집합과 맵) 파트에서 계속 시간초과가 발생했다. 해결방법으로는 두가지 정도로 요약할 수 있는데, 첫번째로는 리스트 대신 딕셔너리 사용, 두번째로는 개수를 세는 문제에서 for문을 돌면서 세지 말고 파이썬 함수 Counter를 사용하는 것이다. 이 두가지에 대해서 정리를 해보고자 한다. 딕셔너리 diction_name = {} diction_name[key_name] = value_name 딕셔너리를 { }를 통해 하나 만든다. 리스트와 달리 값을 추가할 때 list_name.append(value)가 아니라 key를 찾아서 value를 지정해주는 형식 Counter from collections import Counter c = Counter(nm_name) key 값으로는 이름,..

재귀함수

정의 재귀함수는 함수 안에 함수를 호출하는 함수 (자기 자신을 호출하는 형태) 함수 내에서 그 함수를 다시 사용하는 것 더보기 ⚠ return : 함수를 실행했던 위치로 돌아가라, 함수를 여기서 끝내라는 의미 주의할점 재귀함수는 자기 자신을 호출하기 때문에, 잘못하면 무한히 호출할 수 있다. 따라서 탈출 조건이 필수이다. 예제 간단한 예제 def recursion(n) : # n이 0이면 빠져나오기 if n == 0 : return 0 # n 출력 print(n) # 다시 recursion 함수에 n-1 입력 return recursion(n-1) ---------------------------------------------------------------------------------- recur..

article thumbnail
[Pytorch] torch.max( ) & torch.argmax( )
Python/라이브러리 2023. 1. 30. 12:31

torch.max : 최댓값을 출력 dim=0이면 dim=1이면 뭐를 기준으로 어떻게 더한다...이런게 나는 헷갈려서 터득한 방법이 있다 ! torch.sum과 마찬가지로 인덱스를 이용하여 구하는 방법 예를 들어, 아래와 같이 dim=0을 기준으로 하면 인덱스 0번째 값이 5이므로, 5개가 묶인 곳 중에서 최댓값 하나를 산출하고 나머지 1번째 인덱스 값만큼의 크기로 출력 (즉, (1, 3)크기의 행렬이 출력된다.) >>> import torch >>> a = torch.randn(5, 3) >>> print(a) """ tensor([[-1.1260, -0.7415, -0.9703], [-0.8786, -1.6561, -0.2796], [ 0.1368, 0.8606, -0.3936], [-1.1206, ..

article thumbnail
[백준] 10989번 수 정렬하기 (브론즈 1)
Python/코딩테스트 2023. 1. 29. 22:27

문제 N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. 출력 첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다. 입력 및 출력 예시 예제 입력 예제 출력 10 1 1 2 2 3 3 4 5 5 7 5 2 3 1 4 2 3 5 1 7 풀이 💡 먼저 생각해야 할 것 범위가 커서 시간초과, 런타임 에러 등이 발생할 수 있으므로 무조건 input( )으로 숫자를 받는것은 위험하다는 것을 먼저 생각하자. 그러면 생각할 수 있는 쉬운 방법이 sys.stdin.readline( ) (하지만 이렇게..

article thumbnail
[Pytorch] GPU device
Python/라이브러리 2023. 1. 28. 14:34

만약 데이터가 GPU를 사용해서 학습을 해야하는 상황이라면 코드 내에서 해당하는 데이터들을 GPU용 텐서로 변환해 주어야 한다. 먼저 device를 정의해주기 ! import torch device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") CNN 추가추가 RNN 데이터 처리 시퀀스 데이터를 만드는 함수 내에서 x_seq, y_seq를 변환 후 return y데이터는 view를 사용하여 2차원으로 바꿔준다. 왜냐하면 MSE Loss가 기본적으로 2차원 target data를 받기 때문 ! return torch.FloatTensor(x_seq).to(device), torch.FloatTensor(y_seq).to(device).v..

profile on loading

Loading...