programming
-
[Python]Splitfloders 한줄로 Train/Test/Validation 나누기programming/Python 2021. 11. 15. 23:24
딥러닝이나 머신러닝에서는 Dataset을 분할하는 것은 필수적입니다. 보통은 딥러닝 또는 머신러닝 프레임워크에 데이터셋을 분할하는 함수나 클래스가 있지만 불가피하게 수작업으로 분할해야 할 때가 있습니다. 그럴 때는 보통 glob, os, shutil, re 등의 라이브러리를 사용해 분할을 하지만 이것 또한 귀찮을 때가 있습니다... 그럴 때 사용하는 라이브러리를 소개할까 합니다!..(저도 귀찮아서 검색하다가 찾았습니다!) Train/Test/Validation Train set : 모델이 학습하는데 사용 되는 훈련용 데이터입니다. Test set : 학습 후에 모델의 성능을 평가하기 위해서만 사용되는 테스트용 데이터입니다. (수능 데이터!) Validation set : 모델의 일반화 능력을 높이기 위해..
-
[Linux]쉘 스크립트(Shell Script)란?programming/Linux 2021. 11. 14. 22:38
리눅스 계열의 환경에서 개발을 업무를 수행하는 데에 있어서 Shell Script에 대한 이해와 능숙하게 다룰 수 있는 스킬이 있으면 그 점은 굉장한 경쟁력이 됩니다. 저는 입사 초기에 서버에서 업무를 수행하면서 Shell Script를 익혔지만 Shell Script조금 배우고 입사를 했으면 업무의 생산성이 크게 증가했을 텐데라는 아쉬움이 남기도 합니다. 오늘부터 Shell Script 공부하면서 Shell Script에 대해 포스팅을 해 보록 하겠습니다. 쉘 스크립트(Shell Script) 쉘 스크립트는 리눅스/유닉스에서 실행하기 위해 고안된 스크립트입니다.여러 명령을 작성하여, 반복적이고 단순한 형태의 작업을 프로그래밍하고 실행 가능한 파일 형태로 저장하여 사용할 수 있도록 합니다. Bourne ..
-
[Linux]사용자 위주의 모니터링 도구 htopprogramming/Linux 2021. 11. 12. 23:56
Htop이란 작업 관리자와 비슷한 개념으로 리눅스에서 시스템 사용량 즉 CPU 사용량, 메모리 사용량 등을 비주얼적으로 모니터링할 수 있는 프로그램입니다. 리눅스에는 이러한 시스템 자원 상황을 모니터링하는 프로그램에는 Top, Htop, Atop, Nmom, Glances, Saider 등이 있는데요. Hisham Muhammad가 2004년에 개발했는데 아직까지도 많이 사용되고 있는 프로그램입니다. 저도 디테일한 모니터링을 하고 싶을때는 Top보다 Htop을 주로 사용하고는 합니다. 설치방법 sudo apt-get install htop brew install htop ## mac 도 homebrew에서 다운할 수 있습니다 특징 htop 화면을 살펴보면 왼쪽 상단에 CPU, swap메모리,메모리 사용률..
-
[Python]Python의 유용한 라이브러리들programming/Python 2021. 9. 16. 10:22
파이썬이 많은 인기를 누리고 있는 중에 하나의 이유를 뽑자면 광범위한 라이브러리를 쉽게 다운받아서 사용할 수 있는 장점이 있기 때문입니다. 오늘은 파이썬의 유용한 라이브러리들을 소개해보도록 하겠습니다. 먼저 라이브러리에 개념에 대해 알고가야 합니다. 라이브러리 (Library) 파이썬 라이브러리는 내가 필요한 코드를 작성할 필요 없이 많은 동작을 수행할 수 있게 해주는 함수와 메서드의 집합입니다. 마치 도서관 (library)에서 내가 필요한 책을 꺼내어 보듯이 프로그래밍 중에 파이썬 라이브러리를 꺼내어 사용할 수 있습니다. 여러 파일로 이루어져 있을 수 있고, 함수 메서드 속성들이 하나의 패키지로 모여져 있습니다. 라이브러리에는 이미 우리가 수행하고자 하는 기능과 동작들이 이미 정의되어 모여져 있기 때..
-
[자료구조]링크드 리스트(Linked List)programming/Python 2021. 6. 8. 14:45
링크드 리스트 (Linked List) 링크드 리스트(Linked List), 연결 리스트는 각 노드가 데이터와 포인터를 가지고 한 줄로 연결되어 있는 방식으로 데이터를 저장하는 자료 구조입니다. 이름에서 말하듯이 데이터를 담고 있는 노드들이 연결되어 있는데, 노드의 포인터가 다음이나 이전의 노드와의 연결을 담당하게 됩니다. 특징 배열은 순차적으로 연결된 공간에 데이터를 나열하는 데이터 구조입니다. 링크드 리스트는 떨어진 곳에 존재하는 데이터를 화살표로 연결해서 관리하는 데이터 구조입니다. 본래 C언어에서는 주요한 데이터 구조이지만, 파이썬은 리스트 타입이 링크드 리스트의 기능을 모두 지원합니다. 장점 배열은 미리 데이터의 공간을 할당해야하지만 링크드 리스트는 미리 데이터 공간을 미리 할당하지 않아도 됩..
-
[자료구조]배열(Array), 큐(Queue), 스택(Stack)programming/Python 2021. 5. 20. 20:24
배열(Aarry) 배열이란 데이터를 나열하고, 각 데이터를 인덱스에 대응하도록 구성한 데이터 구조입니다. 파이썬에서는 리스트 타입이 배열 기능을 제공합니다 특징 같은 종류의 데이터를 효율적으로 관리하기 위해 사용합니다. 같은 종류의 데이터를 순차적으로 저장합니다. 장점: 빠른 접근 가능 : 첫 데이터의 위치에서 상대적인 위치로 데이터 접근(인덱스 번호로 접근)이 가능하기 때문에 데이터 접근 속도가 빠릅니다. 단점: 데이터 추가/삭제의 어려움 : 일반적으로 C언어에서는 미리 최대 길이를 지정해야 되지만 파이썬의 list는 자동적으로 늘어나기 때문에 최대길이를 지정하지 않아도 됩니다. 큐(Queue) 큐란 한쪽 끝(rear)에서는 삽입 연산만 이루어지며 다른 한쪽 끝(front)에서는 삭제 연산만 이루어지는..
-
[자료구조]Hash, Hashing, Hash Tableprogramming/Python 2021. 5. 5. 17:40
자료구조(Data-Structure) 처리하고자 하는 데이터의 효율적인 접근 및 조작을 가능하게 해주는 저장 및 관리방식입니다. 도서관의 책들이 잘 정리되어 있으면 우리는 우리가 원하는 책을 쉽게 찾을 수 있습니다. 하지만 뒤죽박죽 되어 있는 책들 중에 우리가 원하는 책을 찾으려면 시간이 꽤 오래 걸립니다. 자료구조도 이와 같습니다. 자료구조를 잘 선택하면 사용하는 메모리를 최소화할 수 있으며 시, 공간적으로 효율성을 확보할 수 있습니다. 오늘은 Hash Table 자료구조에 대해 포스팅 하겠습니다. 해시 테이블(Hash Table) 해시 테이블은 해시 함수를 이용해서 key를 고정된 크기의 값으로 변환한 후 해시 함수 결과 값을 인덱스에 key - value를 저장하는 방법입니다. 기본 연산으로는 탐색..
-
[OpenCV]_4. OpenCV 이미지 Processingprogramming/Python 2021. 2. 7. 01:25
Digital Image 디지털 영상은 2차원 행렬의 형태로 표현이 됩니다. 각 격자가 하나의 pixel이 됩니다. 이를 bitmap image라고 합니다. 우리가 흔이 알고있는 .jpg, .jpeg, .png, .gif 가 비트맵방식입니다. 각 pixel의 위치는 2가지 형태로 표현을 할 수가 있는데. 영상좌표와 행렬 위치로 표현이 됩니다. 영상 좌표는 좌측 상단의 꼭지점을 중심으로 (x,y)로 표현을 합니다. 행렬 위치는 (r,c)로 표현을 합니다. OpenCV에서 영상좌표와 행렬 위치 2가지 형태가 사용되기 때문에 유의해야 합니다. Digital Image의 유형 Binary Image Binary Image는 pixel당 1bit로 표현하는 영상을 의미합니다. 즉 흰색과 검은색으로만 표현이 되는 ..