일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- OpenCV
- YOLO
- Visual Studio
- Python
- C#
- mysql
- error
- paramiko
- C++
- 컨테이너
- pytorch
- VS Code
- JSON
- SSH
- Numpy
- 기타 연주
- 프로그래머스
- 핑거스타일
- ubuntu
- nvidia-smi
- pandas
- Selenium
- Linux
- 채보
- windows forms
- C
- 오류
- pip
- label
- Docker
- Today
- Total
목록분류 전체보기 (330)
기계는 거짓말하지 않는다
rm -rf 명령어는 리눅스에서 한 번 잘못 입력하면 중요한 데이터가 한순간에 사라진다.특히 root 디렉터리나 중요한 프로젝트 폴더를 실수로 지웠을 경우, 복구는 굉장히 어렵다.이런 경우를 예방하기 위해, 특정 경로에 대해 rm 명령어가 작동하지 않도록 스크립트로 보호하는 방법이 있다.간단한 shell 스크립트를 통해 특정 디렉터리에 대한 삭제를 차단할 수 있다. 아래는 예시이며, 스크립트를 vi 또는 nano와 같은 편집기를 이용하여 /usr/local/bin/rm에 저장한다.#!/bin/bash# 보호할 경로들을 배열로 정의BLOCKED_PATHS=( "/home/ubuntu/data" "/home/ubuntu/project" "/var/data/sensitive")# 환경 변수로 보호 우회 ..
리눅스에서는 cat *.tar.gz | tar zx처럼 간단하게 압축을 풀 수 있지만, Windows PowerShell에서는 이 방식이 시스템을 멈추게 만들 수 있다.특히 파일 용량이 큰 경우엔 RAM이 터지고 디스크 I/O도 100%까지 도달할 수 있다. 문제가 되는 명령어cat 공통파일이름-* | tar zx이 명령어는 PowerShell에서 문제가 생길 수 있다. PowerShell의 cat은 모든 파일 내용을 메모리에 올리면 RAM 과부하tar는 스트리밍을 기대하는데, 입력이 느리거나 불완전하면 CPU+RAM 과부하해결 방법copy /b로 파일을 하나로 병합tar -xvzf로 압축 해제cmd /c "copy /b 공통파일이름-* combined.tar.gz"# 파일이 따로라면cmd /c "cop..
간혹 특정 프로그램이 멈춰버려서 Alt+F4나 작업 관리자를 열어도 화면에서 볼 수 없이,작업 표시줄만 볼 수 있는 상황에서 마우스와 키보드만 사용할 수 있는 경우가 있다. 나의 경우에는 캡처 도구(snipping tool)을 사용할 때, 캡처 도구가 정지되어 마우스와 키보드만 사용할 수 있었는데작업 관리자도 볼 수 없었고 윈도우 키(Win)를 입력하여 시작 아이콘과 작업 표시줄만 볼 수 있는 상황이었다.전체 화면(게임 등) 상태에서 단축키가 먹히지 않을 수 있어, 윈도우 키 + D(바탕화면 보기)또는 윈도우 키 + Tab(작업 보기), Alt + Tab 등을 시도해 보았으나 소용없었다. 작업 관리자의 옵션에 "항상 위에 표시"를 선택해 두면 문제없었지만, 잠깐 해제해두었던 상태였다.기본적인 강제 종료 ..
Windows 환경에서 multiprocessing(DataLoader의 num_workers>0)이 내부적으로 프로세스를spawn(push)할 때 발생 할 수 있는 오류의 예이다.EOFError: Ran out of input...ForkingPickler(file, protocol).dump(obj)_pickle.PicklingError: Can't pickle at 0x0000029A93FCF820>: attribute lookup on __main__ failed익명 함수(lambda)나 로컬 함수 등 피클로 직렬화할 수 없는 객체를 읽어 들이려 하기 때문이다num_workers=0으로 설정하면 해결은 되지만 여러 workers를 사용하여 데이터를 읽으려 할 때는 이렇게 할 수 없다.아래는 W..
딥러닝 실험을 할 때, 결과의 재현성은 매우 중요하다. 실험의 일관성을 유지하기 위해서는 동일한 조건에서 실험을 반복할 수 있어야 한다. 이를 위해 랜덤 시드를 고정하는 방법을 사용할 수 있고, 아래는 랜덤 시드를 고정하는 함수와 모델을 로드하는 예시이다.import torchimport randomimport numpy as npdef set_seed(seed=42): random.seed(seed) # random module 시드 고정 np.random.seed(seed) # numpy 랜덤 시드 고정 torch.manual_seed(seed) # PyTorch CPU 랜덤 시드 고정 torch.cuda.manual_seed_all(seed) # 멀티 GPU 환경 동일..
PyTorch의 forward() 연산 방식은 기본적으로 순차적으로 실행되는 것처럼 보이지만, 내부적으로 가능한 연산을 병렬로 실행한다. 특히 GPU에서는 연산이 비동기적으로 수행될 수 있고병렬 처리를 더욱 효율적으로 활용할 수 있다.연산 그래프PyTorch에서 forward() 실행 시 생성되는 연산 그래프(Computation Graph)는동적 방식(Dynamic Computation Graph)으로 작동한다.이는 모델의 forward pass 과정에서 연산이 발생할 때마다 그래프가 즉시 생성되는 방식이다.연산 그래프의 특징동적 생성(Dynamic Graph)TensorFlow의 정적 그래프(Static Graph)와 달리, PyTorch는 실행 시점에서 그래프를 즉시 생성한다.따라서 모델 구조를 유..
Python의 tracemalloc은 코드에서 메모리 할당을 추적할 수 있도록 도와주는 기본 모듈이다.가장 많은 메모리를 할당하는 5개의 파일을 표시한 출력 형식은 아래와 비슷하다./home/user/test.py:1817: size=18.2 MiB, count=556, average=33.5 KiB:672: size=438 KiB, count=4584, average=98 B/usr/lib/python3.10/threading.py:258: size=417 KiB, count=1384, average=309 B:241: size=175 KiB, count=1871, average=96 B/usr/lib/python3.10/queue.py:207: size=144 KiB, count=467, averag..
Kubernetes Pod Docker 컨테이너 내에서 nvidia-smi Failed to initialize NVML: Unknown Error Kubernetes Pod Docker 컨테이너 내에서 nvidia-smi Failed to initialize NVML: Unknown Error쿠버네티스 파드의 도커 컨테이너 내에서 nvidia-smi를 입력했을 때, 간혹 아래의 오류를 보는 경우가 있다.Failed to initialize NVML: Unknown Error컨테이너를 정지했다가 재시작하면 동작하긴 하지만 근본machine-does-not-lie.tistory.com이 글에 이은 정보이다.Docker 컨테이너 내에서 nvidia-smi를 입력했을 때, 간혹 아래의 오류를 보는 경우가 있다..