본문 바로가기

전체 글

(594)
[Linux] Terminator 화면 분할 [개발환경/Ubuntu] Terminator - 터미널 화면 분할설치 sudo apt update sudo apt install terminator -y단축키 ctrl + shift + e 좌우 분할 ctrl + shift + o 상하 분할 ctrl + shift + w 창 닫기 alrt + 화살표 창 이동 기본 터미널 설정 sudo update-alternatives --config x-terminal-emulatroyleej9.tistory.com 설치sudo apt updatesudo apt install terminator -y단축키ctrl + shift + e 좌우 분할ctrl + shift + o 상하 분할ctrl + shift + w 창 닫기alrt + 화살표 창 이동기본 터미널 설정sudo..
[Linux] ubuntu에서 사라진 dock 살리기 우분투(ubuntu)에서 사라진 dock 살리기현상 우분투에서 화면 왼쪽이나 아래에 놓고 많이 쓰는 프로그램 아이콘들을 두고 사용하는 독(dock)이 얼마전부터 사라져서 프로그램을 선택하거나 세팅을 GUI로 바꾸고 싶을 때 불편함이 많았curioso365.tistory.com해결책: gnome shell 다시 켜기(restart)다음 링크에 해결책이 제시되어 있었다.leimao.github.io/blog/Ubuntu-Dock-Disappear/ Ubuntu Dock Disappearance FixHello Underworld.leimao.github.io결국 gui를 구성하는 shell이 문제이니 다시 켜야 하는 것이었다. 우분투 gui에서 간단하게 다시 켜는 방법이다.  ALT + F2 를 누르면 명령..
[Linux] vi replace all :%s#/home/avikus-cv/workspace/copilot/build_host/install/host/#/root/neuboat/#g Vi 편집기에서 :s 명령어를 사용하여 문자열을 바꿀 수 있습니다. 다음은 Vi 편집기에서 :s 명령어를 사용하는 방법입니다: 먼저 :을 눌러 명령 모드로 전환합니다. 그런 다음 s/old/new/g를 입력합니다. 여기서 old는 바꾸고자 하는 기존 문자열이고, new는 대체할 새 문자열입니다. /g는 문서 내에서 모든 발생을 대상으로 한다는 것을 나타냅니다. 마지막으로 Enter 키를 누르면 됩니다. 예를 들어, "hello"를 "world"로 바꾸고 싶다면 다음과 같이 입력합니다: :s/hello/world/g 위 명령은 문서에서 모든 "hello"를 "wor..
[Linux] GPU 이름 출력 nvidia-smi --query-gpu=gpu_name --format=csv --query-gpu=gpu_name: 이 옵션은 GPU에 대한 특정 정보를 쿼리하도록 지시합니다. 여기서는 gpu_name으로 GPU의 이름을 조회하도록 설정되어 있습니다. --format=csv: 이 옵션은 결과를 CSV (쉼표로 구분된 값) 형식으로 출력하도록 지정합니다. csv 형식을 선택하면 결과가 쉽게 파싱되고 다른 도구 또는 스크립트에서 사용하기 용이합니다. 따라서 위의 명령은 현재 시스템에서 사용 가능한 NVIDIA GPU의 이름을 쉼표로 구분된 값으로 출력합니다. 예를 들어, 결과가 "GPU-1, GPU-2"와 같이 나타날 것입니다. 이 명령을 실행하면 설치된 NVIDIA GPU의 이름이 쉼표로 구분된 형식으..
[Git] Authorizing an SSH key for use with SAML single sign-on Authorizing an SSH key for use with SAML single sign-on - GitHub Enterprise Cloud Docs To use an SSH key with an organization that uses SAML single sign-on (SSO), you must first authorize the key. docs.github.com To access this repository, you must use the HTTPS remote with a personal access token or SSH with an SSH key and passphrase that has been authorized for this organization.
[Linux] 폴더 용량 출력 #du -ch (경로) 해당 경로에 대한 모든 파일용량의 총합을 나타냄. ​ #du -ch (경로) |sort -h 해당 경로에 있는 모든 파일과 폴더의 용량을 용량 단위를 사용하여 표기한다. 이 때, 표기되는 순서는 폴더 이름 1순위, 파일이름 2순위로 나열되며, 경로 내의 폴더에 있는 폴더에 있는 파일조차 모두 표기된다. (전부 표기) ​ #du -ch (경로) |sort -h |tail -10 해당 경로에 있는 모든 파일과 폴더의 용량을 용량 단위를 사용하여 표기한다. 이 때, 용량이 큰 폴더가 아래로 가게 되며, 해당 경로에서 가장 큰 10개만 아래에서 위로 출력이 된다. ​ #du -ch (경로) --max-depth=1 |sort -h 해당 경로에 있는 폴더 및 파일을 디렉토리 1 기준(숫자가..
[Poetry] Poetry 사용법 Poetry는 Python 프로젝트의 종속성 관리 및 패키지 관리 도구로, Python 환경을 설정하고 프로젝트를 관리하는 데 사용됩니다. Poetry를 사용하여 Python 프로젝트를 시작하려면 다음 단계를 따를 수 있습니다: 1. Poetry 설치: Poetry를 설치하려면 다음 pip 명령을 실행합니다. pip install poetry 2. 새로운 Python 프로젝트 생성: 새로운 Python 프로젝트를 시작하려면 새로운 디렉토리를 만들고 해당 디렉토리로 이동한 다음 poetry new 명령을 사용합니다. 예를 들어: mkdir my-python-project cd my-python-project poetry new . 이렇게 하면 새로운 Poetry 프로젝트가 생성됩니다. "bash: poet..
[Linux] 하위 디렉토리의 파일 개수 출력하기 [Linux] 리눅스에서 하위 디렉토리 별 파일 개수 출력 리눅스 터미널에서 하위 디렉토별 파일 개수를 출력하는 방법입니다. 사실 GUI의 파일 탐색기를 보면 바로 확인이 가능합니다. 그러나 GUI를 볼 수 없는 환경에서는 다음과 같이 하면 됩니다. 각 jkim83.tistory.com 아래 명령어를 사용하면 각각의 하위 디렉토리별 파일 개수를 출력할 수 있습니다. $ for x in `ls` ; do echo $x: `find $x -type f | wc -l`; done for x in ls;는 현재 디렉토리에 있는 모든 파일과 디렉토리를 순회하는 루프를 만듭니다. ls 명령은 현재 디렉토리의 모든 파일과 디렉토리를 나열합니다. 루프 내에서 find $x -type f | wc -l는 $x라는 변수(..
[PyTorch] DataLoader num_workers PyTorch num_workers에 관하여 PyTorch에서의 데이터의 흐름과 적절한 num_workers값을 지정하는 방법 velog.io num_workers = 4 * num_GPU (or 8, 16, 2 * num_GPU) entry * batch_size * num_worker = num_GPU * GPU_throughtput num_workers = batch_size / num_GPU num_workers = batch_size / num_CPU GPU에서 모델을 학습하는 속도와 CPU에서 DataLoader가 데이터를 준비해주는 속도는 다르다. 보통 CPU에서 수행되는 속도가 더 느리기 때문에 DataLoader는 멀티프로세싱을 통해 더 빠르게 GPU에 데이터를 조달한다. 이 때 사용할 ..
[Basic] 0.0.0.0 / 127.0.0.1 차이 0.0.0.0 127.0.0.1 차이 매우 자세히! 라우터, 서버, DHCP 서버에서의 0.0.0.0 의미와 127.0.0.1과의 차이점을 자세히 설명한 포스트입니다. mamu2830.blogspot.com '0.0.0.0' 네트워크의 의미는 바로 IP주소를 적어야 하는데, 적을 게 없을 때 쓰는 '지정된 주소 없음' 용도 사실 이미 위에서 0.0.0.0의 용도를 보셔서 느낌이 오시겠지만, 그냥 딱 짚어서 말하자면 '127.0.0.1'은 자기 자신을 가리키는 용도, 그 딱 한개뿐입니다. 하지만 '0.0.0.0'은 위에서 알려드린 것처럼 '특정한 주소를 지정하지 않음, 모든 주소'라는 의미로 다양하게 쓰였죠. IP v4 주소 0.0.0.0의 의미 IP주소는 여러분들이 흔히 아시듯이 인터넷에 접속하기 위해 ..
[Docker] failed to Lchown failed to solve: failed to register layer: failed to Lchown "/opt/dev_ucx/MLNX_OFED_LINUX-5.7-1.0.2.0-ubuntu20.04-x86_64/DEBS/neohost-backend_1.5.0-102_amd64.deb" for UID 71873, GID 0 (try increasing the number of subordinate IDs in /etc/subuid and /etc/subgid): lchown /opt/dev_ucx/MLNX_OFED_LINUX-5.7-1.0.2.0-ubuntu20.04-x86_64/DEBS/neohost-backend_1.5.0-102_amd64.deb: invalid argument usermod -..
[OD] coco2017 dataset 다운로드 [Dataset] COCO(Common Objects in Context) Dataset COCO Dataset : cocodataset.org/#home COCO - Common Objects in Context cocodataset.org COCO API : github.com/cocodataset/cocoapi cocodataset/cocoapi COCO API - Dataset @ http://cocodataset.org/ . Contribute to cocodataset/cocoapi development by creating an eehoeskrap.tistory.com mkdir coco cd coco mkdir images cd images wget http://images.cocodata..
[Python] wheel / 프로젝트 패키징 & 배포 pip install을 하면 setup.py에서 오류가 난다고 할때가 있다. error: invalid command 'bdist_wheel' 에러 wheel을 설치 후 재시도 pip install wheel setup.py는 install을 하면서 환경 설정을 해주는 코드이다. setuptools를 위한 빌드 스크립트이다. 이렇게 빌드된 패키지를 wheel이라는 빌드 패키지로 .whl의 확장자를 갖는 파일로 빌드해준다. [Python] 프로젝트 패키징 & 배포 패키징이란? 패키징이란 모듈별로 생성한 실행 파일들을 하나로 합쳐서 배포 및 설치가 가능한 파일을 만드는 것이다. 파일을 패키징하는 이유는 다른 환경에 소프트웨어를 배포하기 위함이기 jammdev.tistory.com 패키징이란? 패키징이란 모듈..
[Linux] ffmpeg 동영상 코덱 변경 https://storyjava.tistory.com/category/Media/FFmpeg FFmpeg와 친해지기 FFmpeg는 모든 음악, 사진, 동영상처리 관련에 있어서 가장 근본이라고 생각한다. 우리가 사용하는 대부분의 코덱은 대부분 FFmpeg의 libavcodec을 기반으로 하고 있으며, Python에서 자주 사용하는 비전 re-code-cord.tistory.com 기본 문법 file format pixel format image size input framerate 미디어 파일 정보 추출 ffmpeg -i 1080.mp4 avi 파일을 mp4 파일로 변경하기 ffmpeg -i '파일명.avi' -c:v libx264 -crf 19 -preset slow -c:a aac -b:a 192k -..
[Linux] vi 단축키 / 전체선택, 전체복사, 전체삭제 1. gg // 맨 윗 첫줄로 이동 2. Shift + v + g // 전체선택 3. y // 복사 ==> 전체 복사 4. d // 삭제 ==> 전체 삭제
[Git] git ssh로 clone [ GitHub ] Build Docker Image with Private Repo 이번 포스팅에서는 Github에 있는 Private Repo 를 가지고, 도커 이미지를 빌드하는 방법에 대해 다뤄보도록 하겠습니다. 자격증명이 따로 필요한 이유 private 가 아닌 public 이었을 때는, 레포지토리를 ffoorreeuunn.tistory.com 요약 ssh-keygen -t rsa -b 4096 -C "입력할 코멘트" cd .ssh/ cat id_rsa.pub ssh github에서 등록 touch /home/ubuntu/.ssh/known_hosts ssh-keyscan github.com >> /home/ubuntu/.ssh/known_hosts SSH-Key Gen RSA 키를 만들기 위해,..
[Linux] vi 단축키 / 주석 vi/vim 여러줄 주석 및 해제 방법 vi/vim 편집기에서 한번에 여러줄을 주석처리하거나 해제하는 방법에 대해서 간단히 알아보겠습니다. 1. 여러줄 주석 처리 1.1 vi/vim 명령어를 통해 수정할 파일을 연다. 1.2 v를 클릭하여 visual 모드 insight-bgh.tistory.com 1. 여러줄 주석 처리 1.1 vi/vim 명령어를 통해 수정할 파일을 연다. 1.2 v를 클릭하여 visual 모드로 진입 후 hjkl을 이용하여 주석 처리할 줄을 선택한다. 1.3 : 키를 누르고 norm i#을 입력 후 엔터를 클릭한다. 2. 주석 해제 2.1 vi/vim 명령어를 통해 수정할 파일을 연다. 2.2 v를 클릭하여 visual 모드로 진입 후 hjkl을 이용하여 주석 해제할 줄을 선택한다...
[Git] Detached Head git checkout origin/feat* 를 했더니 detached head라는 말이 떴다. sjkim@cv2080ti2way:~/workspace/eo-detector-lib$ git checkout origin/feat-fix-slice-bug Note: switching to 'origin/feat-fix-slice-bug'. You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by switching back to a b..
[Basic] SIMD performance Does rewriting memcpy/memcmp/... with SIMD instructions make sense? Does rewriting memcpy/memcmp/... with SIMD instructions make sense in a large scale software? If so, why doesn't GCC generate SIMD instructions for these library functions by default? Also, are t... stackoverflow.com these functions are much faster with SSE instructions. It would be nice if your runtime library/compiler instrins..
[C++] extern, static static은 해당 파일 안에서만 사용 extern은 파일 외부에서도 사용 가능 C++ 04.03 - 전역 변수와 링크 (Global variable and linkage) 04.03 - 전역 변수와 링크 (Global variable and linkage) 함수 내부에서 정의된 변수를 지역 변수(local variable)라고 한다. 지역 변수는 블록 스코프(정의된 블록 내에서만 접근 가능)가 있고 자동 주기(정의 boycoding.tistory.com static과 extern 키워드를 이용한 내부/외부 링크 (Internal and external linkage via the static and extern keywords) 변수는 스코프(scope)와 주기(duration) 외에도 링크(linka..
[C++] 암시적 형 변환 (Implicit type conversion) C++ 05.01 - 암시적 형 변환 (Implicit type conversion) 05.01 - 암시적 형 변환 (Implicit type conversion) 이전에 변수의 값이 일련의 비트로 저장되는 것과 변수의 자료형은 컴파일러에 비트를 의미 있는 값으로 해석하는 방법을 알려준다는 것을 배웠다. 다 boycoding.tistory.com 기본적인 형 변환에는 두 가지 유형이 있다. 암시적 형 변환(implict type conversion): 즉 컴파일러가 자동으로 하나의 기본 자료형을 다른 자료형으로 변환한다. 자동 형 변환(automatic type conversion)이라고 불린다. 명시적 형 변환(explict type conversion): 형 변환을 하기 위해 형 변환 연산자(type..
[C++] thread, async 차이점 C++ thread와 async의 차이점 C++에서 병렬처리를 하기위해 여러가지 클래스를 제공합니다. C++에선 std::thread, std::task, std::future, std::async를 제공합니다. 그 중 많이 쓰이는 std::thread와 std::async에 대해 설명해볼까 합니다. 1. C++ hwan-shell.tistory.com 이 둘의 차이점은 내부에 있습니다. std::thread 클래스는 말 그대로 Thread만 생성해주는 역할을 합니다. 물론 Thread가 종료를 기다리는 .join() 함수같은 기본적인 함수들을 제공하지만 이런것들을 제외하곤 날 것이라고 봐도 무방합니다. 말 그대로 Thread만 생성하니깐요. 반면std::async는 std::task클래스 기반으로 만들..
[C++] 전처리문 [C++] 전처리문 안녕하세요. 명월입니다. 이 글은 C++에서 전처리문에 대한 글입니다. 전처리문이란 C++이 컴파일해서 실행되기 전에 처리되는 소스 메크로라고 생각하면 됩니다. 간단한 예를 들면 debug 상태에서 nowonbun.tistory.com 전처리문의 종류는 총 12가지 정도 있습니다. 전처리기설명 조건부 포함 전처리문(Conditional inclusions) #if 전처리 분기문 if에 해당됩니다. define에 정의 값을 비교합니다. #elif 전처리 분기문 else if에 해당됩니다. define에 정의 값을 비교한다. elif 전처리문 단독으로 사용할 수 없습니다. #else 전처리 분기문 else에 해당됩니다. else 전처리문 단독으로 사용할 수 없습니다. #endif 전처리 ..
[Linux] tree 출력결과 저장하기 (Redirect Output) cmd의 redirect output overwrite, append 문자 '>', '>>'를 사용해서 출력 결과를 저장합니다. 1. 파일 생성하기(동일한 이름의 파일이 있으면 Overwriting 됩니다) tree 폴더이름 > 파일이름 2. 내용 Appending(해당 파일에 내용을 이어서 저장합니다.) tree 폴더이름 >> 파일이름 리눅스 Tree 명령어로 폴더 구조 보기 리눅스 tree명령어를 통해서 폴더구조 보기 umanking.github.io 1. tree 명령어 설치 # 리눅스에서 설치 sudo yum install tree # 맥에서 설치 (homebrew로 이용) brew install tree 2. tree명령어 $ tree -L 2 ..
[Linux] apt-get 리눅스는 무료라서 사람들이 자유롭게 개발 할 수 있었고 그 중에는 팀을 만든 사람들도 있었다. 데비안과 레드헷은 그렇게 만들어졌다. 둘 다 리눅스라는 종이에 코딩 했으므로 작동 원리는 같지만 각기 다른 필기 도구를 사용 했기 때문에 사용되는 방식은 다르다. 데비안 계열(우분투)은 apt-get 명령으로, 레드헷 계열(Centos)은 rpm 명령으로 파일을 다운 받는다. apt-get update 명령어를 입력하면 etc/apt/sources.list 저장소에 등록되어 있는 자료 목록을 받는다. 자료를 받는게 아니라 '업그레이드 할 자료의 목록'을 받는 것이다.(다르게 말하면, 기존에 있던 목록을 새 것으로로 갱신-업데이트-한다고 생각 할 수 있다) 이때 받아지는 저장소의 목록은 OS 버전과 상관 없이 최..
[Linux] wget Linux에서 wget 비대화 형 네트워크 다운로더를 설치하는 방법을 배웁니다. Wget은 웹 또는 FTP 서버에서 파일을 검색하거나 다운로드하는 데 사용되는 GNU 프로젝트에서 개발 한 도구입니다. 이 명령은 FTP, HTTP 또는 HTTPS 프로토콜로 제공되는 파일을 다운로드합니다. 이것은 World Wide Web이라는 단어와 wget을 형성하는 단어의 결합입니다. Unix/Linux 시스템에서 터미널에 파일과 패키지를 다운로드하는 데 사용됩니다. apt-get install wget Linux에서 Wget을 설치하는 방법 Linux에서 Wget을 설치하는 방법 이 기사에서는 Linux에서 wget 비대화 형 네트워크 다운로더를 설치하는 방법을 배웁니다. Wget은 웹 또는 FTP 서버에서 파일을 ..
[Docker] nvidia-docker 설치 및 실행 Nvidia-docker 설치 및 설정 (Ubuntu20.04) 기준 사양RTX A6000 (Ampere Arch)Nvidia driver 470.xxCUDA 11.xUbuntu 20.04 LTShttps://docs.docker.com/engine/install/ubuntu/이전 버전 삭제https를 통해 reposito velog.io Setting up NVIDIA Container Toolkit (안정적인 레포지토리와 GPG Key 셋업) $ distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \ && curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - \ && cu..
[Docker] nvidia-docker의 Dockerfile [Docker] Dockerfile 개념 및 작성법 Dockerfile Dockerfile은 DockerImage를 생성하기 위한 스크립트(설정파일)이다. 여러가지 명령어를 토대로 Dockerfile을 작성한 후 빌드하면 Docker는 Dockerfile에 나열된 명령문을 차례대로 수행하며 DockerImage wooono.tistory.com Dockerfile Dockerfile은 DockerImage를 생성하기 위한 스크립트(설정파일)이다. 여러가지 명령어를 토대로 Dockerfile을 작성한 후 빌드하면 Docker는 Dockerfile에 나열된 명령문을 차례대로 수행하며 DockerImage를 생성해준다. Dockerfile을 읽을 줄 안다는 것은 해당 이미지가 어떻게 구성되어 있는지 알 수 있..
[Python] python3, pip3 'SyntaxError: Non-ASCII character ...' 에러 -> Python 3.x 버전에서는 기본적으로 utf-8 인코딩을 사용하고 있어 이와 같은 문제가 없습니다. Python 3.x를 사용하고 있는데 이 에러를 만났다면, 첫 줄에 나와있는 파이썬 관련 셔뱅이 python 2.x 버전을 가리키고 있는게 아닌지 확인해 보시기 바랍니다. python 2.x 버전은 기본적으로 ASCII 인코딩을 사용하고 있어 별도의 선언이 없다면 이와 같은 문제가 발생합니다. [파이썬] 'SyntaxError: Non-ASCII character ...' 에러 해결 파이썬 프로그래밍을 하다가 다음 에러 메시지를 만나게 되었습니다. SyntaxError: Non-ASCII character '\xec' in..
[Python] ppdetection + nvidia-docker 설치 과정 오류 0. cuda10.2, cudnn7.6.5 설치 필요 pp-tracking ubuntu 18.04使用GPU推理出现Segmentation fault_tracking安装失败,服务未安装_wangxinRS的博客-CSDN博 听说pp-tracking做跟踪比较好,试用,发现使用gpu做推理会发生报错,遂记录报错排除方法。 1. 报错 按照《PP-Tracking之手把手玩转多目标跟踪》教程,输入如下命令进行推理 python deploy/pptracking/pytho blog.csdn.net 1. nvidia-docker 설치 2. nvidia-docker Dockerfile만들기 - gpg key값 없음 - python 없음 - python 설치 2. python3, python 3. pip3, pip 4. wget - pip in..