반응형

Python 127

PyTorch vs TensorFlow - CIFAR-10 이미지 분류 비교

PyTorch vs TensorFlow - CIFAR-10 이미지 분류 비교 딥러닝 프레임워크 중 가장 인기 있는 PyTorch와 TensorFlow, 두 프레임워크의 성능을 실제 이미지 분류 문제에 대해 비교해보았습니다. 이번에는 CIFAR-10 데이터셋과 ResNet-18 모델을 사용하여 정확도, 학습 속도 등의 지표를 측정하고 분석해보겠습니다. 데이터셋 및 모델 실험에 사용한 데이터셋은 CIFAR-10으로, 60,000개의 32x32 크기 이미지가 10개 클래스로 구분되어 있습니다. 모델은 ResNet-18 아키텍처를 사용했으며, 하이퍼파라미터는 다음과 같이 설정하였습니다. - 옵티마이저: SGD (lr=0.1, momentum=0.9) - 손실함수: CrossEntropyLoss - 학습 에포크:..

PyTorch와 Transfer Learning으로 꽃 이미지 분류기 만들기

PyTorch와 Transfer Learning으로 꽃 이미지 분류기 만들기 오늘은 PyTorch와 Transfer Learning 기법을 활용하여 꽃 이미지를 분류하는 모델을 만들어보겠습니다. 다양한 꽃 사진 데이터셋을 대상으로 하며, 사전 훈련된 모델의 지식을 활용하여 빠르고 정확한 모델을 구축할 수 있습니다. 전체 과정을 단계별로 따라가시면서 실습해보시기 바랍니다. 사전 준비 PyTorch와 관련 패키지를 설치합니다. pip install torch torchvision 그리고 실습에 사용할 데이터셋을 다운로드 받습니다. 이번 예제에서는 아래 링크의 꽃 이미지 데이터셋을 활용하겠습니다. https://www.robots.ox.ac.uk/~vgg/data/flowers/102/ 데이터셋을 다운로드하여..

파이썬으로 구글 플레이 스토어 리뷰 크롤링 / 감성 분석하기

파이썬으로 구글 플레이 스토어 리뷰 크롤링 / 감성 분석하기 여러분 안녕하세요? 오늘은 파이썬을 활용해 실제 앱 리뷰 데이터에 대한 감성분석을 해보겠습니다. 구글 플레이스토어에서 제공하는 앱 리뷰 데이터를 활용할 텐데요. 이런 감성분석은 고객의 의견을 실시간으로 파악하여 제품/서비스 개선에 활용할 수 있습니다. 이 포스팅에서는 다음 내용을 다룰 예정입니다: 1. 데이터 수집 및 전처리 2. TextBlob 라이브러리를 이용한 감성 점수 계산 3. 결과 시각화 4. 개선 방안 제시 ## 1. 데이터 수집 및 전처리 먼저 구글 플레이 스토어 API를 통해 특정 앱의 리뷰 데이터를 수집합니다. from google_play_scraper import Sort, reviews_all # 크롤링 대상 앱 정보 a..

코딩 테스트 대비! 파이썬으로 동적 프로그래밍(DP) 기법 익히기

파이썬으로 동적 프로그래밍(DP) 기법 익히기 문제 설명 가능한 최대 구간 합(Maximum Subarray Sum) 문제를 동적 프로그래밍 기법으로 해결하세요. 주어진 배열에서 연속된 부분 배열의 합 중 최대값을 구하는 문제입니다. 예시 입출력 입력: nums = [-2, 1, -3, 4, -1, 2, 1, -5, 4] 출력: 6 (구간 [4, -1, 2, 1]의 최대 합) 솔루션 코드 def max_subarray(nums): n = len(nums) dp = nums.copy() for i in range(1, n): dp[i] = max(dp[i - 1] + nums[i], nums[i]) return max(dp) # 테스트 케이스 nums = [-2, 1, -3, 4, -1, 2, 1, -5,..

코딩 테스트 대비! 파이썬으로 N-Queen 문제 해결하기 (백트래킹 알고리즘)

파이썬으로 N-Queen 문제 해결하기 (백트래킹 알고리즘) 문제 설명 N-Queen 문제는 가로, 세로, 대각선으로 공격할 수 있는 퀸을 서로 공격하지 못하도록 N*N 크기의 체스판에 배치하는 문제입니다. N이 주어졌을 때, 퀸을 배치하는 방법의 수를 구하는 백트래킹 알고리즘을 작성하세요. 예시 입출력 입력: N = 4 출력: 2 입력: N = 8 출력: 92 솔루션 코드 def n_queens(n): def is_safe(board, row, col, n): # 같은 행에 퀸이 있는지 검사 for i in range(col): if board[row][i] == 1: return False # 왼쪽 대각선에 퀸이 있는지 검사 i, j = row, col while i >= 0 and j >= 0: i..

