본문 바로가기

CS97

[코드트리챌린지] 늦었지만 09.05 ~ 09.11 공부 기록..! 목차 2023/09/05 실력 진단 결과 진단을 시행하였는데, 시뮬레이션 문제 풀이 속도가 느렸고, 개념과 문제 5개를 추천받아 풀이함. 1. 방향에 맞춰 이동 풀이 전략 - 동서남북에 대한 dx, dy를 미리 선언해준 뒤, 움직이려는 방향에 움직일 거리를 곱해 더해준다 코드트리 해설 참고 - 시간복잡도 O(n) - 공간복잡도 O(1) 풀이 코드 n = int(input()) moves = [] for _ in range(n): m,c = input().split() moves.append((m, int(c))) x, y = 0, 0 directions = {'W':0, 'S':1, 'N':2, 'E': 3} dx, dy = [-1, 0, 0, 1], [0, -1, 1, 0] # W S N E for m.. 2023. 9. 12.
주피터 노트북 문서(.ipynb) 커맨드로 실행하기 (nbconvert, nohup, &) 목차 배경 파이썬을 사용하여 데이터를 분석하거나 모델링을 할 때 주피터 노트북 문서인 ipynb 확장자의 파일을 흔하게 사용한다. 이 파일은 vscode나 jupyter server를 띄우면 파이썬 코드를 셀(cell) 단위로 실행하고, 실행 결과가 문서에 기록되어 데이터를 다룰 때에 매우 편리하다는 장점이 있다. 하지만, 네트워크가 끊기거나, 문서를 닫으면 문서의 실행이 중단된다는 단점이 있다. 나는 이 때문에 모델을 학습하다가 중단되어 눈물을 흘린 적이 한 두 번이 아니다....! 잘 작성해둔 주피터 노트북의 특정 파라미터만 변경하여 여러 실험을 할 때에 유용한 방법을 소개한다. 이 방법은 간단히 말하면 주피터 커맨드와 리눅스 커맨드 몇 가지를 조합하여, ipynb 파일을 CLI로 실행하면서도, 문서.. 2023. 9. 1.
파이썬 백준 이유모를 에러 발생 (input -> sys.stdin.readline() 으로 해결) 나의 경우 11724번 문제와 1260번 문제를 해결하는데, 코드는 문제 없이 동작하는 것 같은데 자꾸 에러가 발생한 적(시간초과 등)이 있다. 확인해보니, python에서 input을 사용해 입력을 받을 때, 입력의 개수가 매우 많아지면 input() 함수로는 커버가 안되는 듯하다. 이러한 경우 input을 sys.stdin.readline으로 대체하여 받아야 한다. (참고 링크) input = sys.stdin.readline() 나는 위 코드를 맨 윗 줄에 추가한 뒤, input을 사용할 때와 동일하게 코드를 구성하였더니, 오류 나던 것들이 문제 없이 해결되었다! 2023. 8. 29.
PyTorch GPU 메모리 해제하기 (PyTorch OOMError) Pytorch로 모델을 학습하다보면 GPU 메모리가 꽉 차서 inference 등의 다른 작업이 안되는 경우가 있다. 기본적으로 메모리에 아무것도 올라가지 않은 상태에서 모델을 메모리에 올려 학습하려 할 때 나는 OOM은 배치 사이즈를 작게 조절하거나, 모델의 크기를 줄이는 등의 근본적인 문제를 해결해야 한다. 허나, 동일 조건에서 학습은 충분히 잘 되는데도 불구하고, 다른 작은 작업이 안되는 경우, 다음과 같은 방법을 통해 문제를 해결해볼 수 있다. https://github.com/pytorch/pytorch/issues/16417 를 참고하였다. Python Garbage Collection 기능 및 토치 캐시 비우기 기능을 사용한다. (참고 위치) 나의 경우, 아래 코드만 가지고 추론에 성공하였는.. 2023. 8. 28.
datasets.load_metric ModuleNotFoundError (해결) 오류 상황 오류가 발생한 작업 from datasets import load_metric 오류 메시지 --------------------------------------------------------------------------- ModuleNotFoundError Traceback (most recent call last) ... ImportError: cannot import name 'COMMON_SAFE_ASCII_CHARACTERS' from 'charset_normalizer.constant' ([가상환경경로]/lib/python3.10/site-packages/charset_normalizer/constant.py) 해결 방법 1. 라이브러리 설치 (참고: https://stackov.. 2023. 8. 28.
[이코테] 동적계획법 (Dynamic Programming) 개념 및 문제 풀이 정리 본 포스팅은 유투브에 온라인 배포되어 있는 나동빈 님의 이코테 강의를 수강하며 정리한 내용을 기록한 것입니다. 자세한 내용이 궁금하다면, 링크를 참고하시길 바랍니다. 포스팅 내 코드 블록은 깃허브에서 찾을 수 있음. 수정 필요 목차 개념 정리 동적계획법(Dynamic Programming)이란? 메모리를 활용하여 시간 효율성을 비약적으로 향상시키는 방법 두 가지 조건할 때 사용할 수 있음 이미 계산한 결과를 메모리에 저장하여, 다시 계산하지 않도록 함 Top-down 방식과 Bottom-up 두 가지 접근 방식이 있는데, Bottom-up 방식을 지배적으로 사용하는 편 DP의 조건 최적 부분 구조 (Optimal substructure): 큰 문제를 작은 문제로 쪼갤 수 있어야 함 중복되는 부분 문제 (.. 2023. 8. 28.