본문 바로가기

AI 인공지능6

[Wandb] YOLOv8 & Wandb sweep 함께 사용하기 Wandb란? wandb는 ML/AI 모델 학습 시, 학습 상황을 tracking(추적) 하여 진행이 잘 되고 있는지 확인할 수 있는 툴 또한, 여러 하이퍼파라미터 조합으로 학습을 시도하여 최적의 하이퍼파라미터를 찾아내도록 돕는 툴 학습 결과를 기록하고 관리하여 성능 개선을 돕는 툴 wandb와 yolov8 (ultralytics) 모델 함께 사용하기 import wandb wandb.login() from ultralytics import YOLO import ultralytics from wandb.integration.ultralytics import add_wandb_callback wandb.login() -> wandb 사이트에서 API 확인 -> 입력 wandb.init(project='sa.. 2024. 3. 26.
yelp 리뷰 감성 분석 (3) 이 글은 파이토치로 배우는 자연어처리(O'REILLY, 한빛미디어)를 공부한 내용을 바탕으로 작성하였습니다. 훈련 반복 첫번째 for문 : epoch 수 만큼 반복 (전체 데이터셋) 두번째 for문 : batch 수 만큼 반복 train 데이터에 대해 param 학습 후 val 데이터로 검증 accuracy, loss 정보 저장 epoch_bar = tqdm.notebook.tqdm(desc='training routine', total=args.num_epochs, position=0) dataset.set_split('train') train_bar = tqdm.notebook.tqdm(desc='split=train', total=dataset.get_num_batches(args.batch_siz.. 2023. 3. 30.
yelp 리뷰 감성 분류 (2) 이 글은 파이토치로 배우는 자연어처리(O'REILLY, 한빛미디어)를 공부한 내용을 바탕으로 작성하였습니다. 퍼셉트론 분류기 완전연결(FC1) 계층 하나를 가진 퍼셉트론 분류기 손실 계산에서 BCEWithLogitsLoss()를 사용하도록 sigmoid를 거치지 않은 채 출력 class ReviewClassifier(nn.Module): """ 간단한 퍼셉트론 기반 분류기 """ def __init__(self, num_features): """ 매개변수: num_features (int): 입력 특성 벡터의 크기 """ super(ReviewClassifier, self).__init__() self.fc1 = nn.Linear(in_features=num_features, out_features=1).. 2023. 3. 30.
yelp 리뷰 감성 분류 (1) 이 글은 파이토치로 배우는 자연어처리(O'REILLY, 한빛미디어)를 공부한 내용을 바탕으로 작성하였습니다. yelp 레스토랑 리뷰 데이터셋 리뷰 텍스트(review)와 그에 맞는 평가 레이블(rating)를 준비하고, train, valid, test (0.7, 0.15, 0.15)로 분류 from argparse import Namespace from collections import Counter import json import os import re import string import numpy as np import pandas as pd import torch import torch.nn as nn import torch.nn.functional as F import torch.optim .. 2023. 3. 30.
파이토치 신경망 구성하기 이 글은 파이토치로 배우는 자연어처리(O'REILLY, 한빛미디어)를 공부한 내용을 바탕으로 작성하였습니다. 1. 퍼셉트론 구현 y = f(wx + b) x : 입력 w : 가중치 b : 편향, 절편 y : 출력 f(): 활성화 함수 선형 함수 표현인 wx + b 는 아핀 변환(affine transform)이라고 불린다. class Perceptron(nn.Module): """ 퍼셉트론은 하나의 선형 층입니다 """ def __init__(self, input_dim): """ 매개변수: input_dim (int): 입력 특성의 크기 """ super(Perceptron, self).__init__() self.fc1 = nn.Linear(input_dim, 1) def forward(self, x.. 2023. 3. 24.
자연어처리(NLP) 기본 용어 정리 이 글은 파이토치로 배우는 자연어처리(O'REILLY, 한빛미디어)를 공부한 내용을 바탕으로 작성하였습니다. 1. 말뭉치(corpus) : 텍스트 데이터와 그와 연관된 메타데이터를 원소로 하는 집합 2. 메타데이터: 식별자, 레이블, 타임스탬프 등 텍스트와 관련된 부가정보 3. 샘플, 데이터 포인트: 메타데이터가 붙은 텍스트 4. 샘플의 모음: 말뭉치, 데이터셋 5. 토큰화: 텍스트를 토큰으로 나누는 과정. 의미있는 단위로 토큰을 설정하고 토큰을 기준으로 corpus를 나눈다. ex) Tweet 텍스트 토큰화 하기 from nltk.tokenize import TweetTokenizer tweet = u"Snow White and the Seven Degrees #MakeMovieCold@midnight.. 2023. 3. 21.