1654168680
99%の精度で機械学習モデルを構築し、今では恍惚状態になっています。あなたはyaaaaaaaaayのようです!私のモデルはうまく機能しました。
それからあなたは一時停止しました、そしてあなたは次のようでした–今何ですか?
まず、コードをGitHubにアップロードして、Jupyterノートブックファイルを他の人に見せることを考えたかもしれません。これは、Seabornを使用して作成したゴージャスな外観の視覚化、非常に強力なアンサンブルモデル、および評価指標に合格する方法などで構成されています。
しかし、あなたは誰もそれと相互作用していないことに気づきました。
さて、私の友人、非技術者もモデルと対話できるように、モデルをWebアプリとしてデプロイしてみませんか?あなたのようなプログラマーだけがその最初のアプローチを理解するでしょう。
モデルをデプロイする方法はいくつかありますが、この記事ではそのうちの1つであるGradioの使用に焦点を当てます。私はあなたが興奮していると言うことができます。さて、これはエキサイティングな乗り物になるので、リラックスして楽しんでください。
前提条件
この旅を始める前に、私はあなたが次の知識を持っていると思います:
グラディオとは?
Gradioは無料のオープンソースPythonライブラリであり、誰でもどこでも使用できる、機械学習モデル用の使いやすいカスタマイズ可能なコンポーネントデモを開発できます。
Gradioは、Scikit-learn、PyTorch、NumPy、seaborn、pandas、TensorFlowなどの最も人気のあるPythonライブラリと統合されています。
その利点の1つは、JupyterまたはColabノートブックで現在開発しているWebアプリと対話できることです。これには、ユーザーが対話できるWebアプリを構築するのに役立つ多くの独自の機能があります。
Gradioのインストール方法
Gradioを使用するには、最初にそのライブラリをローカルPCにインストールする必要があります。したがって、Conda PowerShellまたはターミナルに移動して、次のコマンドを実行します。Google Colabを使用している場合は、次のように入力することもできます。
pip install gradio
これで、GradioがローカルPCにインストールされました。ライブラリに精通できるように、Gradioの基本をいくつか見ていきましょう。
まず、ライブラリをノートブックまたはIDEのどちらを使用しているかにインポートする必要があります。これを行うには、次のコマンドを入力します。
import gradio as gr
最初のWebアプリを作成する方法
このチュートリアルでは、Gradioの基本に慣れるための挨拶アプリの例を作成します。
そのためには、GradioがPythonユーザー定義関数で動作するため、挨拶関数を作成する必要があります。その結果、挨拶関数は次のようになります。
def greet_user(name):
return "Hello " + name + " Welcome to Gradio!😎"
次に、Python関数をGradioにデプロイして、Webアプリとして機能できるようにする必要があります。これを行うには、次のように入力します。
app = gr.Interface(fn = greet_user, inputs="text", outputs="text")
app.launch()
実行する前に、上記のコードで何が起こっているのかを見ていきましょう。
gr.Interface
:この属性は、Gradioのあらゆるものの基盤として機能します。Webに表示されるすべてのコンポーネントを表示するのはユーザーインターフェイスです。
パラメータfn
:これは、作成したPython関数であり、Gradioに提供します。
パラメータ:これらは、inputs
単語、画像、数字、音声など、作成した関数に渡したいコンポーネントです。この例では、作成した関数に必要なテキストがあるため、入力パラメーターに入力しました。
パラメータ:これは、output
表示したいインターフェイスにコンポーネントを表示できるようにするパラメータです。この例で作成した関数はテキストを表示する必要があるため、テキストコンポーネントをoutputsパラメーターに提供します。
app.launch
アプリを起動するために使用されます。上記のコードを実行すると、次のようになります。
Gradioインターフェースが表示されたら、名前を入力して送信を押します。次に、上記で作成した関数に結果を出力します。これで完了です。モデルのデプロイ方法を学習する前に、Gradioでもう1つ説明します。
2つの入力を受け入れ、1つの出力を提供するGradioアプリを作成します。このアプリはあなたの名前と値を尋ねるだけで、あなたの名前と入力した値の倍数を出力します。これを行うには、次のコードを入力するだけです。
def return_multiple(name, number):
result = "Hi {}! 😎. The Mulitple of {} is {}".format(name, number, round(number**2, 2))
return result
app = gr.Interface(fn = return_multiple, inputs=["text", gr.Slider(0, 50)], outputs="text")
app.launch()
これで、ここで行った、慣れていない可能性のあるいくつかのことを簡単に見ていきましょう。
入力パラメーター:入力パラメーターで、テキストとスライダーの2つのコンポーネントを含むリストを作成しました。スライダーは、指定された範囲をスライドしたときにフロート値を返すGradioの属性の1つでもあります。これを使用したのは、作成した関数でテキストと値を期待しているためです。
上記で作成した関数で属性を並べ替える方法で、入力パラメーターのコンポーネントを並べ替える必要があります。つまり、番号の前に最初にテキストを入力します。したがって、出力に期待しているのは実際には文字列です。上記の関数でいくつかのフォーマットを実行しました。
Gradioの基本のいくつかに慣れてきたので、展開するモデルを作成しましょう。
機械学習モデルをGradioにデプロイする方法
このセクションでは、以前にトレーニングしてピクルスファイルに保存した分類モデルを使用します。
トレーニングに時間がかかるモデルを作成する場合、それを処理するための最も効果的なアプローチは、モデルのトレーニングのストレスを経験する必要がないように、トレーニングが終了したらピクルスファイルに保存することです。また。
モデルをピクルスファイルとして保存する場合は、その方法を説明します。最初にpickleライブラリをインポートしてから、以下のコードを入力します。次のようなモデルを適合させたいとしましょう。
import pickle
from sklearn.ensemble import RandomForestClassifier
clf = RandomForestClassifier(random_state=42)
clf.fit(X_train, y_train)
# If you've fitted the model just type this to save it: Remember to change the file name
with open("filename.pkl", "wb") as f:
pickle.dump(clf, f)
ロードしたい場合は、次のコードも入力できます。
with open("filename.pkl", "rb") as f:
clf = pickle.load(f)
これを理解したので、予測を行うことができるようにGradioに渡すことができる関数を作成しましょう。
def make_prediction(age, employment_status, bank_name, account_balance):
with open("filename.pkl", "rb") as f:
clf = pickle.load(f)
preds = clf.predict([[age, employment_status, bank_name, account_balance]])
if preds == 1:
return "You are eligible for the loan"
return "You are not eligible for the loan"
#Create the input component for Gradio since we are expecting 4 inputs
age_input = gr.Number(label = "Enter the Age of the Individual")
employment_input = gr.Number(label= "Enter Employement Status {1:For Employed, 2: For Unemployed}")
bank_input = gr.Textbox(label = "Enter Bank Name")
account_input = gr.Number(label = "Enter your account Balance:")
# We create the output
output = gr.Textbox()
app = gr.Interface(fn = make_prediction, inputs=[age_input, employment_input, bank_input, account_input], outputs=output)
app.launch()
それでは、上記の内容をアンラップしましょう。
入力コンポーネントを作成したところから始めます。でコンポーネントを作成することを選択できますgr.Interface
が、次のコードでは、コンポーネントをの外部で直接ビルドしてgr.Interface
から、変数をに提供しましたgr.Interface
。
したがって、数値を受け取り、を使用しgr.Number
、作成した出力変数からコンポーネントを作成する場合は、最初のアプリで以前に行ったようにテキストを渡すことができます(「text」文字列は、テキストボックスの省略形です。属性を明示的に宣言したい)。
また、ユーザーが何をすべきかがわかるように、各コンポーネントでlabelパラメーターを使用しました。上記の他のコードについては、すでによく知っています。これで、モデルがデプロイされました。🎉🎉😎🥳🥳。
結論
このチュートリアルをお読みいただきありがとうございます。この記事では多くのことを取り上げました。Gradioの学習はここで止まらないことを覚えておいてください-あなたは彼らのウェブサイトでもっとチェックすることができます。Webアプリの作成方法に関する非常に直感的なドキュメントがあります。
このストーリーは、もともとhttps://www.freecodecamp.org/news/how-to-deploy-your-machine-learning-model-as-a-web-app-using-gradio/で公開されました。
1654168680
99%の精度で機械学習モデルを構築し、今では恍惚状態になっています。あなたはyaaaaaaaaayのようです!私のモデルはうまく機能しました。
それからあなたは一時停止しました、そしてあなたは次のようでした–今何ですか?
まず、コードをGitHubにアップロードして、Jupyterノートブックファイルを他の人に見せることを考えたかもしれません。これは、Seabornを使用して作成したゴージャスな外観の視覚化、非常に強力なアンサンブルモデル、および評価指標に合格する方法などで構成されています。
しかし、あなたは誰もそれと相互作用していないことに気づきました。
さて、私の友人、非技術者もモデルと対話できるように、モデルをWebアプリとしてデプロイしてみませんか?あなたのようなプログラマーだけがその最初のアプローチを理解するでしょう。
モデルをデプロイする方法はいくつかありますが、この記事ではそのうちの1つであるGradioの使用に焦点を当てます。私はあなたが興奮していると言うことができます。さて、これはエキサイティングな乗り物になるので、リラックスして楽しんでください。
前提条件
この旅を始める前に、私はあなたが次の知識を持っていると思います:
グラディオとは?
Gradioは無料のオープンソースPythonライブラリであり、誰でもどこでも使用できる、機械学習モデル用の使いやすいカスタマイズ可能なコンポーネントデモを開発できます。
Gradioは、Scikit-learn、PyTorch、NumPy、seaborn、pandas、TensorFlowなどの最も人気のあるPythonライブラリと統合されています。
その利点の1つは、JupyterまたはColabノートブックで現在開発しているWebアプリと対話できることです。これには、ユーザーが対話できるWebアプリを構築するのに役立つ多くの独自の機能があります。
Gradioのインストール方法
Gradioを使用するには、最初にそのライブラリをローカルPCにインストールする必要があります。したがって、Conda PowerShellまたはターミナルに移動して、次のコマンドを実行します。Google Colabを使用している場合は、次のように入力することもできます。
pip install gradio
これで、GradioがローカルPCにインストールされました。ライブラリに精通できるように、Gradioの基本をいくつか見ていきましょう。
まず、ライブラリをノートブックまたはIDEのどちらを使用しているかにインポートする必要があります。これを行うには、次のコマンドを入力します。
import gradio as gr
最初のWebアプリを作成する方法
このチュートリアルでは、Gradioの基本に慣れるための挨拶アプリの例を作成します。
そのためには、GradioがPythonユーザー定義関数で動作するため、挨拶関数を作成する必要があります。その結果、挨拶関数は次のようになります。
def greet_user(name):
return "Hello " + name + " Welcome to Gradio!😎"
次に、Python関数をGradioにデプロイして、Webアプリとして機能できるようにする必要があります。これを行うには、次のように入力します。
app = gr.Interface(fn = greet_user, inputs="text", outputs="text")
app.launch()
実行する前に、上記のコードで何が起こっているのかを見ていきましょう。
gr.Interface
:この属性は、Gradioのあらゆるものの基盤として機能します。Webに表示されるすべてのコンポーネントを表示するのはユーザーインターフェイスです。
パラメータfn
:これは、作成したPython関数であり、Gradioに提供します。
パラメータ:これらは、inputs
単語、画像、数字、音声など、作成した関数に渡したいコンポーネントです。この例では、作成した関数に必要なテキストがあるため、入力パラメーターに入力しました。
パラメータ:これは、output
表示したいインターフェイスにコンポーネントを表示できるようにするパラメータです。この例で作成した関数はテキストを表示する必要があるため、テキストコンポーネントをoutputsパラメーターに提供します。
app.launch
アプリを起動するために使用されます。上記のコードを実行すると、次のようになります。
Gradioインターフェースが表示されたら、名前を入力して送信を押します。次に、上記で作成した関数に結果を出力します。これで完了です。モデルのデプロイ方法を学習する前に、Gradioでもう1つ説明します。
2つの入力を受け入れ、1つの出力を提供するGradioアプリを作成します。このアプリはあなたの名前と値を尋ねるだけで、あなたの名前と入力した値の倍数を出力します。これを行うには、次のコードを入力するだけです。
def return_multiple(name, number):
result = "Hi {}! 😎. The Mulitple of {} is {}".format(name, number, round(number**2, 2))
return result
app = gr.Interface(fn = return_multiple, inputs=["text", gr.Slider(0, 50)], outputs="text")
app.launch()
これで、ここで行った、慣れていない可能性のあるいくつかのことを簡単に見ていきましょう。
入力パラメーター:入力パラメーターで、テキストとスライダーの2つのコンポーネントを含むリストを作成しました。スライダーは、指定された範囲をスライドしたときにフロート値を返すGradioの属性の1つでもあります。これを使用したのは、作成した関数でテキストと値を期待しているためです。
上記で作成した関数で属性を並べ替える方法で、入力パラメーターのコンポーネントを並べ替える必要があります。つまり、番号の前に最初にテキストを入力します。したがって、出力に期待しているのは実際には文字列です。上記の関数でいくつかのフォーマットを実行しました。
Gradioの基本のいくつかに慣れてきたので、展開するモデルを作成しましょう。
機械学習モデルをGradioにデプロイする方法
このセクションでは、以前にトレーニングしてピクルスファイルに保存した分類モデルを使用します。
トレーニングに時間がかかるモデルを作成する場合、それを処理するための最も効果的なアプローチは、モデルのトレーニングのストレスを経験する必要がないように、トレーニングが終了したらピクルスファイルに保存することです。また。
モデルをピクルスファイルとして保存する場合は、その方法を説明します。最初にpickleライブラリをインポートしてから、以下のコードを入力します。次のようなモデルを適合させたいとしましょう。
import pickle
from sklearn.ensemble import RandomForestClassifier
clf = RandomForestClassifier(random_state=42)
clf.fit(X_train, y_train)
# If you've fitted the model just type this to save it: Remember to change the file name
with open("filename.pkl", "wb") as f:
pickle.dump(clf, f)
ロードしたい場合は、次のコードも入力できます。
with open("filename.pkl", "rb") as f:
clf = pickle.load(f)
これを理解したので、予測を行うことができるようにGradioに渡すことができる関数を作成しましょう。
def make_prediction(age, employment_status, bank_name, account_balance):
with open("filename.pkl", "rb") as f:
clf = pickle.load(f)
preds = clf.predict([[age, employment_status, bank_name, account_balance]])
if preds == 1:
return "You are eligible for the loan"
return "You are not eligible for the loan"
#Create the input component for Gradio since we are expecting 4 inputs
age_input = gr.Number(label = "Enter the Age of the Individual")
employment_input = gr.Number(label= "Enter Employement Status {1:For Employed, 2: For Unemployed}")
bank_input = gr.Textbox(label = "Enter Bank Name")
account_input = gr.Number(label = "Enter your account Balance:")
# We create the output
output = gr.Textbox()
app = gr.Interface(fn = make_prediction, inputs=[age_input, employment_input, bank_input, account_input], outputs=output)
app.launch()
それでは、上記の内容をアンラップしましょう。
入力コンポーネントを作成したところから始めます。でコンポーネントを作成することを選択できますgr.Interface
が、次のコードでは、コンポーネントをの外部で直接ビルドしてgr.Interface
から、変数をに提供しましたgr.Interface
。
したがって、数値を受け取り、を使用しgr.Number
、作成した出力変数からコンポーネントを作成する場合は、最初のアプリで以前に行ったようにテキストを渡すことができます(「text」文字列は、テキストボックスの省略形です。属性を明示的に宣言したい)。
また、ユーザーが何をすべきかがわかるように、各コンポーネントでlabelパラメーターを使用しました。上記の他のコードについては、すでによく知っています。これで、モデルがデプロイされました。🎉🎉😎🥳🥳。
結論
このチュートリアルをお読みいただきありがとうございます。この記事では多くのことを取り上げました。Gradioの学習はここで止まらないことを覚えておいてください-あなたは彼らのウェブサイトでもっとチェックすることができます。Webアプリの作成方法に関する非常に直感的なドキュメントがあります。
このストーリーは、もともとhttps://www.freecodecamp.org/news/how-to-deploy-your-machine-learning-model-as-a-web-app-using-gradio/で公開されました。