전체 글

프로그램을 작성하다 보면 다양한 예외 상황이 발생할 수 있다.이를 적절하게 처리하면 예기치 않은 프로그램 종료를 방지하고, 디버깅 및 유지보수를 용이하게 할 수 있다.이번 포스팅에서는 파이썬의 기본 예외 처리 방법과 함께 나만의 커스텀 예외 클래스를 정의하고 활용하는 방법을 살펴보자.1. 기본 예외 처리파이썬에서 try, except, else, finally 구문을 이용해 예외를 처리할 수 있다.try: 예외가 발생할 수 있는 코드를 작성except: 특정 예외가 발생했을 때 이를 처리하는 코드를 작성else: 예외가 발생하지 않았을 때 실행할 코드를 작성finally: 예외 발생 여부와 상관없이 항상 실행되는 코드를 작성def divide(a, b): try: result = a /..
파이썬의 데코레이터(decorator)는 기존 함수를 수정하지 않고도 추가적인 기능을 손쉽게 덧붙일 수 있는 강력한 도구이다.데코레이터의 기본 개념과 활용하는 법을 코드를 통해 알아보자.데코레이터란?데코레이터는 하나의 함수를 입력받아 새로운 함수를 반환하는 함수이다.이 방식을 통해 로깅, 실행 시간 측정, 캐싱 등 공통적인 기능을 여러 함수에 쉽게 적용할 수 있다.핵심 로직과 부가 기능을 분리하여 코드의 재사용성과 가독성을 높일 수 있다는 점이 큰 장점이다.데코레이터의 장점 및 필요성코드 재사용성 향상여러 함수에 동일한 기능을 중복 없이 적용할 수 있다.관심사의 분리주요 기능과 부가 기능(예: 인증, 로깅)을 분리하여 코드의 가독성 및 유지보수가 용이하다.유연한 기능 추가함수 실행 전후에 다양한 부가 작..
파이썬 matplotlib을 사용해서 서브플롯을 그리는 방법 두 가지를 살펴보자.1. 명시적이고 직관적인 방법명시적이고 직관적이므로 코드를 통해 살펴본다.import matplotlib.pyplot as pltimport numpy as np# 데이터 생성x = np.linspace(0, 10, 100)y1 = np.sin(x)y2 = np.cos(x)y3 = np.tan(x)y4 = x ** 0.5# Figure와 서브플롯 생성fig, axs = plt.subplots(2, 2, figsize=(10, 8)) # 2x2 서브플롯# 첫 번째 서브플롯axs[0, 0].plot(x, y1, color='blue')axs[0, 0].set_title('y = sin(x)')# 두 번째 서브플롯axs[0, 1..
고양이 이미지를 학습해서 새로운 고양이 이미지를 만들어주는 GAN을 제작해보자.만들기 전에 GAN에 대한 설명과 예시는 아래 링크를 참조하자.이 글에서 catGAN은 카테고리 GAN이 아니라 고양이 GAN이다.PyTorch로 GAN 구현하기PyTorch로 DCGAN 구현하기1. 데이터 준비Kaggle에서 데이터를 받아올 것이다.이 링크를 통해 이미지를 다운받거나 아래 명령어를 터미널에 복사해서 붙여 넣고 실행하자.curl -L -o ~/Downloads/archive.zip https://www.kaggle.com/api/v1/datasets/download/spandan2/cats-faces-64x64-for-generative-modelscURL을 사용하려 할 때, Kaggle API가 설정되어있지 ..
1. eval() 함수의 개념과 필요성PyTorch에서 eval()함수는 모델을 평가(evaluation) 모드로 전환하는데 사용된다.모델에 Dropout 레이어나 Batch Normalization 계층이 있는 경우 훈련 모드와 평가 모드에서 모델의 동작이 달라지는 경우가 있기 때문에, eval()함수를 사용해 모델이 평가 단계에서 적절한 동작을 하도록 설정한다.2. eval() 함수를 사용할 때 모델의 주요 변화Dropout 비활성화:모델에 eval()함수를 먹여서 평가 모드로 전환하면, Dropout 계층이 무작위로 뉴런을 끄는 것을 막아 학습을 방해하지 않고 모든 뉴런을 사용한다.Batch Normalization 고정:평가 모드에서는 배치 정규화(BatchNorm) 계층이 새로운 배치 통계를 사..
이번 포스팅은 PyTorch에서 모델을 저장하고 로드하는 방법에 대해 알아본다.간단한 신경망 모델을 만들고 모델의 파라미터를 저장한 후 다시 로드하는 과정을 알아본다.1. 간단한 모델 생성먼저 간단한 모델을 정의하자.torch.nn.Module을 상속받아 신경망 구조를 정의한다.import torchimport torch.nn as nnimport torch.optim as optim# 간단한 모델 정의class SimpleModel(nn.Module): def __init__(self): super(SimpleModel, self).__init__() # 입력이 10차원이고 출력이 1차원인 완전연결층 self.fc = nn.Linear(10, 1) ..
이전 포스팅에서 npy, npz 파일을 만들고 여는 법을 살펴봤다.이번 포스팅에서는 npz 파일의 키를 확인하는 법을 알아본다.npz 파일 key 확인하기files 속성을 사용하여 아래와 같은 코드로 키를 확인할 수 있다.import numpy as np# .npz 파일 열기data = np.load('파일이름.npz')# 키 확인하기keys = data.filesprint(keys)예제npz 파일을 열고 키를 확인한 다음 첫 번째 키에 해당하는 배열을 출력해보자.import numpy as np# .npz 파일 열기data = np.load('example.npz')# 키 확인하기keys = data.filesprint("Keys:", keys)# 첫 번째 키에 해당하는 배열 출력하기array = da..
1. Homebrew란 무엇인가?Homebrew는 macOS와 Linux에서 오픈 소스 소프트웨어를 쉽게 설치하고 관리할 수 있는 패키지 관리 시스템이다.macOS에 기본적으로 포함되지 않은 유틸리티, 라이브러리, 응용 프로그램 등을 간단한 명령어를 통해 설치할 수 있게 해준다.Homebrew는 소프트웨어를 설치할 때, 소스 코드를 자동으로 다운받고 컴파일하는 방식으로 작동하거나, 사전에 컴파일된 바이너리를 사용한다. 2. Homebrew 설치하기Homebrew는 터미널에서 아래 명령어를 실행해서 설치할 수 있다./bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"설치를 마치면 brew ..
· macOS/Tips
맥에 정착한지 얼마 안 된 사람들은 매직 마우스의 속도가 너무 느리다고 생각할 수 있다.터미널 창에서 현재 사용하고 있는 마우스의 속도와 변경하는 법을 알아보자.현재 마우스 속도 확인터미널을 열고 아래 코드를 실행시켜보자.그럼 숫자로 현재 마우스 속도가 나온다.Defaults read -g com.apple.mouse.scaling마우스 속도 값 변경예를 들어 마우스 속도 값을 2로 변경하고 싶다고 하면 아래 명령어를 터미널에서 실행하면 된다.값 설정은 소수점도 가능하다.defaults write -g com.apple.mouse.scaling 2값 초기화값을 초기화할 땐 아래 명령어를 실행하면 된다.defaults delete -g com.apple.mouse.scaling변경 사항이 즉시 반영되지 않..
macOS에서 SSH 세션을 통해 원격 서버의 이미지를 보는 방법은 여러 가지가 있다.scp 명령을 사용해 로컬로 이미지를 전송해서 열어보거나 FileZilla, Cyberduck과 같은 SFTP 클라이언트를 설치해서 이미지를 확인할 수 있다.하지만 가장 일반적인 방법인 X11 포워딩을 사용하는 것으로 이를 통해 원격 서버의 이미지를 로컬 macOS 화면에 표시할 수 있다.이번 포스팅에서는 X11 포워딩을 사용해서 이미지를 보는 방법에 대해 살펴본다.1. XQuartz 설치먼저, X11 서버 역할을 하는 XQuartz를 설치한다.XQuartz 공식 사이트에서 최신 버전을 다운로드하고 다운 받은 패키지 파일을 열어 설치한다. XQuartzThe XQuartz project is an open-source ..
아니그니까
공간