身為 JavaScript 開發人員,深入研究機器學習並不像看起來那麼令人畏懼。雖然在技術上可以使用 Node.js 套件處理所有事情,但 Python ML 生態系統太豐富且完善,不容忽視。另外,Python 的使用起來非常方便。因此,使用 Python 來處理後端的繁重工作是有意義的。準備好模型後,您可以將其匯出為前端友好的格式並將其加載到客戶端上以運行預測。
在這篇文章中,我們將建立一個模型,根據藝術家的 Twitter 粉絲數量來預測他們的受歡迎程度。
第一步是取得資料集。對於此項目,我們將使用如下所示的 arts.csv 檔案:
twitter_followers,popularity,handle 111024636,94,justinbieber 107920365,91,rihanna 106599902,89,katyperry 95307659,97,taylorswift13 66325495,87,selenagomez 66325135,71,selenagomez 60943147,83,jtimberlake 54815915,82,britneyspears 53569307,85,shakira
如您所見,這裡有兩個關鍵值:twitter_followers 和受歡迎程度。這很好地為我們建立了序列模型,其中 x 將是 twitter_followers,y 將是流行度。
序列模型是建構模型最簡單的選項之一。雖然選擇最終取決於特定的用例,但我現在保持簡單並堅持使用這種方法。
建立模型時,您需要解決一些基本任務:
下面的程式碼讓您很好地概述了這些任務,儘管它不是完整的圖片。您可以在 Github 上查看完整程式碼。
def get_model(x, y): x_normalized = layers.Normalization( axis=None, ) x_normalized.adapt(np.array(x)) model = tensorflow.keras.Sequential([x_normalized, layers.Dense(units=1)]) model.compile( optimizer=tensorflow.keras.optimizers.Adam(learning_rate=0.1), loss="mean_squared_error", ) model.fit( x, y, epochs=2, verbose=0, validation_split=0.2, ) return model def main: train_features, test_features, train_labels, test_labels = split_data(dataset) model = get_model( train_features["twitter_followers"], train_labels, ) test_loss = model.evaluate( test_features["twitter_followers"], test_labels, verbose=2 ) model.export("./saved_model")
如您所見,Python 程式碼非常簡單。有一個主要函數處理資料的分割、取得模型、評估它,最後保存它。
簡而言之,這些是創建模型的基本步驟。但讓我們面對現實:建立一個真正有效的模型既是一門藝術,也是一門科學。我的目標只是展示 Python 入門是多麼容易。然而,要創建一個性能良好的模型,需要做很多工作,例如擁有可靠的資料集、清理和標準化資料、選擇正確的模型和設置,以及擁有訓練它的計算能力。所有這些任務都需要投入大量的時間和精力!
現在我們已經訓練並保存了模型,是時候將其引入前端了。在這一步驟中,我們將以網路友好的格式載入模型,以便我們可以直接在瀏覽器中執行預測。無論您使用 TensorFlow.js 還是其他程式庫,將機器學習整合到您的 Web 應用程式中都會開啟一個充滿可能性的世界。讓我們深入探討如何做到這一點!
TensorFlow 提供了一個名為 tensorflowjs_converter 的 npm 包,可協助將已儲存的模型轉換為 JSON 和二進位。
tensorflowjs_converter --input_format=tf_saved_model model/saved_model out/public
ls -la out/public group1-shard1of1.bin model.json
此設定可以輕鬆存取 Web 應用程式所需的檔案。
您可以在 Github 上查看完整程式碼。
const model = await tensorflow.loadGraphModel("model.json"); const getPopularity = (followers) => { const followers = 1_000; const normalized = followers; const x = tensorflow.tensor(normalized).reshape([-1, 1]); const result = model.predict(x); const values = result.arraySync(); const y = values[0][0].toFixed(2) * 100; const popularity = y; return popularity; };
如前所述,該模型旨在根據 Twitter 追蹤者數量「預測受歡迎程度」。雖然它看起來像是一個簡單的範例,但它有效地演示瞭如何在後端生成模型並在前端使用它。
稍微看一下 getPopularity 如何處理輸入,但關鍵一行是 model.predict(x),它使用模型根據輸入 x 預測一個值 (y)。
前往示範頁面並嘗試一些 Twitter 手把。這是一種有趣的方式來了解模型如何根據追蹤者數量預測受歡迎程度。
TensorFlow 是一個很棒的函式庫,為後端和前端開發提供了工具。任何 JavaScript 開發人員都可以深入使用 Python 或類似語言建立模型,然後輕鬆將模型匯入前端以運行預測。
機械学習は多くの知識を必要とする広大な分野ですが、TensorFlow のようなツールは、ソフトウェア開発者と機械学習開発者の間のギャップを埋めるのに役立ちます。これにより、プロジェクトに ML を組み込みたいと考えている人にとって、その作業が非常にスムーズになります!
以上がTensorFlow による機械学習の橋渡し: Python から JavaScript への詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。