common.title

Docs
Quantum Circuit
TYTAN CLOUD

QUANTUM GAMING


Overview
Contact
Event
Project
Research

Terms of service (Web service)

Terms of service (Quantum and ML Cloud service)

Privacy policy


Sign in
Sign up
common.title

gradioを使ってみる

Yuichiro Minato

2024/04/13 17:03

2

機械学習用のインターフェイスとしてgradioが便利です。さまざまなフォームなどを通常はhtml/css/javascriptを利用しますが、pythonベースでウェブサーバーを立ち上げられます。使い方を見てみます。

インストールですが、

pip install gradio

です。公式サイトは、

https://www.gradio.app/

でまずは簡単なチュートリアルを見てみます。

import gradio as gr

def greet(name, intensity):
return "Hello, " + name + "!" * int(intensity)

demo = gr.Interface(
fn=greet,
inputs=["text", "slider"],
outputs=["text"],
)

demo.launch()

これだけで、

これが出ました。。。超強力ですね。

左側のnameにminatoと入れて、intensityを強くすると、右側に

Hello, minato!!!!!!!!!!!!!!!!!!!!

と出ました。入出力はちょっと慣れませんが、慣れればすごそうです。。。

入出力は調整できるようです。入出力も複数設定できて結構簡単ですね。

import gradio as gr

def greet(name):
  return "Hello, " + name, len(name)

demo = gr.Interface(
  fn=greet,
  inputs=["text"],
  outputs=["text", "text"],
)

demo.launch()

このようにすると、出力は

となりました。入出力数を間違えなければ簡単そうです。一つのページで複数の機能を持たせたものを作りたかったのですが、

import gradio as gr

def greet(name):
  return "Hello " + name + "!"

demo1 = gr.Interface(
  fn=greet,
  inputs=["text"],
  outputs=["text"],
)

demo2 = gr.Interface(
  fn=greet,
  inputs=["text"],
  outputs=["text"],
)

gr.TabbedInterface(
  [demo1, demo2], ["demo1", "demo2"]
).launch(share=True)

タブを作ることで解決できました。かなり便利ですね。あとはかなり細かい調整をすればいいみたいですが、かなり簡単にPythonだけで本格的なインターフェースが作れるので、開発にとても便利かと思いました。

© 2025, blueqat Inc. All rights reserved