전체 글

PyTorch에는 CPU에서 GPU에 텐서를 전달할 때 .to('cuda')와 .cuda() 두 가지 방법이 있다.물론 GPU에 바로 텐서를 만들 수도 있다.바로 만드는 방법과 차이점은 이 글에서 확인하자.이제 .to('cuda')와 .cuda() 두 가지 방법의 차이를 알아보자..to('cuda')이 방법은 지정된 디바이스(일반적으로 GPU)로 텐서를 이동시키기 위한 보다 일반적인 방법이다..to('cuda')를 호출하여 텐서를 현재 기본 CUDA 디바이스로 전송할 수 있다.여러 개의 GPU가 있는 경우, PyTorch가 지정한 기본 디바이스(기본적으로는 GPU 0)를 사용한다.근데 .to('cuda:1')과 같이 디바이스 인덱스를 전달하여 다른 디바이스(GPU)을 사용하도록 직접 지정할 수도 있다....
PyTorch에서 GPU로 작업할 때 GPU 디바이스에 데이터를 넘겨주는 여러 가지 방법이 있다.# Approach 1torch.rand(10, 10).cuda()# Approach 2torch.rand(10, 10, device=torch.device('cuda')) 두 가지 방법의 차이와 속도를 비교해 보자.# Approach 1torch.rand(10, 10).cuda()이 방법에서 torch.rand 함수는 CPU에서 임의의 텐서를 생성한다.그런 다음 .cuda() 메서드가 텐서에서 호출되어 텐서를 CPU에서 GPU로 이동한다.이 연산은 inplace로 수행되어 원래 텐서를 수정하고 GPU에 동일한 텐서를 반환하는 형태로 작동한다. # Approach 2torch.rand(10, 10, devic..
이번 포스팅의 주제는 오랜만에 머신러닝과 직접적으로 관련된 이야기이다.코드의 실행 속도를 높이는 것과 관련된 것으로 하이퍼파라미터의 최적화를 통한 빠른 학습과 관련되어 있다.이 글은 하이퍼 파라미터 중 num_workers에 대한 내용을 살펴보자.num_workers을 설정할 때 4의 배수로 설정하라는 소리는 어디선가 들어봤을 것이다.num_workers가 무엇이고 어떻게 설정하면 좋은지 알아보자.num_workers 이란DataLoader(dataset, num_workers=8)PyTorch의 DataLoader 클래스는 대규모 데이터셋을 효율적으로 로딩하고 전처리하기 위한 강력한 도구이다.대용량 데이터셋을 다룰 때 데이터 로딩은 훈련 과정에서 중요한 병목 현상이 될 수 있다.이때 num_worker..
이전 글에서 TensorBoard가 무엇이고 어떻게 사용하는지 살펴보았다.하지만 이 방법으로는 원격 서버에서 학습을 할 때 텐서보드를 실행해도 로컬에서는 모니터링이 불가능하다.이번 포스팅에서는 port forwarfing(포트 포워딩)을 통해 서버에서 학습을 돌리고 로컬에서 그 과정을 모니터링하는 방법을 살펴보자.Port Forwarding 이란먼저 port forwarfing(포트 포워딩)이 무엇인지 간단히 살펴보자.포트 포워딩은 컴퓨터의 한 포트에서 다른 컴퓨터의 다른 포트로 네트워크 트래픽을 리디렉션할 수 있는 기능이다.일반적으로 방화벽이나 NAT(네트워크 주소 변환)뒤에 있는 컴퓨터에서 실행되는 서비스에 대한 원격 엑세스를 활성화하는데 사용된다. 컴퓨터가 여러 개의 방이 있는 집이고 각 방에는 문..
TensorBoard 텐서보드 소개TensorBoard(텐서보드)는 오픈 소스 머신러닝 프레임워크인 TensorFlow에서 제공하는 시각화 도구이다.텐서보드는 머신러닝 모델의 다양한 부분을 시각적으로 모니터링하고 분석할 수 있다.텐서보드를 사용하면 모델 아키텍쳐를 보거다 메트릭을 추적 및 시각화하고 트레이닝 커브를 모니터링하는 등 모니터링하고 싶은 웬만한 것들을 전부 시각화할 수 있다.또한 사용법도 어렵지 않고 직관적인 웹 기반 인터페이스를 제공하며 PyTorch를 비롯한 여러 프레임워크와 호환되기 때문에 많은 딥러닝 커뮤니티에서 텐서보드를 애용한다.이번 포스팅에서는 텐서보드 사용법을 PyTorch 예제를 통해 알아보자.TensorBoard 설치텐서보드를 파이토치와 함께 사용하려면 텐서보드가 포함된 텐서..
GitHub에 연동된 로컬 폴더에서 rm 으로 파일을 삭제해도 깃헙에서는 파일이 남아있다.깃헙에서 파일을 삭제하려면 Git과 같은 버전 제어 시스템을 사용하여 commit 및 push를 통해 업데이트를 해야한다.또는 웹에서 직접 파일을 삭제해야한다. 이번 포스팅에서는 웹에서 로컬에서 파일을 삭제할 때 원격 저장소에서도 파일이 삭제되도록 하는 방법을 알아보자.로컬 리포지토리와 깃헙 저장소에서 파일 삭제하기먼저 로컬 리포지토리와 GitHub에서 파일을 동시에 삭제하는 방법을 알아보자.삭제할 파일이 있는 폴더로 이동 후 rm 대신 git rm 을 실행git commit -m "Removed ." 실행하여 변경 사항을 커밋git push 으로 변경 사항을 GitHub에 푸시정리하면 rm 대신 git rm으로 ..
yield 사용법yield는 제네레이터를 정의하기 위해 function에서 사용되는 파이썬의 키워드이다.참고로 제너레이터는 실행을 잠깐 멈추고 결과를 리턴한 다음 다시 제너레이터를 호출할 때 멈췄던 위치에서 실행을 재개할 수 있는 특수한 종류의 함수이다.즉, 값을 한꺼번에 생성하여 메모리에 저장할 필요가 없이 필요할 순간마다 값을 생성할 수 있다. 다음은 피보나치 수열을 생성할 때 yield을 사용하는 제너레이터 함수의 예이다.def fibonacci(): a, b = 0, 1 while True: yield a a, b = b, a + b이 코드를 실행시켜보자.fib = fibonacci()for i in range(10): print(next(fib))그럼 다..
git push 과정에서 아래와 같은 에러를 만날 수 있다.remote: Support for password authentication was removed on August 13, 2021.remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.fatal: Authentication failed for 'https://github.com/username/project_name.git/'해결 방법은 Perso..
Optuna 소개Optuna는 머신러닝용 하이퍼파라미터 최적화 프레임워크이다.하이퍼파라미터 최적화의 중요성은 아래 링크를 통해 확인하자.[Machine Learning] Hyperparameter Tuning on PyTorch (하이퍼파라미터 튜닝) 개념과 방법 [Machine Learning] Hyperparameter Tuning on PyTorch (하이퍼파라미터 튜닝) 개념과 방법Hyperparameter 머신 러닝에서 Hyperparameter는 모델이나 알고리즘을 제어하는 변수이다. 이러한 변수는 모델의 학습 과정을 제어하며, 모델의 성능에 큰 영향을 미친다. 예를 들어, neural network에서 하dykm.tistory.com Optuna는 주어진 모델 아키텍처 및 데이터 세트에 대해..
이번 포스팅에서는 위의 예시처럼 ChatGPT을 텔레그램 봇으로 만들 것이다.이미 카카오톡에도 비슷한 기능이 있지만 직접 만들어보면 재밌기 때문이다.파이썬으로 ChatGPT 봇 제작하기 1 —필요한 라이브러리 설치하기먼저 필요한 라이브러리를 설치해야 한다.터미널에서 다음 명령을 실행하여 python-telegram-bot라이브러리를 설치한다.pip install python-telegram-botopenai라이브러리도 설치한다.pip install openai먼저 라이브러리가 최신 버전의 Telegram API와 호환되는지 확인을 해봐야 한다.방법은 간단한데 먼저 터미널에서 파이썬 인터프리터를 실행시키자.그 다음 아래 명령어를 입력하여 오류가 발생하는지 확인하자.import telegramfrom tel..
아니그니까
'분류 전체보기' 카테고리의 글 목록 (4 Page)