機械学習用のインターフェイスとしてgradioが便利です。さまざまなフォームなどを通常はhtml/css/javascriptを利用しますが、pythonベースでウェブサーバーを立ち上げられます。使い方を見てみます。
インストールですが、
pip install gradio
です。公式サイトは、
でまずは簡単なチュートリアルを見てみます。
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だけで本格的なインターフェースが作れるので、開発にとても便利かと思いました。