본문 바로가기
반응형

PROGRAMMING107

[PYTHON] 프로젝트 의존성 관리하기: pip freeze vs pipreqs 안녕하세요, HELLO Python 프로젝트를 진행하면서, 프로젝트 의존성 관리는 중요한 부분 중 하나입니다. 의존성 관리를 통해 프로젝트의 재현성을 보장하고, 팀원 간 혹은 배포 환경 간에 동일한 개발 환경을 유지할 수 있습니다. 이 글에서는 pip freeze와 pipreqs를 사용한 의존성 관리 방법을 정리하고자 합니다. STEP 1. 'pip freeze > requirements.txt' 사용법 STEP 2. 'pipreqs' 사용법 STEP 1. 'pip freeze > requirements.txt' 설명 pip freeze 는 현재 환경에 설치된 모든 패키지와 그 버전을 리스트업 하는 명령어입니다. 이 정보를 requirements.txt 파일로 리디렉션함으로써, 나중에 동일한 환경을 쉽게.. 2024. 4. 7.
[PYTHON] pip 설치 시 quiet로 로그 정리: Silent Installation 가이드 안녕하세요, HELLO Python 프로젝트를 진행하면서 다양한 외부 라이브러리의 도움을 받는 것은 흔한 일입니다. 이런 라이브러리들을 관리하기 위해 requirements.txt 파일에 의존하는 경우가 많은데요, 이 파일에 필요한 라이브러리와 그 버전을 목록화해 두면, 프로젝트를 다른 환경으로 옮겼을 때나 다른 사람이 작업을 이어갈 때 유용하게 사용할 수 있습니다. 하지만, 때로는 라이브러리들을 설치할 때 화면에 출력되는 메시지들이 번거로울 수 있습니다. pip의 --quiet 옵션을 사용하면, 설치 과정에서 발생하는 메시지들을 최소화할 수 있습니다. STEP 1. 'Silent Installation' 개념 프로그래밍 프로젝트, 특히 Python을 사용하는 프로젝트에서는 다양한 외부 라이브러리가 필수.. 2024. 4. 6.
[PyTorch] DataLoader로 훈련 데이터 메타 정보 및 데이터 정보 얻기 안녕하세요, HELLO 이번 글에서는 PyTorch에서 제공하는 DataLoader를 활용하여 훈련 데이터의 메타 정보와 데이터 정보를 어떻게 얻을 수 있는지 살펴보겠습니다. DataLoader는 데이터를 효율적으로 로드하고 관리하는 데 사용되며, 메타 정보와 데이터 정보를 추출하는 과정은 딥러닝 모델을 개발하고 평가하는 데 매우 유용합니다. STEP 1. 'DataLoader란?' STEP 2. '메타 정보 및 데이터 정보란?' STEP 1. 'DataLoader란?' DataLoader는 PyTorch에서 제공하는 유틸리티 클래스입니다. 이를 사용하면 데이터셋을 배치 단위로 로드하고 전처리할 수 있습니다. 이는 훈련 및 평가 과정에서 데이터를 효율적으로 처리할 수 있도록 도와줍니다. 데이터셋 로드: .. 2024. 3. 6.
[Transformer] padding_side (패딩 방향)과 pad_token 해설, 정리, 요약 안녕하세요, HELLO 오늘은 transformer를 사용하여 language 모델, LLM 모델을 추론 (inference) 시 input token size를 맞춰주기 위해 padding을 진행할 때, padding_side는 어떻게 설정하고, 왜 pad_token을 eos_token으로 설정하는지에 대해서 살펴보고자 합니다. 우선 토큰화(Tokenization)와 transformer의 input_id, attention_maks에 대해서 살펴보고, 본격적으로 padding_side와 pad_token에 대해서 살펴보겠습니다. CHAPTER 1. '토큰화(Tokenization)' 선행 지식 CHAPTER 2. 'Transformer' 개념 정리 CHAPTER 3. ' Transformer Infe.. 2024. 2. 24.
[CONDA] 가상환경 삭제하기 (conda env remove) 안녕하세요, HELLO 오늘은 conda 가상환경을 삭제하는 과정에서 발생할 수 있는 문제와 그 해결 방법에 대해 알아보겠습니다. conda 가상환경을 삭제하는 명령어는 다음과 같습니다. conda env remove -n [가상환경 이름] 명령어를 사용하면 가상환경이 제거됩니다. 하지만 여기서 발생할 수 있는 문제들과 그 해결 방법을 살펴보겠습니다. STEP 1. 가상환경이 삭제되지 않는 경우 STEP 2. 환경 삭제 후 에러가 발생하는 경우 STEP 1. 가상환경이 삭제되지 않는 경우 만약 위 명령어를 실행했는데도 가상환경이 삭제되지 않는다면, 다음과 같은 단계를 따라해 보세요. 1. Anaconda Prompt 열기 시작 메뉴에서 "Anaconda Prompt" 또는 OS 환경에 맞는 터미널 (Te.. 2024. 2. 4.
[CONDA] 환경 복사 (Clone)하여 새로운 환경 (Create) 생성 안녕하세요, HELLO 오늘은 Conda에서 기존 환경에 설치된 라이브러리를 그대로 사용하지만, 개발 환경을 분리하고 싶을 경우에 사용하는 Conda 명령어 (Clone, Create)에 대해서 알아보겠습니다. STEP 1. '기존 환경 복사 (Clone)하여 새로운 환경 (Create)' 생성 딥러닝 모델 버전 관리, 프로젝트 등으로 Conda 개발 환경을 생성할 때는 아래 명령어를 작성하면 됩니다. conda create -n [new-env-name] --clone [existed-env-name] * [new-env-name] : 새롭게 생성할 개발 환경 이름 * [exitsted-env-name] : 복사할 기존 개발 환경 이름 Conda 명령어는 아래처럼 사용할 수 있습니다. GPU가 필요한 .. 2024. 1. 24.
[PYTHON] Conda Install 시 발생하는 PackagesNotFoundError 해결 방법 안녕하세요, HELLO Conda를 사용하다 보면 가끔 다음과 같은 에러 메시지를 만날 수 있습니다. 에러 메시지: PackagesNotFoundError: The following packages are not available from current channels: 이는 conda install 명령어를 통해 패키지를 다운로드하려는데 해당 패키지가 선택한 채널에 존재하지 않을 때 발생하는 오류입니다. 이 문제를 해결하기 위해 몇 가지 간단한 방법을 소개하겠습니다. STEP 1. 'conda-forge'로 해결하기 STEP 2. '추가적인 방법' 해결하기 STEP 1. 'conda-forge'로 해결하기 1. 에러 원인 이해하기 가장 먼저 이 에러가 발생하는 이유를 이해해야 합니다. conda는 기본.. 2023. 12. 16.
[CONDA] "Unsuccessful Initial Attempt using Frozen Solve. Retrying with Flexible Solve" 해결 방법 안녕하세요, HELLO Conda 최신 버전이 아닌 경우 발생할 수 있는 에러로 [CONDA] Unsuccessful Initial Attempt using Frozen Solve. Retrying with Flexible Solve가 있습니다. 오늘은 해당 문제를 해결하는 방법에 대해 알아보겠습니다. STEP 1. ' Conda 최신 버전 설치' STEP 2. 'CUDA 환경 고려 사항' STEP 1. ' Conda 최신 버전 설치' 1. OS별 Terminal 열기 Windows, Mac 등 OS에 해당하는 터미널을 실행합니다. 2. pip 및 conda 업그레이드 아래 명령어를 순서대로 실행하여 pip와 conda를 최신 버전으로 업그레이드하면 됩니다. $ pip install --upgrade p.. 2023. 11. 27.
[Pytorch] 딥러닝 실험 재현을 위해 난수 제어 (Deterministic, Benchmark, random seed) 안녕하세요, HELLO PyTorch에서 완벽한 실험 재현을 위해 고려해야 할 무작위성(randomness)를 올바르게 제어하는 방법에 대해 설명하겠습니다. 먼저, PyTorch의 난수 생성과 관련된 기능들은 난수 발생기(Random Number Generator, RNG)를 사용합니다. 이 난수 발생기에는 random seed를 설정할 수 있으며, 이를 통해 매번 동일한 순서로 난수를 생성할 수 있습니다. PyTorch에서는 난수와 관련된 여러 구성 요소가 있기 때문에, 각 구성 요소가 무엇을 의미하는지 살펴보고, 각각의 randomness를 제어하기 위한 방법에 대해 살펴보겠습니다. 각 코드에 대한 설명은 아래에서 자세히 다뤄보겠습니다. import torch import numpy as np imp.. 2023. 11. 25.
반응형