在瀏覽器中使用TensorFlow.js和Python構建機器學習模型(附代碼)

2021-02-08 大數據文摘

大數據文摘授權轉載自數據派THU

作者:MOHD SANAD ZAKI RIZVI


本文主要介紹了:

TensorFlow.js (deeplearn.js)使我們能夠在瀏覽器中構建機器學習和深度學習模型,而無需任何複雜的安裝步驟。

TensorFlow.js的兩個組件——Core API和Layer API。

了解如何構建一個很棒的使用Tensorflow.js對網絡攝像頭中的圖像進行分類的模型。



你最喜歡用什麼工具來編寫機器學習模型?數據科學家們對這個永恆的問題會給出各種不同的答案。一些人喜歡RStudio,另一些人更喜歡Jupyter Notebooks。我絕對屬於後者。


所以,當我第一次遇到TensorFlow.js(以前是deeplearn.js)時,我的心都要炸開了。在瀏覽器中構建機器學習模型?使用JavaScript?聽起來好得令人難以置信!


超過43億人使用網絡瀏覽器——約佔世界人口的55%。——維基百科(2019年3月)


谷歌的TensorFlow.js不僅將機器學習引入瀏覽器中,使機器學習大眾化,而且對於經常使用JavaScript的開發人員來說,它也是一個完美的機器學習門戶。


我們的網絡瀏覽器是最容易訪問的平臺之一。這就是為什麼構建不僅能夠訓練機器學習模型而且能夠在瀏覽器本身中「學習」或「遷移學習」的應用程式是有意義的。


在本文中,我們將首先了解使用TensorFlow.js的重要性及其它的不同組件。然後,我們將深入討論使用TensorFlow.js在瀏覽器中構建我們自己的機器學習模型。然後我們將構建一個應用程式,來使用計算機的網絡攝像頭檢測你的身體姿勢!


如果你是TensorFlow的新手,你可以在下面文章中了解更多:



一、為什麼你應該使用TensorFlow.js?

    1.1 使用網絡攝像頭在瀏覽器中進行圖像分類

    1.2 TensorFlow.js的特徵

二、了解瀏覽器中的機器學習

    2.1 Core API:使用Tensors工作

    2.2 Layer API:像Keras一樣構建模型

三、利用谷歌的預訓練模型:PoseNet



我將用一種獨特的方法來回答這個問題。我不會深入研究TensorFlow.js的理論方面,也不會列出它為什麼是一個如此不可思議的工具。


相反,我將簡單地向你展示如果不使用TensorFlow.js將會錯過什麼。那麼,讓我們在5分鐘內構建一個應用程式,來使用你的網絡攝像頭對圖像進行分類。沒錯——我們將直接進入代碼部分!


這是最好的部分——你不需要安裝任何東西來做這個!只要一個文本編輯器和一個網絡瀏覽器即可。下面的動圖展示了我們將要構建的應用程式:



這多酷啊!我在瀏覽器裡幾分鐘就完成了。那麼,讓我們看一下步驟和代碼,以幫助你在Web瀏覽器中構建自己的圖像分類模型。



打開你選擇的文本編輯器並創建一個文件index.html。將以下代碼保存於此文件內:


<!DOCTYPE html>  <html>  <head>      <meta charset="UTF-8">      <meta http-equiv="X-UA-Compatible" content="IE=edge">      <meta name="viewport" content="width=device-width, initial-scale=1">            <title>image_classification</title>            <script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.8.0/p5.min.js"></script>      <script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.8.0/addons/p5.dom.min.js"></script>            <script src="https://unpkg.com/ml5@0.1.1/dist/ml5.min.js"></script>            <script src="index.js"></script>  </head>  <body>            <video id="video"></video>  </body>  </html>


接下來,創建另一個文件index.js並在其中編寫以下代碼:


let mobilenet;    let video;    let label = '';        // when model is ready make predictions    function modelReady() {        console.log('Model is ready!!!');        mobilenet.predict(gotResults);    }    function gotResults(error, results) {      if (error) {          console.error(error);      } else {          label = results[0].className;          // loop the inference by calling itself          mobilenet.predict(gotResults);      }  }    // setup function  function setup() {      createCanvas(640, 550);      // ml5 to create video capture      video = createCapture(VIDEO);      video.hide();      background(0);      // load the MobileNet and apply it on video feed      mobilenet = ml5.imageClassifier('MobileNet', video, modelReady);  }    function draw() {      background(0);      // show video       image(video, 0, 0);      fill(255);      textSize(32);      // show prediction label       text(label, 10, height - 20);  }


