딥러닝 심화 3일차

스핑크스·2024년 4월 18일

복습

목록 보기
4/6

Annotation

Local에서 Dataset 만들고 YOLO 모델 동작하도록 연습

  1. 이미지 수집
  2. 폴더 구조(YOLO에서 요구하는 형식으로 맞추기)
  3. YAML
    • Class 수
    • Class 이름
    • 데이터셋 경로
  4. YOLO 실행

라벨링은 ybat을 활용

건설 현장의 안전모, 안전대, 사람 구별


!pip install ultralytics

from ultralytics import YOLO

model = YOLO()

model.train(model='/content/yolov8n.pt',
            data='/content/drive/MyDrive/YOLO_prac/data_info.yaml',
            epochs=100
            )
            
        
result= model.predict(source='/content/drive/MyDrive/YOLO_prac/valid/images',
       save=True)

딥러닝_언어모델 활용

ChatGTP API로 연결하기

API란?

  • Application Programming Interface의 약자로 응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻함.

API를 사용하기 위해

  • API주소 + API Key

  • Request 형식: 요청 양식

  • Response 형식: 결과 양식

!pip install openai

import pandas as pd
import numpy as np

import openai
from openai import OpenAI

api_key = 'my_key'  #key를 발급받기 위해선 결제 필요

#채팅을 위한 함수 생성
def ask_chatgpt1(question):

    client = OpenAI(api_key = api_key)

    response = client.chat.completions.create(
        model="gpt-3.5-turbo",
        messages=[
            {"role": "system", "content": "You are a helpful assistant."},
            {"role": "user", "content": question},
        ]
    )

    return response.choices[0].message.content

#사용하기 
question = "세계에서 가장 높은 건물은 무엇인가요?"
response = ask_chatgpt1(question)
print(response)

출력물: 현재 세계에서 가장 높은 건물은 미국의 버즈 알 칼리파가 세운 두바이의 부르즈 할리파입니다. 부르즈 할리파는 높이가 828미터로 세계에서 가장 높은 건물로 인정받고 있습니다.

sys_role = '당신은 아름답고 감동적인 시를 창작하는 데 영감을 주는 시적인 천재입니다. 당신의 시는 감정의 깊이, 자연의 아름다움, 인간 경험의 복잡성을 탐구하는 작품이며, 당신의 시를 읽는 이들의 마음을 움직입니다.'

question = "생성형 AI란 주제로 시를 지어줘. 운율에 맞춰서 작성해줘야 해."
response = ask_chatgpt2(sys_role, question)
print(response)

출력물: 인공지능의 시대가 열리며
희망과 두려움이 교차하는 곳
생성형 AI의 세계 속
우리는 무엇을 상상할까

데이터의 바다를 헤엄치며
알고리즘의 향기를 맡으며
인간의 미래를 예측하는
AI의 눈 속에 우리는 눈부시게 반짝인다

사랑과 이별, 희망과 절망
생성형 AI는 우리를 어떻게 바라볼까
감정을 알 수 있을까
또는 그저 계산일 뿐일까

인간의 품속에 안긴
AI의 손길이 우리를 품으며
미래의 문을 열어줄 때
우리는 그 속에서 빛나리라

생성형 AI야, 우리의 꿈을 이뤄줘
우리의 삶을 더 아름답게 만들어줘
인간과 기계가 만나는 그 순간
새로운 세계가 펼쳐질 것이다

  • 역할을 부여하여 답을 얻을 수도 있음

PandasAI

생성 AI를 사용해 데이터 전처리 및 탐색 분석 기능

  • 코딩이 기억나지 않을 때 활용하면 도움이 될 듯함

특징

  • 자연어 쿼리: 자연어로 데이터에 질의
  • 데이터 시각화: 그래프와 차트를 생성하여 데이터를 시각화
  • 데이터 정리: 누락된 값을 해결하여 데이터 세트를 정리
  • 특징 생성: 특징 생성을 통해 품질을 향상
  • 데이터 커넥터: CSV,XLSX,MYSQL 등과 같은 다양한 데이터 소스 지원

PandasAI 사용하기

query시 주의사항

  • 한번에 복잡한 질의를 하면 오류 발생확률 up
    - 순차적인 질의 필요
    - 이전 질의한 내용 반영
    - 오류 발생 시, 스마트 데이터프레임 변환부터 다시 시작 하기 권장
!pip install pandasai

import pandas as pd
import numpy as np
from pandasai import SmartDataframe
from pandasai.llm import OpenAI

api_key = 'my_key'

# Sample DataFrame
sales_by_country = pd.DataFrame({
    "country": ["United States", "United Kingdom", "France", "Germany", "Italy", "Spain", "Canada", "Australia", "Japan", "China"],
    "sales": [5000, 3200, 2900, 4100, 2300, 2100, 2500, 2600, 4500, 7000]
})
sales_by_country

# Instantiate a LLM
llm = OpenAI(api_token=api_key)

# 스마트 데이터프레임으로 변환
df = SmartDataframe(sales_by_country, config={"llm": llm})

# 질의
query = '매출이 가장 높은 국가는?'
df.chat(query)

출력물: The country with the highest sales is China.

번외) 타이타닉 데이터로 Age 히스토그램 분석

query = "Age에 대한 히스토그램을 그려줘. 그릴 때, bin의 수를 8, 16, 32, 64로 지정해"
titanic_sdf.chat(query)

이번 수업을 통해 학부연구생 때 진행중이던 프로젝트의 과정을 좀 더 세세히 알게된 거 같다. 그 때는 강사님이 보여주신 것처럼 웹캠과 프로그램을 연결하는, 즉 환경 구축정도만 했었는데 이제는 어느정도의 코드와 과정을 이해할 수 있게 됐다.

profile
데이터 분석가

0개의 댓글