Gradio 인터페이스 클래스

KIM DA MI·2024년 1월 12일
0

gradio

목록 보기
2/9
post-thumbnail

Gradio 인터페이스 클래스


Gradio의 Interface는 주요한 상위 클래스이다.
Interface 클래스를 사용하면 함수와 ML 모델에 대한 GUI를 생성할 수 있다.


app =  gr.Interface(fn=user_greeting, inputs="text", outputs="text")
#run the app
app.launch()

위에서 정의한 애플리케이션에서 Interface 클래스는 fn, inputs, outputs 등 세 가지 필수 매개변수를 가지고 있음을 알 수 있다.

Fn은 Gradio 인터페이스로 래핑한 임의의 함수 또는 ML 모델이다.
이 함수는 하나 이상의 매개변수를 받아들이고 하나 이상의 값을 반환한다:

  • Inputs - 입력 구성 요소의 유형을 정의한다.
    Gradio는 text, image, 또는 mic과 같은 여러 사전 제공 구성 요소를 제공한다.
    입력 구성 요소의 수는 fn에서 지정한 매개변수의 수와 일치해야 한다.
    입력이 None으로 설정되면 출력 구성 요소만 표시된다.
  • Outputs - 출력 구성 요소의 유형을 지정한다.
    Gradio는 image, text, 또는 label과 같은 여러 사전 제공 출력 구성 요소를 제공한다.
    출력 구성 요소의 수는 fn이 출력하는 값의 수와 일치해야 한다.
    출력이 None으로 설정되면 입력 구성 요소만 표시된다.

추가 매개변수와 해당 기능에 대해서는 Gradio 문서를 참조하자.


여러 인터페이스를 생성한 경우, Gradio는 인터페이스를 결합하기 위해 TabbedInterface, Parallel, Series와 같은 클래스를 제공한다.

예를 들어, Welcome 애플리케이션을 기반으로 또 다른 임의의 함수를 정의하고 TabbedInterface를 사용하여 인터페이스를 결합할 수 있다.

import gradio as gr

title = "Multiple Interfaces"

#앱 1
def user_greeting(name):
    return "안녕하세요! " + name + "님, Gradio 애플리케이션에 오신 것을 환영합니다!😎"

#앱 2
def user_help(do):
    return "오늘은 " + do + "를 할 예정입니다. 멋진 선택이에요!"

#인터페이스 1
app1 =  gr.Interface(fn=user_greeting, inputs="text", outputs="text")
#인터페이스 2
app2 =  gr.Interface(fn=user_help, inputs="text", outputs="text")

demo = gr.TabbedInterface([app1, app2], ["환영", "할 일"])

demo.launch()
  • 결과 위젯은 다음과 같다:

0개의 댓글