
C/C++ 코딩하다 보니 Static 변수가 나오는 것을 알 수 있었다.해당 변수는 어떤 역할을 하는 것일까? 일단, '정적'이라는 말은 '동적'이라는 단어와 반대가 되고, 뜻으로는 한번 정하면 변하지 않는 것.여기서 중요한게 '한번' 이다. 다들 알다시피 C/C++에서 지역변수, 전역변수가 존재하는 것은 알것이다.정적변수는 지역변수 + 전역변수를 합쳐놓은 것이다. 1. 지역변수 처럼 선언된 Block에서 실행됨2. 전역변수 처럼 '한번'만 초기화됨 예를 한번 살펴보자 위 코드를 살펴보면, local함수에 있는 count는 지역변수이기때문에 local 함수를 불러올때마다 1로 초기화 된다. 반면에 staticVar의 count는 static 변수이기때문에 위에서 말했던 것처럼, 전역변수처럼 한번만 초기..

AI 개발을 하면서, 서비스 측면에서 속도 향상을 위하여 C/C++로 코드를 바꿔야 하는 상황이 발생하여 C/C++ 개발 환경부터 정리하고자 한다. 예전부터 Visual Studio를 이용하여 C/C++ 코딩을 많이 한다고 한다. 하지만 한가지 중요한 제약사항이 존재한다.Visual Studio는 Window환경에서 코딩을 할때 주로 지원을 한다.위 사진에서 보듯 Studio는 윈도우 표시만 되어있는것을 확인하였다. 문제는 AI를 개발할 컴퓨터는 리눅스 환경이고 해당 컴퓨터에 GPU가 달려있어 굳이 윈도우 환경에서 개발을 진행해야겠다는 필요성을 못느꼈다. 대안으로, vscode를 사용하여 어느 환경에서도 C/C++를 코딩할 수 있도록 환경설정 하는 방법을 정리하고자 한다. 현재 포스팅은 Window환경에..

웹사이트의 정보를 긁어오기 위한 방법인 크롤링을 위한 도구로, 셀레니움을 많이들 사용한다. 왜냐면, 프론트엔드 부분에서 동적으로 변화하는 부분이 많기때문에, Beautiful soap 같은 경우 원하는 정보를 가져오지 못하는 경우가 다수이다. (정적 크롤링) 하지만, 셀레니움은 '크롬 드라이버'를 이용하기 때문에, 실질적으로 사람이 크롬을 사용하는 것처럼, 실제로 크롬을 띄워 작업하기 때문에 동적으로 변화하는 화면에서 크롤링이 가능하다. (동적 크롤링) 이때문에 셀레니움을 사용하는 방법을 정리하는 포스팅을 작성한다. 1. Selenium 설치 셀레니움을 설치하는 방법은 간단하다. pip install selenium을 통해 간단하게 설치하면 끝. 2. 크롬 드라이버 설치 셀레니움하면 반드시 설치해야 하는..

파이썬 공부를 하다보면 어느순간부터 기본적인 내용이 아닌, 보다 심층적인 내용을 공부해야겠다고 느낄때가 있다. 특히, 프로그래밍을 하다보면, 속도가 가장 큰 이슈로 발생하는데, 필자는 정형데이터를 전처리하는 과정에서 속도측면을 개선해보고자 '비동기 방식'을 접하게 되었다. 일단, 상식적으로 병렬적으로 처리한다는 내용은 누구나 다 알것이지만, 막상 코드로 작성하려고 하니, 어렵다. 그래서 이 포스팅을 통해 정리하고자 한다. 누구나 쉽게 접할 수 있도록, jupyter notebook의 노트북 형식( 셀 실행 ) 으로 진행하고자 한다. 일단, 노트북형태로 작업을 하려면, 아래와 같은 환경 설정이 필요하다. !pip install nest_asyncio import nest_asyncio nest_asynci..

1. 그래픽카드 드라이버 설치 1) 그래픽카드 드라이버 설치 여부 확인 nvidia-smi 명령어를 cmd 나 anaconda prompt 에서 입력 그래픽카드 드라이버 설치가 되어있는 경우 : 위와같은 모습을 보여주지 않는다면, 그래픽카드 드라이버 설치가 안되어 있는것. https://www.nvidia.com/Download/index.aspx?lang=kr Download the latest official NVIDIA drivers Download the latest official NVIDIA drivers www.nvidia.com 해당 링크를 통해 자신의 제품명을 입력하여 드라이버 설치를 진행하여 "nvidia-smi"명령어를 다시 실행하여 잘 설치 되었는지 확인. 2. CUDA Toolki..

1. MaxPool1d torch.nn.MaxPool1d(kernel_size, stride=None, padding=0, dilation=1, return_indices=False, ceil_mode=False) 1) kernel_size : 커널 사이즈 2) stride : 커널 이동 정도 3) padding : 좌우 패딩 4) dilation : 커널 거리 정도 5) return_indices : 선택된(maxpooling에 사용한 ) index return 여부 6) ceil_mode : False = 내림을 이용하여 계산 , True = 올림을 이용하여 계산 input_data : (N , C , L) 형태를 띄고있음 N : 갯수 , C : 채널 , L : 2. MaxPool2d torch.nn..

1. Conv2d CLASStorch.nn.Conv2d(in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True, padding_mode='zeros', device=None, dtype=None) parameter : 1) in_channels : 몇개의 채널 (input image의 channel 수) 2) out_channels : output image가 가지는 채널 수 3) kernel_size : Conv2d의 size 4) stride : kernel이 움직이는 칸 수 5) padding : 얼만큼 padding을 넣을것인가? ( 좌 우 / 상 하 에 모두 넣음) // 스칼라 , "s..

Confusion Matrix와 ROC Curve를 공부하여 나름대로 정리합니다. Confusion Matrix는 누가 이름을 지었는지 몰라도... 완벽한 네이밍이다. 볼때마다 내 머리속을 혼동시킨다.. 오늘 이해하고 넘어가보려 한다. Confusion Matrix는 실제(Y) , 예측 (Y^)을 가지고 Matrix를 만든다. 즉, 총 4가지 경우의 수가 나온다. Y == Y^ == T : Y 와 Y^ 이 같으면서, 예측값이 T일때 Y == Y^ == F : Y 와 Y^ 이 같으면서, 예측값이 F일때 Y != (Y^ == T) : Y 와 Y^ 이 다르면서, 예측값이 T일때 Y != (Y^ == F) : Y 와 Y^ 이 다르면서, 예측값이 F일때 즉, TP , FN, FP, TN 이런 결과가 나오게 되는데..
- Total
- Today
- Yesterday
- yolov11
- 오블완
- 오류
- DeepLearning
- CNN
- V11
- github
- 어탠션
- 뜯어보기
- GNN
- python
- 이미지
- 파이썬
- 초보자
- GIT
- 도커
- c3k2
- Tree
- docker
- 욜로
- 티스토리챌린지
- YOLOv8
- LLM
- 자바
- java
- 깃
- 딥러닝
- YOLO
- 알고리즘
- 정리
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |