common.title

Docs
Quantum Circuit
TYTAN CLOUD

QUANTUM GAMING


autoQAOA
Desktop RAG

Overview
Terms of service

Privacy policy

Contact
Research

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