코딩 테스트 대비! 파이썬으로 그래프 탐색 알고리즘(BFS, DFS) 구현하기

파이썬으로 그래프 탐색 알고리즘(BFS, DFS) 구현하기 문제 설명 그래프가 주어졌을 때, 너비 우선 탐색(BFS)과 깊이 우선 탐색(DFS) 알고리즘을 파이썬으로 구현하라. 예시 입력 graph = { 1: [2, 3, 4], 2: [5], 3: [5], 4: [], 5: [6, 7], 6: [], 7: [3] } 솔루션 코드 from collections import deque def bfs(graph, start): visited = [] queue = deque([start]) while queue: node = queue.popleft() if node not in visited: visited.append(node) queue.extend(graph[node]) return visited d..

메타클래스로 파이썬 클래스 작성을 한 단계 업그레이드하기

메타클래스로 파이썬 클래스 작성을 한 단계 업그레이드하기 파이썬에서 모든 것이 객체라는 말이 있듯이, 클래스 자체도 객체입니다. 그리고 이 클래스 객체를 생성하는 것이 바로 메타클래스입니다. 메타클래스를 직접 정의하면 클래스 생성 프로세스 자체를 커스터마이징할 수 있습니다. 메타클래스란? 메타클래스는 클래스 객체를 생성하는 "클래스의 클래스"입니다. 파이썬의 type 클래스가 기본 메타클래스 입니다. class MetaExample(type): def __new__(cls, name, bases, attrs): print(f"새 클래스 {name}이(가) 정의되었습니다.") return super().__new__(cls, name, bases, attrs) class MyClass(metaclass=M..

숨은 고수의 기술 - 파이썬 디스크립터(Descriptor)로 캡슐화 완성하기

숨은 고수의 기술 - 파이썬 디스크립터로 캡슐화 완성하기 파이썬의 객체지향 프로그래밍에서 캡슐화는 핵심 원칙입니다. 데이터 속성에 대한 접근을 제어하고 무결성을 보장하는 것이 중요합니다. 이를 위해 프로퍼티를 사용하지만, 디스크립터를 활용하면 더 강력하고 유연한 캡슐화가 가능합니다. 디스크립터란? 디스크립터는 객체 속성에 접근할 때의 행위를 정의하는 클래스입니다. get, set, delete 메서드를 구현하여 속성 값의 가져오기, 설정, 삭제를 제어합니다. class DescriptorExample: def __init__(self, value=None): self.value = value def __get__(self, obj, obj_type): print('Getting value') return..

동적 코드 생성과 실행으로 파이썬 프로그래밍의 힘 키우기(eval, exec)

동적 코드 생성과 실행으로 파이썬 프로그래밍의 힘 키우기 파이썬에서는 소스 코드를 문자열로 표현하고, 이를 동적으로 생성하고 실행할 수 있는 기능을 제공합니다. 이를 통해 프로그램의 유연성과 확장성을 높일 수 있습니다. eval(), exec() 함수 eval()은 문자열 형태의 유효한 파이썬 표현식을 동적으로 평가합니다. exec()는 문자열 형태의 유효한 파이썬 문을 동적으로 실행합니다. x = 1 y = eval("x + 2") # y = 3 exec("print('Hello, World!')") # Hello, World! compile() 함수 compile() 함수를 이용하면 문자열을 코드 객체로 컴파일할 수 있습니다. code = 'for i in range(5): print(i)' cod_..

파이썬의 숨은 보석, Context Manager로 코드 깔끔하게 작성하기

파이썬의 숨은 보석, Context Manager로 코드 깔끔하게 작성하기 파이썬의 Context Manager는 "with" 문과 함께 사용되는 유용한 기능입니다. 이를 적절히 활용하면 자원 열기/닫기, 락 획득/해제, 트랜잭션 시작/롤백 등의 작업을 안전하고 깔끔하게 처리할 수 있습니다. Context Manager 사용 예시 with open('file.txt') as f: contents = f.read() # 파일 읽기 코드 # with 블록을 벗어나면 자동으로 파일이 close됩니다. 위 예시처럼 파일을 열고 닫는 단순한 작업조차도 예외 상황을 고려하면 상당히 복잡해집니다. Context Manager를 사용하면 짧은 구문으로 안전하게 처리할 수 있습니다. 직접 Context Manager 구..

반응형