본문 바로가기

분류 전체보기

(594)
[Docker] link 옵션 docker compose로 해보려했으나 yml 파일 다음이 무엇인지 알 수가 없었다... 그래서 --link옵션으로 설정했다. docker run -itd --name pytorch2 --link a282cf764a14 -v /mnt/d/train_dataset:/workspace -p 8889:8888 --gpus all --restart=always pytorch/pytorch:1.9.1-cuda11.1-cudnn8-devel nvcc -V 의 영광을 이곳에 남긴다. pytorch버전과 cuda버전이 맞아야 실행이 된다. 버전 문제가 참 많다.. pytorch 이미지 버전 pytorch/pytorch:1.9.1-cuda11.1-cudnn8-devel cuda 이미지 버전 11.1 버전이 맞는 것을 ..
[Docker] Systemctl 오류 이 오류 하나 잡겠다고 하다 docker가 아예 실행안돼버리는 대참사가 있었다. sudo service docker restart 안됨 → systemctl 사용 간단하게 정리하자면 Docker daemon을 돌려주기만 하면된다. 방금처럼 dockerd를 매번 실행하기는 번거러우니 아래 두 라인을 도커 설치 이후 입력하면 편할 것이다. systemctl start docker systemctl enable docker systemctl start docker docker를 daemon으로 실행하라는 명령어로 dockerd와 같지만 로그없이 실행한다고 보면 편하다 systemctl enable docker 컴퓨터가 새로 시작하거나 부팅시 자동으로 docker daemon을 실행하라는 명령어이다. Faile..
[Linux] ubuntu 버전 확인 lsb_release 명령을 사용하여 Ubuntu 버전 확인 /etc/issue 파일을 사용하여 Ubuntu 버전 확인 /etc/os-release 파일을 사용하여 Ubuntu 버전 확인 hostnamectl 명령을 사용하여 Ubuntu 버전 확인 Gnome을 사용하여 Ubuntu 버전 확인 lsb_release 명령을 사용하여 Ubuntu 버전 확인 이 방법은 모든 버전의 Ubuntu에서 작동합니다. lsb_release 명령 줄 유틸리티는 Linux 배포에 대한 Linux Standard Base (LSB) 정보를 표시합니다. lsb_release -a 명령을 사용하여 시스템에 설치된 Ubuntu에 대한 정보를 표시합니다. lsb_release -a 출력: No LSB modules are avail..
[JAVA] Java Comparable, Java Comparator 따라서 우리가 임의로 만든 클래스에서도 Comparable 인터페이스를 구현하기 위해서는 compareTo()를 재정의해줘야 한다. 닉네임순으로 정렬하고 싶다면 아래와 같이 nickname 으로 compareTo를 재정의한다. package compare; public class MapleStoryUser implements Comparable { private String nickName; // 닉네임 private String guildName; // 길드명 private int level; //레벨 private int money; // 보유 메소 //생성자 public MapleStoryUser(String nickName, String guildName, int level, int money) ..
[JAVA] 우선순위 큐(Priority Queue), 오름차순(기본), 내림차순 사용하기 우선순위 큐도 Java에서 내부적으로 구현되어 있어 사용이 용이하다. 큐와 동일하게 add(), peek(), poll() 등의 메소드를 사용할 수 있다. add() 대신 offer() 메소드를 사용해도 동일한 결과를 얻는다. 우선순위 변경하기 우선순위를 정하는 기준은 Java의 정렬 기준과 동일하다. Java는 기본적으로 낮은 숫자부터 큰 숫자까지 오름차순으로 정렬하게 되는데, 만약 다른 오름차순으로 정렬하고 싶다면 Comparator 클래스나 Comparable 인터페이스를 이용해야 한다. Ex) 객체의 어떤 값에 따라 우선순위를 정해 정렬해야 할때, 오름차순이 아닌 내림차순 정렬을 할때 등등 Integer는 Collections.reverseOrder()를 사용해 내림차순 정렬을 할 수 있..
[Docker] Docker compose version: '3' services: cuda111: image: cuda111:cuda11.1 ports: - "8888:80" volumes: - /mnt/d/train_dataset:/workspace tty: true stdin_open: true pytorch: image: pytorch/pytorch ports: - "8889:80" volumes: - /mnt/d/train_dataset:/workspace tty: true stdin_open: true docker-compose.yml 파일을 만들었다. 오류 없이 실행되는 것까지 확인했다. 딥 러닝을 위한 docker-compose 설치 및 사용법 [pytorch, tensorboard 예제] Docker를 도입한지 시간이 흘렀고, 현..
[Docker] CUDA Image 가져와서 딥러닝 환경 세팅까지 cuda버전 10.1이 설치된 상황인데 더 높은 버전이 필요한 상태이다. 그럴 때 해당 방법을 쓰면 해결 될 것 같다. (아직 안해봄) Docker CUDA Image 가져와서 딥러닝 환경 세팅까지 기존 서버 : Ubuntu 18.04 CUDA 10.2 NVIDIA RTX 2080 Ti 위에 CUDA 10.0 도커를 구동해야 하는 상황이 왔다. 학습용 코드가 tensorflow-gpu==1.13.1, keras==2.2.4를 지원하는데 버전을 맞추기 위해서는 CUDA 10... huhji2newv.tistory.com 1. Docker Pull from Docker Hub docker hub에서 적당한 docker image 검색 nvidia/cuda 공식 이미지 중에서 CUDA 10.0, cudnn7,..
[Python] PIP Command 설치된 Package 확인하기 pip list pip show PackageName list 옵션의 경우 설치된 모든 Package name 과 Version 을 출력 해 줍니다. show 옵션의 경우 지정한 Package 에 한하여 상세한 내용을 출력해 줍니다. Package 가 설치되어 있는지 확인하기 pip search PackageName search 옵션의 경우 설치된 Package 가 있는지 찾아주며 각 모듈별 상세한 내용을 보여 줍니다. Package install 하기 pip install PackageName Package upgrade 하기 pip install --upgrade PackageName or pip install -U PackageName Package uninstall ..
[PyTorch] 버전 변경하기 v1.7.1 Conda OSX # conda conda install pytorch==1.7.1 torchvision==0.8.2 torchaudio==0.7.2 -c pytorch Linux and Windows # CUDA 9.2 conda install pytorch==1.7.1 torchvision==0.8.2 torchaudio==0.7.2 cudatoolkit=9.2 -c pytorch # CUDA 10.1 conda install pytorch==1.7.1 torchvision==0.8.2 torchaudio==0.7.2 cudatoolkit=10.1 -c pytorch # CUDA 10.2 conda install pytorch==1.7.1 torchvision==0.8.2 torchaud..
[Detectron2] 설치 pytorch와 cuda 버전이 맞아야 한다. 아래와 같은 버전이 아니라면 설치해도 오류가 난다. 원래 pytorch버전 1.10을 1.7로 낮추어서 시간 엄청 들여서 설치한 cuda10.1에 맞췄다. cuda버전을 다시 높여서 재설치하긴 싫었다. Releases · facebookresearch/detectron2 Detectron2 is FAIR's next-generation platform for object detection, segmentation and other visual recognition tasks. - facebookresearch/detectron2 github.com Requirements Linux or macOS with Python ≥ 3.6 PyTorch ≥ 1.8 an..
[Detectron2] Densepose COCO 데이터셋 Point-based annotations: dp_x and dp_y: image coordinates of the annotated points along the horizontal and vertical axes respectively. The coordinates are defined with respect to the top-left corner of the annotated bounding box and are normalized assuming the bounding box size to be 256x256; dp_I: for each point specifies the index of the fine segmentation chart it belongs to; dp_U and dp_V: po..
[Jupyter Notebook] 실행 작업 확인 및 종료 jupyter notebook list I get this: http://localhost:8889/?token=blah :: /Users/me/storyfit/data-mining/research http://localhost:8891/?token=blah2 :: /Users/me/storyfit/data-mining http://localhost:8890/?token=blah23 :: /Users/me/storyfit/data-mining/research http://localhost:8888/?token=blah54 :: /Users/me/storyfit/data-mining/research The port 8888 is already in use, trying another port. 라는 에러메..
[CUDA] NVIDIA PyTorch Container Versions pytorch 1.8버전이라면 최소 11.1 이상 버전을 깔아야 한다... PyTorch Release Notes :: NVIDIA Deep Learning Frameworks Documentation The NVIDIA container image for PyTorch, release 20.12, is available on NGC. Driver Requirements Release 20.12 is based on NVIDIA CUDA 11.1.1, which requires NVIDIA Driver release 455 or later. However, if you are running on Tesla (for example, T4 or any ot docs.nvidia.com
[Linux] remove “Ignoring file in directory /etc/apt/sources.list.d/ as it has an invalid filename extension To fix your first problem run this in a terminal: sudo rm /etc/apt/sources.list.d/*.disable (An older version of the package management tool left these files when you disabled the PPAs. Removing them is pretty safe) Your second problem comes from and old Karmic repository. To find out which one run this in a terminal: cd /etc/apt grep -rw karmic * Once you know which repository it comes from it ..
[Linux] gcc versions 바꾸기 에러 - gcc versions later than 8 are not supported in cmake 0. 선요약 및 원인 이 게시물(2020년 4월)을 따라 문제를 해결하였다. 해당 게시물의 내용을 그대로 가져와 번역하였다. 문제는 해당 소프트웨어를 컴파일하기 위한 gcc의 버전이 ‘너무 높다’는 것이었다. 우분투 20.04 LTS 버전에서 현재 gcc를 설치하면 기본적으로 gcc 9를 설치해버린다. 이럴 때엔 gcc 하위 버전을 설치하고 컴파일하는 동안에만 해당 gcc로 업데이트해주면 된다. 이 과정은 Ubuntu 20.04 LTS Focal Fossa 버전에서 실행되었다. 하지만 다른 버전의 리눅스에서도 충분히 따라할 가치가 있으므로 참고하면 좋다. 1. 단계 여러 개의 C/C++ 컴파일러 버전을..
[CUDA] CUDA 설치해도 nvcc --version 안되는 경우 (Command 'nvcc' not found error) 리눅스에서 설치된 CUDA version을 확인하는 명령어는 다음과 같습니다. ​ nvcc --version ​ 하지만, 가끔 다음과 같이 CUDA를 설치했음에도 다음과 같은 에러가 발생하기도 합니다. ​ ​ 이럴 때는 환경변수 부분을 살펴보면 됩니다. ​ 사용자 별명을 관리하는 '~/.bashrc' 파일을 nano, gedit 등 편집기를 통해 키고 하단에 다음 두 줄을 입력합니다. ​ export PATH=/usr/local/cuda-11.2/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda-11.2/lib64:$LD_LIBRARY_PATH ​ 기본 경로 환경변수인 PATH와 LD_LIBRARY_PATH가 설정되어야 합니다. ​ 이때, 실제 CUDA 버전과 CUD..
[CUDA] nvdia driver, CUDA, CUDNN 설치 여부 및 버전 검사 1. Nvidia Driver 설치 여부 및 버전 확인 $ cat /proc/driver/nvidia/version → 정상적으로 설치되어 있는 경우 아래와 같이 출력된다. NVRM version: NVIDIA UNIX x86_64 Kernel Module 430.34 Wed Jun 26 12:19:48 CDT 2019 GCC version: gcc version 7.4.0 (Ubuntu 7.4.0-1ubuntu1~18.04.1) 이외 nvidia-smi를 이용해서 확인하는 방법도 있다. (이것을 더 추천한다.) $ nvidia-smi 2. CUDA $ nvcc --version → 정상적으로 설치되어 있는 경우 아래와 같이 출력된다. nvcc: NVIDIA (R) Cuda compiler driver ..
[Docker] WSL + Docker + GPU + Pytorch + Jupyter notebook wsl에서 진행하려면 제일 중요한 것은 윈도우 11이어야 한다는 것이다. 이게 아니면 cuda가 암것도 안된다. 이것때문에 다 설치를 해도 안됐던 것이다. 무조건 빌드버전을 확인해야한다. 파워셸에서 winver쳤을 때 빌드버전이 20150 이상이어야 WSL2에 쿠다 설치가 가능하다. 20150 이상 버전이라면 사전작업을 스킵해도 된다. 아래 프로세스는 윈도우 빌드 20150 이상으로 업데이트하기 위한 작업이다. 1. 윈도우 11버전에서 빌드환경 20xxx이상 wsl설치 2. wsl2로 업그레이드 해서 docker 사용 가능하게 하기 3. pytorch docker 이미지 다운로드 4. docker-nvidia 설치해서 docker에서도 gpu사용가능하도록 하기 5. nvidia 드라이버 설치 6. cud..
[ML] K-Fold Cross Validation(교차검증) 정의 - K개의 fold를 만들어서 진행하는 교차검증 사용 이유 - 총 데이터 갯수가 적은 데이터 셋에 대하여 정확도를 향상시킬수 있음 - 이는 기존에 Training / Validation / Test 세 개의 집단으로 분류하는 것보다, Training과 Test로만 분류할 때 학습 데이터 셋이 더 많기 때문 - 데이터 수가 적은데 검증과 테스트에 데이터를 더 뺐기면 underfitting 등 성능이 미달되는 모델이 학습됨 과정 - 기존 과정과 같이 Training Set과 Test Set을 나눈다 - Training을 K개의 fold로 나눈다 - 위는 5개의 Fold로 나눴을때 모습이다 - 한 개의 Fold에 있는 데이터를 다시 K개로 쪼갠다음, K-1개는 Training Data, 마지막 한개는 V..
[ML] Ensemble - DL에 적용 딥러닝 성능을 향상하기 위한 기법으로 사용할 수 있다. 각각 다른 신경망으로 학습데이터에 대해 각각 따로 학습을 시킨 후, n개의 예측값을 출력시키고 그것을 n으로 나눈 평균값을 최종 출력으로 하는 것이다. (Stacking사용) 오버피팅의 해결과 약간의 정확도 상승 효과가 실험을 통해 입증되었다. 또한 평균이 아닌 투표방식, weight별 가중치를 다르게 주는 방법들도 존재한다. ex) pretrained 된 모델들을 앙상블모델로 만들어 분류의 성능을 높이자 DataLoader 생성 모델1, 모델2, 모델3 생성 (ResNet, Inception, DensNet 예시) 각 모델에서 컨볼루션 feature 추출 그 feature들로 학습, 검증 데이터셋 생성 및 DataLodaer 생성 앙상블 모델 생성..
[ML] Curse of Dimension(차원의저주) 데이터의 차원이 증가하면 이것을 표현하기 위한 데이터양이 기하급수적으로 올라간다 우리에게 4개의 데이터가 있다고 가정해볼게요. 그리고 모든 축의 길이가 2인 2차원공간과 3차원공간에 4개의 데이터를 집어넣을거에요. 왼쪽그림에서는 면적당 데이터가 차지하는 밀도는 1이겠네요. 우측그림에서는 면적당 데이터가 차지하는 밀도가 1/2일거에요. 그렇다면 공간의 차원이 높아질 수록 같은 데이터량이라고 할지라도 (데이터가 공간을) 차지하는 비율이 낮아진다고 할 수 있겠죠? 우리가 30개의 데이터를 갖고 있는다고 했을때보다 1000개의 데이터를 갖고 있을때 overfitting이 일어날 확률이 더 적을거에요 (이에 대한이유는 앞선글의 가위 예시를 통해 이해해주시면 좋을것 같아요). 결국엔 같은 공간차원이라고 해도 데이터..
[ML] Activation2 - 존재하는 이유 Perceptron은 많은 문제를 해결해 줄 것으로 기대했어요. 예를들어 두 개의 입력값 x1, x2 ∈ {0,1} 중 하나만 1이라는 입력이 들어오면 1이라는 결과를 도출하는 OR 문제같은 경우나, 두 개의 입력값이 모두 1이어야만 1이라는 결과를 도출하는 AND 문제와 같은 경우는 쉽게 해결이 가능했어요. x1을 X로, x2를 Y라고 하고 Y를 C라는 임의의 상수라고 표현하면 activation function을 거치기 직전인 w1X+w2Y=C 라는 식이 만들어 지겠네요. 그런데 왼쪽 식을 Y=(-w1X+C)w2 라고 바꿔주면 직선의 방정식 (linear) 이 되는 것을 볼 수 있죠? 충분히 두 개의 입력으로 구성된 perceptron으로 문제 해결이 가능해졌어요. 그런데 우리가 정의한 문제공간(Or..
[PyTorch] 모델 앙상블(ensemble) 하기 GitHub - taewanme/DL_With_PyTorch Contribute to taewanme/DL_With_PyTorch development by creating an account on GitHub. github.com ↑emsemble 코드 모델 앙상블(ensemble) 하기 학습이 잘된 몇가지 모델이 있고, 각각의 모델의 성능을 결합하여 최선의 결과를 얻고 싶을 때 모델 앙상블을 이용한다. 예시) 잘 학습된 가중치를 포함한 모델 1~3이 있다고 하자. 모델을 통해 dhpark1212.tistory.com
[Kaggle] 딥러닝 정확도 높이기 딥러닝 정확도 높이기딥러닝 연구를 하면서 누구나 하게되는 질문이 있습니다. "어떻게 해야 정확도를 올릴 수 있을까??&qu...blog.naver.com
[ML] 뉴럴네트워크모델 (구조, 비용함수, 경사하강법, Backpropagation 알고리즘) Backpropagation 알고리즘 이건 10번은 봐야될 강의다!
[Git] Git clone --depth=1 Git 리파지토리의 이력이 많아지거나, 리파지토리 용량이 클수록 clone을 받는데, 시간도 많이 걸리고 스토리지도 많이 필요하게 됩니다. 그래서 리파지토리의 일부 이력만 받아오는 방법이 있는데, 이를 전문용어로 shallow clone 이라고 합니다. 얕은 클론이라고 해석할 수 있는데, 이걸 기억하면 옵션도 쉽게 기억할 수 있습니다. 옵션이 depth거든요. shallow clone 앞에서도 설명했드시 Git 리파지토리의 전체 이력 중 일부만 받아오는 행위를 shallow clone이라고 합니다. 그 반대, 즉 전체 이력을 받아오는 것을 deep clone (깊은 클론)이라고 합니다. 대개의 경우, 전체 이력을 받아오지만, 리파지토리가 매우 크거나, 오랜동안 쌓인 이력이 매우 많을 경우, 또는 요즘은 ..
[ML] Support Vector Machine(SVM)
[C] 실행 파일 옵션 사용하기 C 언어의 main 함수는 다음과 같이 실행 파일 옵션을 매개변수로 받을 수 있습니다. int main(int argc, char *argv[]); 먼저 option이라는 프로젝트를 만들고 main.c 파일을 추가한 뒤 다음 내용을 입력하세요. Win + R을 누른 뒤 cmd.exe를 입력하여 명령 프롬프트를 실행합니다. 그리고 프로젝트 디렉터리의 Debug 디렉터리로 이동한 뒤 다음과 같이 실행합니다(c:\project\option\Debug). option.exe에 Hello, C, Language이라는 옵션을 지정했습니다. 이 상태로 실행을 해보면 실행 파일 이름과 옵션이 그대로 출력됩니다. main 함수에서 첫 번째 매개변수 argc는 옵션의 개수이며 argv는 옵션 문자열의 배열입니다. 옵션은 ..
[eclipse] Java 실행 시 Argument 사용과 Option정의 1. Java Argument Java Application은 main메소드의 인자값으로 String타입의 배열형태로 받도록 되어있습니다. 아래 예제는 Java실행 시, argument를 출력해주는 예제입니다. public class ArgumentExample { public static void main(String[] args) { if(args!=null) { for(int i=0; i
[Intellij] Java 컴파일시 args 세팅하기 1. Edit configuration setting Alt + Shift + F10을 눌러 컴파일하려는 프로젝프 명을 포인팅 한 후, 오른쪽 방향키를 눌러 메뉴를 확장하여 Edit라는 버튼을 클릭합니다. 2. args 입력 위창에 뜨면 빨간색 밑출을 쳐놓은 곳에 원하는 인풋값을 넣어 하단의 run버튼을 클릭하여 실행합니다. [Intellij]자바 컴파일시 args 세팅하기 커맨드라인에서 자바 클래스 파일을 실행하면 실행명령어 뒤에 args를 바로 입력 할 수 있었지만 IntelliJ를 이용해 컴파일을 하며 args를 세팅하려니 당황스러웠습니다. 하지만 언제나 방법은 있는 storyinglass.tistory.com