본문 바로가기

통계

(96)
Pytorch 설치 - CUDA Toolkit, cuDNN 설치 Pytorch를 설치하기 위해서 CUDA 플랫폼을 사용하는 것이 필수적이다. 그 이유는 이전 포스팅을 참고해주세요. 왜 CUDA를 설치하는가? Pytorch 설치 전 - 왜 CUDA를 설치하는가?CUDA를 설치하지 않아도 Pytorch의 설치는 가능하다.하지만, 이 경우 딥러닝 연산에 CPU만 사용하기 때문에 병렬적인 연산이 많이 필요한 작업에서 어려움이 있다. 그럼 병렬 연산은 왜 중요한가? stat-thon.tistory.com https://pytorch.kr/get-started/locally/ 파이토치 한국 사용자 모임 (PyTorch Korea User Group)파이토치 한국 사용자 모임에 오신 것을 환영합니다. 딥러닝 프레임워크인 파이토치(PyTorch)를 사용하는 한국어 사용자들을 위해 ..
Pytorch 설치 전 - 왜 CUDA를 설치하는가? CUDA를 설치하지 않아도 Pytorch의 설치는 가능하다.하지만, 이 경우 딥러닝 연산에 CPU만 사용하기 때문에 병렬적인 연산이 많이 필요한 작업에서 어려움이 있다. 그럼 병렬 연산은 왜 중요한가? 병렬 연산컴퓨터에서 필수적인 부품이자 컴퓨터의 뇌라고 하는 CPU에는 코어라는 것이 한 개 이상 존재한다. (보통 4~16개 사이) 코어는 간단히 말하면 뇌에서 여러 가지 일을 동시에 처리하기 위한 기관이다.8개 코어가 있다면 동시에 8개의 일을 처리할 수 있는 것이다.여러 코어가 동시에 작업하는 것을 병렬적으로 처리한다고 한다. 사람이 하는 일로 직관적인 예를 들어보자면,코어가 2개인 CPU로 일을 한다는 것은 양뇌가 발달한 한 사람이 양 손을 써서 한 손으로는 편지를 쓰고 한 손으로는 논문을 쓴다고 생..
유튜브 데이터 크롤링 1. Google API Console에 액세스 요청하기 유튜브 데이터를 크롤링하는 방법으로는 크게 두 가지 방법이 있다.1. Youtube Data API를 이용하는 방법2. 직접 웹 스크래핑 (BeautifulSoup 활용) 최근 API를 잘 활용하는 것도 중요하다고 생각해서, API를 이용하여 데이터를 수집해보고자 한다. 우선, Youtube Data API를 사용하기 위해선 다음 페이지를 참고한다 https://developers.google.com/youtube/v3/getting-started?hl=ko YouTube Data API 개요  |  Google for Developers이 페이지는 Cloud Translation API를 통해 번역되었습니다. YouTube Data API 개요 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 ..
DP로 생각하기 - LIS 문제와 그 응용 Longest Increasing Subsequence (LIS)최장 부분 증가수열 문제는 DP 문제의 대표적인 문제 중 하나다. 먼저, 문제부터 보자.※ 문제 출저 (인프런 강의 - 파이썬 알고리즘 문제풀이 입문) 문제N개의 자연수로 이루어진 수열이 주어졌을 때, 그 중에서 가장 길게 증가하는 원소들의 집합의 길이를 구하라. 입력)5 3 7 8 6 2 9 4 출력)4  DP의 조건에 해당하는가이 문제가 DP에 해당하는지 조건을 따져봐야 한다.1. Optimal Substructure인가하위 문제의 최적의 해를 사용하여 전체 최적의 해를 구할 수 있는지 보자. arr = [5, 3, 7, 8, 6, 2, 9, 4] 라고 하자. 시작은 arr의 가장 왼쪽 값부터 시작한다우선, 5라는 숫자 하나로 만들 수 ..
DP(동적 계획법)에 대한 이해 참고 출처) ChatGPT와 블로그https://hongjw1938.tistory.com/47 알고리즘 - Dynamic Programming(동적 계획법)1. 개요 DP, 즉 다이나믹 프로그래밍(또는 동적 계획법)은 기본적인 아이디어로 하나의 큰 문제를 여러 개의 작은 문제로 나누어서 그 결과를 저장하여 다시 큰 문제를 해결할 때 사용하는 것으로hongjw1938.tistory.comDP(Dynamic Progragmming; 동적 계획법, 동적 프로그래밍) 복잡한 문제를 더 작은 하위 문제로 나누어 해결하는 알고리즘 기법알고리즘이라기보다는 문제해결 방식이라고 할 수 있다 문제 푸는 순서는 아니지만 개념을 쉽게 생각하면 다음과 같다1. 전체 문제를 작은 문제로 쪼개기2. 작은 문제를 풀고 그 결과를 저..
Class 공부 (클래스 변수와 인스턴스 변수) 클래스 변수Class로 생성한 객체를 말하는 클래스 변수가 아니라, Class를 정의하면서 생성한 변수를 클래스 변수를 말함클래스 변수는 클래스의 모든 인스턴스에게 공유되는 내용그래서 클래스 변수는 특정 인스턴스에 종속되지 않음클래스 변수는 일반적으로 해당 클래스의 모든 인스턴스에서 공통적으로 사용해야 하는 값을 저장하는 데에 사용함  인스턴스 변수특정 인스턴스 내에서만 사용하며, 각 인스턴스마다 고유한 값을 가짐인스턴스 변수는 '__init__' 메소드(생성자) 내에서 'self' 키워드를 사용하여 정의되고 초기화됨인스턴스 변수는 각 객체의 고유한 상태를 유지하는 데 사용  위 구조로 클래스 변수, 인스턴스를 분리함으로써 코드의 유지보수와 데이터 관리가 용이해짐객체 지향 프로그래밍의 강력한 기능이기도 ..
Class 공부 (클래스 기본개념) Class란?객체 지향 프로그래밍(Object-Oriented Programming: OOP)의 핵심요소클래스는 데이터와 함수를 하나의 재사용 가능한 블록으로 묶는 방법을 제공함이를 통해 데이터 구조를 모델링하고 복잡한 기능의 개발이 가능 Class의 기본 개념클래스: Object의 프로토타입. class라는 키워드를 사용해 정의함class 클래스명:class MyClass:  인스턴스: 클래스에 의해 생성된 객체클래스는 실체가 없이 정의된 것이지만, 인스턴스는 실체가 만들어진 것클래스가 설계도라면 인스턴스는 이 설계도에 따라 만들어진 실제 '건물'# 클래스로 인스턴스를 생성함MyInstance = MyClass()  속성(Attributes): 클래스 내부에 정의된 변수클래스의 상태를 저장함class ..
Curl이란 (개발자나 컴퓨터쪽을 잘 모르지만 데이터 수집을 위해 API call 해보려고 이쪽도 들쑤시는 중에 Curl을 써야된다고 해서 일단 이게 뭔지 공부중)  curl커맨드라인(command line) 또는 스크립트에서 데이터를 전송하기 위해 사용하는 도구다양한 프로토콜을 지원하여 웹 서버와의 통신에 자주 사용함(HTTP, HTTPS, FTP,FTPS 등을 포함하고 있음)웹 페이지의 내용을 가져오거나, 파일 업로드/다운로드, API 테스트와 같은 네트워크 관련 작업 수행 가능 curl만의 명령어가 있으며 옵션이 매우 다양하여 헤더 추가, HTTP 메소드 변겨어, 사용자 인증 정보 전송 등도 가능하여 개발자들 사이에 매우 자주 활용되는 툴임   curl을 사용하기 위해서는 어떻게 해야하나?일단 curl을 사용하..
pandas warning 해결 (Pyarrow will become a required dependency of pandas in the next major release of pandas (pandas 3.0)) 어느날, 판다스를 불러왔는데 DeprecationWarning: Pyarrow will become a required dependency of pandas in the next major release of pandas (pandas 3.0), (to allow more performant data types, such as the Arrow string type, and better interoperability with other libraries) but was not found to be installed on your system. If this would cause problems for youBUILD: 요런 에러같은 메시지가 떴다. 데이터프레임은 잘 불러왔는데 이게 떠서 무슨일인가 싶어서..
02/03 배운 것: isin, str.contains로 쉽게 필터링할 수 있다
[WSL-Docker] 하.. 경로 옮기고 나서 주피터 서버가 왜 다시 안 열릴까 일단 하면서 깨달은 점은 이전 포스팅에서 성공한 원격 주피터 서버는 내 컴퓨터가 쓰고있는 공유기와 같은 ip를 공유하고 있는 컴퓨터에 대해서만 접속이 가능하다는 것이다. 그래서 완전히 원격으로 접속하기 위해서는 DDNS 설정을 해야되는지 아니면 포트포워딩을 해야되는지 뭐 그런 이야기가 있길래 시도중이다. 근데 그것보다 이번에 생긴 문제는 WSL-Docker와 우분투 C드라이브에서 D드라이브로 성공적으로 옮기고 나서 그뒤로 뭔가 실수를 해가지고 우분투 OS 하나가 안 들어가졌다. 그건 그냥 다른 우분투 OS를 받아서 다시 이미지를 pull하고 컨테이너를 여는 방식으로 해결중이다. 그러다가 이제 적응되면 제대로 환경을 갖추려고 해서 대충 그건 해결했다고 생각하고 주피터를 열려고 다시 시도하고 있는데 엊그제 ..
[WSL-Docker] wsl 우분투 C드라이브에서 D드라이브로 옮기기 우리집 컴을 처음 살 때 128기가 짜리 ssd로 사서.. 용량이 너무 적어가지고 정말 미치겠다 그래서 평소에 최대한 c드라이브를 비워두고 D드라이브를 최대한 사용하는데 거기에도 한계가 있어서 c드라이브 110기가 중에서 60기가 정도는 사용하고 있다. 그런데 어제 wsl 도커를 받고 컨테이너까지 받았더니 c드라이브 용량을 아주 쑥쑥 잡아먹었다. 급기야 40기가 정도의 여유분을 다 먹어치워서,, 드라이브 정리가 필요하다는 경고까지 떠가지고 급히 롤을 지웠다.. (롤도 D드라이브에 받았다고 기억했는데 어째 C드라이브에 있었다) 어쨌든 이대로는 제대로 wsl 도커를 쓸 수가 없겠다 싶었다. 앞으로 더 끌어당길 컨테이너도 많은데 고작 테스트해보겟다고 받은 것들 때문에 C드라이브가 가득 차 버리다니,, 당장 개..
[WSL-Docker] 주피터 노트북 원격 페이지 여는데는 성공.. 우분투를 새로 받고 도커 데스크탑을 쓰니 이전에 발생했던 문제가 전혀 일어나지 않고 잘 작동했다... 그래 좋은게 좋은 거라고 잘 쓰면 된거지 이제 도커로 파이썬 컨테이너를 불러온 다음 remote_jupyter라는 이미지로 저장해서 뒤에도 불러올 수 있게끔 한 다음, 도커 내에서 설정을 통해 내 호스트 아이피 주소를 사용해서 주피터 노트북을 원격으로 열 수 있는 페이지를 구성하는 데 까지는 성공했다. 정말 기쁘고,, 이제는 이게 내 컴퓨터라서 열리는 건지 그걸 확인해야 된다 폰에서는 일단 안 열리는데.. 어쨌든 여기까지 오는데 많은 도움이 된 블로그들 https://soundprovider.tistory.com/entry/DockerJupyter-%EC%9B%90%EA%B2%A9-%EC%A3%BC%ED..
[WSL-Docker] 개발하려는 건 아니지만 도커를 받아봅니다.. 작년까지만 해도 우분투 써보겠다고 버추얼박스 받은 다음 고생해서 우분투도 받아서 겨우 실행했는데 윈도우가 튕기고 난리가 났었다. 그래서 그냥 디스크 파티션 나눴던 우분투 리눅스는 지우고 파티션도 원래대로 돌려놓지 않고 대충 두고 살았다.. 그렇게 우분투 리눅스 사용은 포기하고 있던 지난 1년,, 어느날 딥러닝 연구실 친구가 도커를 쓰고있다는게 멋있어보여서 나도 받아보고 싶다고 생각하다가 공모전 준비하면서 남의 서버 빌려쓰는 것도 미안하고 한 번 받아보자 싶어서 드디어 도커를 시도해봤다. 도커의 개념을 읽어보니 컨테이너로 가볍게 구동할 수 있다는 장점 어쩌구 설명이 적혀있었다. 그런거를 꼼꼼히 보다가 오히려 설치 자체를 실패하는 편이라 과감히 설명은 대충 읽고 넘겼다. 역시 설치가 간단해보이면서도 문제가 ..
11/27 배운점 공모전 내용을 언급하면 혹시나 누가 보고 문제 삼을까봐 대회 끝날 때까지 내용은 둘러서 남겨야겟다. 1. 변수 하나의 의미를 잘못 알고 있었는데, 문제가 없어서 그냥 신경 안 쓰고 있다가 의미를 알게 되고 전체적인 변수 수정이 필요하다는 걸 깨달았다. 영향이 클지는 모르겠는데 전처리 과정이 훨씬 더 복잡해졌다. 시행착오가 더 늘어나는 것 같은데 배우는 과정으로 생각하게 되었다. 특히 eda를 항상 제대로 하고 시작해야겟다는 것을 느꼈다. (그러니까 서둘러서 했어야지) 2. 어제 내가 낸 피처 아이디어 적용한 모델은 오버피팅이 너무너무 심해서 교란변수인 것으로 생각됨. 훈련데이터에만 잘 맞는 피처라니 좀 슬픔.. 3. 드랍아웃이 높다고 오버피팅이 무조건 방지되는 건 아니다. 4. 1번 문제를 해결했다고 생..
11/26 공모전 준비하며 배운점 + 느낀점 (잊지말자 reset_index) 1. pickle을 써서 저장하고 load하기 2. 데이터프레임 itertuples()로 for문 돌리기 가능 근데 이렇게 하다보면 에러는 아닌데 크래쉬 문제가 난다고 해놓고, 문제없이 돌아간다. 문제가 있는데 모르고 지나가는 건가? -> 검색해보니 출력데이터 초과시 생기는 문제라고 함. 즉 print()문 안 쓰면 안 생길 문제였음 만약에 바로 출력 내용 보고싶으면 cmd 창에서 jupyter notebook --NotebookApp.iopub_data_rate_limit=1.0e10 이거로 리밋 해제하면 됨 3. 사용자별, 아이템별 계산 한 내용을 딕셔너리로 저장하려고 itertuples()로 데이터프레임을 반복문 돌린 다음에, 튜플로 (사용자인덱스, 아이템 인덱스)를 묶어서 딕셔너리꼴로 저장했다. ..