保存這兩個文件,然後在谷歌Chrome或Mozilla Firefox等瀏覽器中打開index.html文件。就是這樣!你現在已經創建了一個可以使用你的網絡攝像頭在瀏覽器本身實時分類圖像的應用程式!下面是它在我的計算機上的樣子:


視頻連接:

https://s3-ap-south-1.amazonaws.com/av-blog-media/wp-content/uploads/2019/05/mobilenet_demo.mp4?_=1


在這個例子中需要注意的要點:

在上面的例子中,我們使用了一個預先訓練的圖像分類模型MobileNet(https://ai.googleblog.com/2017/06/mobilenets-open-source-models-for.html)

我們使用ml5.js(https://ml5js.org/)一個構建在TensorFlow之上的庫。它將MobileNet模型加載到瀏覽器中,並對視頻提要執行推理。

我們還利用P5.js(https://p5js.org/)庫來處理視頻輸入並在視頻本身上顯示標籤。


我不需要在電腦上安裝任何東西。這個例子應該適用於任何現代系統,不管它是Linux、Windows還是MacOS——這就是使用JavaScript在web上構建模型的強大功能。


現在,讓我們看看TensorFlow.js提供的強大功能,以及如何利用它們在瀏覽器中部署機器學習模型。

 


TensorFlow.js是一個庫,用於JavaScript開發和訓練ML模型,並在瀏覽器或Node.js上部署。


TensorFlow.js提供了許多的功能來供我們使用。


它是TensorFlow在JavaScript中的擴展,JavaScript是我們在網際網路上使用的幾乎所有網站、瀏覽器或應用程式邏輯背後的程式語言。JavaScript和Python一樣用途廣泛,所以使用它來開發機器學習模型給我們帶來了很多好處:


如果ML模型是用web語言編寫的,則更容易部署。

由於所有主流瀏覽器都支持JavaScript,所以你可以無處不在地使用它,而不必擔心平臺類型或其他兼容性問題。對於你的用戶也是如此。

TensorFlow.js是一個客戶端庫,這意味著它可以在用戶的瀏覽器中訓練或運行ML模型。這減輕了與數據隱私有關的任何擔憂。

在你的客戶端上運行實時推斷可使你的應用程式更具交互性,因為它們可以立即響應用戶輸入(例如我們前面構建的webcam應用程式)。



TensorFlow.js以其當前的形式提供了以下主要功能:


瀏覽器中的機器學習:你可以使用TensorFlow.js在瀏覽器中創建和訓練ML模型。

谷歌的預訓練模型:TensorFlow.js配備了一套由谷歌預訓練的模型,用於對象檢測、圖像分割、語音識別、文本毒性分類等任務。

遷移學習:你可以通過對已經訓練過的模型的部分進行再訓練來執行轉移學習,比如TensorFlow.js中的MobileNet。

部署python模型:使用Keras或TensorFlow訓練的模型可以很容易地導入瀏覽器/使用TensorFlow.js的部署。


在本文中,我們將關注前兩個功能。在本系列的第二部分(即將推出!)中,我們將討論如何在Python中轉移學習和部署我們的模型。



TensorFlow.js提供了兩種方法來訓練模型(非常類似於TensorFlow):



讓我們通過幾個例子來理解這兩種方法。畢竟,學習一個概念最好的方法就是把它付諸實踐!


首先,設置你的HTML文件:


在你的電腦上建立一個新的index.html文件,並在其中編寫以下代碼:


<html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <!-- load Tensorflow.js --> <script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@1.0.0/dist/tf.min.js"></script></head><body> <h1>Tensorflow.js Core API</h1> <!-- <script src="index.js"></script> --> <script type="text/javascript"></script></body></html>


我們創建了一個基本的HTML頁面,並從雲URL中加載了Tensorflow.js(第7行)。


關於安裝TensorFlow.js(deeplearn.js)的說明:


由於TensorFlow.js是為瀏覽器而設計的,所以安裝和使用TensorFlow.js最簡單的方法就是根本不安裝它。你可以簡單地從HTML中的URL加載它即可。


如果你想在本地工作怎麼辦呢?實際上,你可以在Jupyter Notebook中使用TensorFlow.js,就像你在Python或R中通常做的那樣。這是一個適合每個人的解決方案!


這種本地方法稍微長一些,並且需要一些時間,所以本文不會使用它。如果你確實想學習如何操作,可以從為Jupyter安裝ijavascript內核開始。下面是我的Jupyter Notebook的截圖:



現在,使用TensorFlow.js的推薦方法是使用庫的官方URL直接加載它。你只需將以下行添加到HTML文件中:


<scriptsrc="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@1.0.0/dist/tf.min.js"></script>


完成了!這真的很簡單。



Core API與TensorFlowCore非常相似,我們可以使用低級張量運算和線性代數定義模型。


如果我們想要構建自定義模型或想要從頭開始構建神經網絡,這非常有用。讓我們舉一個在瀏覽器中使用張量的例子。


首先在index.html文件中的<script> </ script>標記之間添加以下代碼:



const a = tf.tensor([1, 2, 3, 4]);const b = tf.tensor([10, 20, 30, 40]);const y = a.add(b); // equivalent to tf.add(a, b)const z = a.mul(b);y.print();z.print();


<script>標籤基本上表示JavaScript。我們在這些標籤之間寫的任何內容都將作為JavaScript代碼執行。以下是index.html現在的樣子:


<html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <!-- load Tensorflow.js --> <script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@1.0.0/dist/tf.min.js"></script></head><body> <h1>Tensorflow.js Core API</h1> <!-- <script src="index.js"></script> --> <script type="text/javascript"> const a = tf.tensor([1, 2, 3, 4]); const b = tf.tensor([10, 20, 30, 40]); const y = a.add(b); // equivalent to tf.add(a, b) const z = a.mul(b); // equivalent to tf.mul(a, b) y.print(); z.print();</script></body></html>


在上面的代碼中,我們在兩個張量a和b上執行基本的加法和乘法運算,並將結果列印在瀏覽器中。現在,轉到終端,打開項目文件夾,然後使用以下命令啟動Python伺服器:



然後在你的瀏覽器打開以下地址:

http://localhost:8000/


當你看到一個頁面顯示「Tensorflow.js Core API」時,使用Ctrl+Shift+I鍵打開控制臺(console)。這應該在Chrome和Firefox都適用。我們在控制臺得到上述操作的輸出:



如果你想深入閱讀有關Core API的更多信息,那麼我建議你閱讀CoreAPI官方文檔。


CoreAPI文檔:

https://www.tensorflow.org/js/guide/tensors_operations



Layers API與Python中的Keras非常相似。就像Keras一樣,你可以使用序列的和函數的方法創建模型。


讓我們通過一個例子仔細研究序列方法。我們將在這些數據點上訓練回歸模型:



這裡,X和Y有一個線性關係——每個Y對應於X + i(其中i是0、1、2、3……n+1)。讓我們在這個數據集上訓練一個基本的回歸模型。你可以在index.html文件中的<script></script>標記之間編寫以下代碼:



const callbacks = { onEpochEnd: async (epoch, logs) => { console.log("epoch: " + epoch + JSON.stringify(logs)) } };// Generate some synthetic data for training. const xs = tf.tensor2d([[1], [2], [3], [4]], [4, 1]); const ys = tf.tensor2d([[1], [3], [5], [7]], [4, 1]);// Build and compile model. async function basicRegression(){// Build a sequential model const model = tf.sequential(); model.add(tf.layers.dense({units: 1, inputShape: [1]})); model.add(tf.layers.dense({units: 1, inputShape: [1]})); model.compile({optimizer: 'sgd', loss: 'meanSquaredError'});// Train model with fit(). await model.fit(xs, ys, {epochs: 100, validationSplit: 0.1, callbacks: callbacks});// Run inference with predict(). model.predict(tf.tensor2d([[5]], [1, 1])).print(); }// Create a basic regression model basicRegression();


敏銳的讀者一定注意到,上面的語法與用Python構建順序模型的Keras語法非常相似。我們回到瀏覽器控制臺(console)時會得到預測。



我們的簡單回歸模型預測7.556,非常接近8的期望值。這是一個基本的例子,但我們可以清楚地看到,在瀏覽器中直接構建機器學習模型是多麼容易和有用。


TensorFlow.js能夠在瀏覽器中構建機器學習和深度學習模型。它還自動利用GPU(s)的強大功能,如果在你的系統模型訓練期間可用。


下面是一些使用TensorFlow.js在一些標準數據集上訓練的深度學習模型的例子:



你可以在tfjs-examples repository中瀏覽這些示例。


tfjs-examples repository

https://github.com/tensorflow/tfjs-examples



TensorFlow.js提供了大量來自谷歌的預訓練模型,用於許多有用的任務,如目標檢測、語音識別、圖像分割等。預先訓練的模型的優點是,我們可以使用它們而不需要任何重大的依賴關係或安裝,並且可以開箱即用。


人們普遍預計谷歌將在未來幾個月推出更多模型。你可以在下面連結查看可用的預訓練模型:


相關連結:

https://www.tensorflow.org/js/models



我們將在本文中使用PoseNet。PoseNet是一種視覺模型,可以通過估計人體關鍵關節的位置來估計一個人在圖像或視頻中的姿勢。



這是一個迷人的概念。姿勢估計是一種計算機視覺技術,用於檢測圖像和視頻中的人物。例如,這可以幫助我們確定某人的肘部在圖像中出現的位置。


只是要清楚-姿勢估計不是關於識別誰在一個圖像中。該算法只是簡單地估計關鍵身體關節的位置。


檢測到的關鍵點設置為「Part」和「ID」索引,置信度得分在0.0和1.0之間(1.0是最高的)。



以下是PoseNet給出的輸出類型的示例:



難以置信,對吧?!我們將使用ml5.js庫來使用PoseNet。ml5.js是一個基於TensorFlow.js和p5.js的庫。p5.js是另一個庫可以使你更容易在瀏覽器中訪問網絡攝像頭。


ml5.js旨在使機器學習對廣大的藝術家,創意編碼員和學生來說變得平易近人。該庫以TensorFlow.js為基礎,通過簡單的語法在瀏覽器中提供對機器學習算法和模型的訪問。


例如,你可以使用ml5.js在5行代碼中使用MobileNet創建圖像分類模型,如下所示:



正是由於Ml5.js的簡單性,使得它非常適合在瀏覽器中快速構建原型,這也是我們在項目中使用它的原因。


讓我們回到PoseNet。創建一個新文件index.html並添加以下代碼:



<html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <!-- load p5.js --> <script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.7.3/p5.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.7.3/addons/p5.dom.min.js"></script> <!-- load ml5.js --> <script src="https://unpkg.com/ml5@0.2.3/dist/ml5.min.js" type="text/javascript"></script> <!-- keep the video in center of browser --> <style type="text/css"> body{ text-align: center; }</style></head><body> <h1>PoseNet demo with Ml5.js</h1> <p id="status">Loading Model...</p> <div id="videoContainer"></div> <!-- load the posenet.js file --> <script src="posenet.js"></script></body></html>


這將創建一個基本的HTML網頁並加載必要的文件:



現在,我們將編寫用於使用PoseNet的JavaScript代碼。在與index.html相同的文件夾中創建一個新文件posenet.js。以下是完成此項工作所需的步驟:

加載PoseNet模型並從網絡攝像頭捕獲視頻

檢測身體關節的關鍵點

顯示檢測到的身體關節

繪製估計的身體骨骼


讓我們從第一步開始。


步驟1:加載PoseNet模型並從網絡攝像頭捕獲視頻


我們將使用ml5.js加載PoseNet。與此同時,p5.js使我們可以用幾行代碼從網絡攝像頭捕獲視頻:


let video;let poseNet;let poses = [];function setup() { const canvas = createCanvas(640, 480); canvas.parent('videoContainer');// Video capture video = createCapture(VIDEO); video.size(width, height);// Create a new poseNet method with a single detection poseNet = ml5.poseNet(video, modelReady); // This sets up an event that fills the global variable "poses" // with an array every time new poses are detected poseNet.on('pose', function(results) { poses = results; }); function modelReady(){ select('#status').html('model Loaded')}


以上代碼塊中最重要的是:


createCapture(VIDEO):它是一個p5.js函數,用於通過攝像頭捕獲視頻來創建視頻元素。

ml5.poseNet(video,modelRead):我們使用ml5.js加載poseNet模式。通過傳入視頻,我們告訴模型處理視頻輸入。

PoseNet.on():每當檢測到一個新的姿勢時,就執行這個函數。

modelReady():當PoseNet完成加載時,我們調用這個函數來顯示模型的狀態。



下一步是檢測姿勢。你可能已經注意到,在前面的步驟中,我們通過調用poseNet.on()將每個檢測到的位姿保存到pose變量中。這個函數在後臺連續運行。無論何時找到一個新的姿勢,它都會以以下格式給出身體關節的位置:



'score'是指模型的置信度

'part'表示檢測到的身體關節/關鍵點

'position'包含檢測到的部分的x和y位置


我們不必為此部分編寫代碼,因為它是自動生成的。



我們知道被檢測到的人體關節及其x和y位置。現在,我們只需要在視頻上畫出它們來顯示檢測到的人體關節。我們已經看到,PoseNet給出了一個檢測到的人體關節列表,每個關節及其x和y位置的置信度評分。


我們將使用20%的閾值(keypoint.score > 0.2)置信度得分,以便繪製一個關鍵點。下面是實現這一操作的代碼:



// A function to draw ellipses over the detected keypointsfunction drawKeypoints() { // Loop through all the poses detected for (let i = 0; i < poses.length; i++) { // For each pose detected, loop through all the keypoints let pose = poses[i].pose; for (let j = 0; j < pose.keypoints.length; j++) { // A keypoint is an object describing a body part (like rightArm or leftShoulder) let keypoint = pose.keypoints[j]; // Only draw an ellipse is the pose probability is bigger than 0.2 if (keypoint.score > 0.2) { fill(255, 0, 0); noStroke(); ellipse(keypoint.position.x, keypoint.position.y, 10, 10); } } }}



除了關鍵點或身體關節,PoseNet還可以檢測估計的身體骨架。我們可以使用pose變量來繪製骨架:


// A function to draw the skeletonsfunction drawSkeleton() { // Loop through all the skeletons detected for (let i = 0; i < poses.length; i++) { let skeleton = poses[i].skeleton; // For every skeleton, loop through all body connections for (let j = 0; j < skeleton.length; j++) { let partA = skeleton[j][0]; let partB = skeleton[j][1]; stroke(255, 0, 0); line(partA.position.x, partA.position.y, partB.position.x, partB.position.y); } }}


在這裡,我們遍歷檢測到的骨架並創建連接關鍵點的線。代碼還是相當簡單。


現在,最後一步是重複調用drawSkeleton()和drawKeypoints()函數,以及我們從網絡攝像頭捕獲的視頻源。我們可以使用p5.js的draw()函數來實現,該函數在setup()之後直接調用,並重複執行:


function draw() { image(video, 0, 0, width, height);// We can call both functions to draw all keypoints and the skeletons drawKeypoints(); drawSkeleton();}


接下來,轉到終端窗口,進入項目文件夾,然後啟動Python伺服器:



然後轉到你的瀏覽器並打開以下地址:

http://localhost:8000/



瞧!你的PoseNet應該很好地檢測到了你的身體姿勢(如果你已經正確地遵循了所有步驟)。以下是我的模型的情況:




你可以看到我為什麼喜歡TensorFlow.js。它非常有效率,甚至不需要你在構建模型時擔心複雜的安裝步驟。


TensorFlow.js展示了通過將機器學習帶到瀏覽器中使機器學習更容易訪問的許多前景。同時,它還具有數據隱私、交互性等優點。這種組合使得它成為數據科學家工具箱中的一個非常強大的工具,特別是如果你想部署你的機器學習應用程式的話。


在下一篇文章中,我們將探討如何在瀏覽器中應用遷移學習,並使用TensorFlow.js部署機器學習或深度學習模型。


我們用PoseNet做的項目可以更進一步,通過訓練另一個分類器來構建一個姿態識別應用程式。我鼓勵你去嘗試一下!


原文連結:

https://www.analyticsvidhya.com/blog/2019/06/build-machine-learning-model-in-your-browser-tensorflow-js-deeplearn-js/


實習/全職編輯記者招聘ing

加入我們,親身體驗一家專業科技媒體採寫的每個細節,在最有前景的行業,和一群遍布全球最優秀的人一起成長。坐標北京·清華東門,在大數據文摘主頁對話頁回復「招聘」了解詳情。簡歷請直接發送至zz@bigdatadigest.cn

相關焦點

  • 獨家 | 在瀏覽器中使用TensorFlow.js和Python構建機器學習模型(附代碼)
    本文首先介紹了TensorFlow.js的重要性及其組件,並介紹使用其在瀏覽器中構建機器學習模型的方法。然後,構建使用計算機的網絡攝像頭檢測身體姿勢的應用程式。這就是為什麼構建不僅能夠訓練機器學習模型而且能夠在瀏覽器本身中「學習」或「遷移學習」的應用程式是有意義的。 在本文中,我們將首先了解使用TensorFlow.js的重要性及其它的不同組件。然後,我們將深入討論使用TensorFlow.js在瀏覽器中構建我們自己的機器學習模型。然後我們將構建一個應用程式,來使用計算機的網絡攝像頭檢測你的身體姿勢!
  • TensorFlow.js:讓你在瀏覽器中玩轉機器學習
    當談及機器學習和谷歌的TensorFlow時候,相比於JavaScript和其他瀏覽器,大多數人會想到Python和專用硬體。本文解釋了TensorFlow.js的用途,以及機器學習在瀏覽器中運行的意義。
  • 在瀏覽器中使用Keras MobileNet模型以及Tensorflow.js進行圖片分類
    Chrome在這篇文章中,我們將了解如何使用Keras的MobileNet模型進行圖像分類,使用TensorFlow.js在Google Chrome瀏覽器中部署,並使用該模型在瀏覽器中進行實時的預測。
  • 前端入門機器學習 Tensorflow.js 簡明教程
    瀏覽器環境在構建交互型應用方面有著天然優勢,而端側機器學習不僅可以分擔部分雲端的計算壓力,也具有更好的隱私性,同時還可以藉助Node.js在服務端繼續使用JavaScript進行開發,這對於前端開發者而言非常友好。
  • 從TensorFlow.js入手了解機器學習
    不過,在使用已有的 AI 模型的時候我們並不需要很深的機器學習知識。我們可以使用現有的一些工具比如 Keras、TensorFlow 或 TensorFlow.js。這裡我們將看看如何創建 AI 模型並且使用 TensorFlow.js 中的一些複雜的模型。雖說不需要很深的知識,不過還是讓我來解釋一些基本概念。或者更好的問題是:什麼是現實?
  • 教程 | 從零開始:TensorFlow機器學習模型快速部署指南
    安裝 Bazel 和 TensorFlow 後,你需要運行以下代碼,構建大約需要 30 分鐘,訓練需要 5 分鐘:(cd "$HOME" && \curl -O http://download.tensorflow.org/example_images/flower_photos.tgz && \
  • 在Android中藉助TensorFlow使用機器學習
    這篇文章要求讀者了解機器學習的概念,並且知道如何建立機器學習的模型(在這個例子中使用了預訓練模型)。很快,我會寫一系列關於機器學習的文章,可以幫助大家構建機器學習的模型。工程中需要使用一個C++ 的編譯文件.so和一個包含調用native C++代碼的java api jar文件。這樣我們就可以在程序中方便地調TensorFlow的Api。我們需要預訓練模型和標籤文件demo中我們將要做一個圖片識別工具:2.
  • Tensorflow 2.0到底好在哪裡?
    TensorFlow.js(https://www.tensorflow.org/js)是一個用於在 JavaScript 中開發和訓練機器學習模型並在瀏覽器或 Node.js 中部署它們的庫。還有一個基於 TensorFlow.js 的高級庫 ml5.js(https://ml5js.org/),使用戶無需直接面對複雜的張量和優化器。
  • 基於tensorflow.js在瀏覽器中設計訓練神經網絡模型的18條建議
    在將現有的一些目標檢測、臉部檢測、臉部識別的模型移植到tensorflow.js後,我發現有的模型在瀏覽器中的表現沒有達到最優,而另一些模型在瀏覽器上的表現相當不錯。瀏覽器內的機器學習潛力巨大,tensorflow.js等庫給web開發者帶來了太多可能性。
  • TensorFlow 2.0 正式版現已發布
    註:Keras with TensorFlow 連結https://tensorflow.google.cn/guide/keras/overviewEager Execution 連結https://tensorflow.google.cn/guide/eager為了能夠在不同運行時環境(如雲、Web、瀏覽器、Node.js、移動端以及嵌入式系統
  • 基於char-rnn和tensorflow生成周杰倫歌詞
    公眾號: datayx本著學習tensorflow和RNN的目的,前些天發現了char-rnnhttps://github.com/karpathy/char-rnn這個有趣的項目,具體就是基於字符預測下一個字符,比日說已知hello的前四個字母hell,那我們就可以據此預測下一個字符很可能是o,因為是字符char級別的,並沒有單詞或句子層次上的特徵提取
  • 棒球比賽中是好球還是壞球?TensorFlow.js 已經知道
    ,D3.js 和 Web 的力量使訓練模型的過程可視化,以預測棒球數據中的壞球(藍色區域)和好球(橙色區域)。上面的 GIF 可視化神經網絡學習調用壞球(藍色區域)和好球(橙色區域)在每個訓練步驟之後,熱圖會根據模型的預測進行更新使用 Observable 直接在瀏覽器中運行此模型。
  • 機器學習tensorflow簡介
    神經網絡方面,對於程式設計師,開源項目是一個選擇,而開源項目中,tensorflow,是一個好的選擇。本文簡單介紹tensorflow的使用。先來看下百度百科對tensorflow的介紹:TensorFlow是谷歌基於DistBelief進行研發的第二代人工智慧學習系統,其命名來源於本身的運行原理。
  • 業界 谷歌發布tfdbg:讓TensorFlow機器學習模型調試更簡單
    昨天,谷歌宣布開源 TensorFlow Debugger,一個專用於調試TensorFlow 代碼的新工具,希望以此讓開發者們能夠更輕鬆地構建機器學習項目。今天,我們很高興發布 TensorFlow Debugger:一個讓 TensorFlow 中機器學習模型變得容易的工具。
  • 資源 | TensorFlow極簡教程:創建、保存和恢復機器學習模型
    TensorFlow 機器學習範例——Naked Tensor連結:https://github.com/jostmey/NakedTensor?bare在每個例子中,我們用一條直線擬合一些數據。使用梯度下降(gradient descent)確定最適合數據的線的斜率和 y 截距的值。
  • 基於TensorFlow、Docker和Flask部署深度學習模型
    本文翻譯自https://towardsdatascience.com/deploying-deep-learning-models-using-tensorflow-serving-with-docker-and-flask-3b9a76ffbbda通常,任何數據科學項目的生命周期都包括定義問題、收集和預處理數據、然後進行數據分析和預測建模,這其中最棘手的部分是我們模型部署給最終用戶使用
  • 在ARM盒子上使用IEF和Tensorflow運行邊緣AI
    在ARM盒子(以atlas500為例,arm64v8架構可以直接使用代碼和鏡像)上,通過網絡接入網絡攝像頭,使用tensorflow框架對圖像進行對象檢測模型推理,檢測結果通過MQTT協議推送到web頁面上進行展示。
  • 前端走進機器學習生態,在 Node.js 中使用 Python
    中使用 Python 的接口和函數。,這個我在幾年前寫了 tensorflow-nodejs 的時候,就已經這麼覺得了。Python 的類之外,還展示了我們如何使用 PyTorch 來創建一個模型,這是不是很 JavaScript 呢?
  • TensorFlow.js 的核心概念
    , 3 ],//          [10, 20, 30]]但是,為了構建低級的 Tensor(張量) ,我們建議使用以下函數來增強代碼可讀性:tf.scalar、tf.tensor1d、tf.tensor2d、tf.tensor3d 和 tf.tensor4d。
  • 有了 TensorFlow.js,瀏覽器中就能進行實時人體姿勢判斷
    編輯和插圖 / 創意技術專家 Irene Alvarado 和 Google Creative Lab 的自由平面設計師 Alexis Gallo通過與 Google 創意實驗室的合作,我很高興地宣布 TensorFlow.js 版本的 PoseNet¹,² 發布了,這是一個允許在瀏覽器中進行實時人體姿勢判斷的機器學習模型。 訪問 這裡 嘗試一下在線演示吧。