一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

利用TensorFlow.js,D3.js 和 Web 的力量使訓(xùn)練模型的過程可視化

Tensorflowers ? 來源:未知 ? 作者:李倩 ? 2018-08-08 14:24 ? 次閱讀

在這篇文章中,我們將利用 TensorFlow.js,D3.js 和 Web 的力量使訓(xùn)練模型的過程可視化,以預(yù)測棒球數(shù)據(jù)中的壞球(藍(lán)色區(qū)域)和好球(橙色區(qū)域)。 隨著我們的進(jìn)展,我們將模型在整個訓(xùn)練過程中理解的打擊區(qū)域可視化。您可以通過訪問此 Observable 筆記本在瀏覽器中運(yùn)行此模型。

注:Observable鏈接

https://beta.observablehq.com/@nkreeger/visualizing-ml-training-using-tensorflow-js-and-baseball-d

如果你不熟悉棒球的擊球區(qū),這里有一篇詳細(xì)的文章。

上面的 GIF 可視化神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)調(diào)用壞球(藍(lán)色區(qū)域)和好球(橙色區(qū)域)在每個訓(xùn)練步驟之后,熱圖會根據(jù)模型的預(yù)測進(jìn)行更新

使用 Observable 直接在瀏覽器中運(yùn)行此模型。

注:文章鏈接

https://beta.observablehq.com/@nkreeger/visualizing-ml-training-using-tensorflow-js-and-baseball-d

體育運(yùn)動中的高級指標(biāo)

當(dāng)今的職業(yè)體育環(huán)境中充斥著大量的數(shù)據(jù)。這些數(shù)據(jù)被團(tuán)隊(duì),業(yè)余愛好者和粉絲應(yīng)用于各種用例中。感謝像 TensorFlow 這樣的框架 - 這些數(shù)據(jù)集已準(zhǔn)備好應(yīng)用于機(jī)器學(xué)習(xí)。

美國職業(yè)棒球大聯(lián)盟先進(jìn)媒體(MLBAM)的 PITCHf/x

美國職業(yè)棒球大聯(lián)盟先進(jìn)媒體(MLBAM)發(fā)布了一個可供公眾研究的大型數(shù)據(jù)集。該數(shù)據(jù)集包含有關(guān)過去幾年在美國職業(yè)棒球大聯(lián)盟比賽中投擲的投球的傳感器信息。 利用這個數(shù)據(jù)集,我們已編寫了一個包含 5,000 個樣本的訓(xùn)練集(2,500 個壞球和 2,500 個好球)。

以下是訓(xùn)練數(shù)據(jù)中前幾個字段的示例:

注:示例鏈接

https://gist.github.com/nkreeger/01b5386b522b0cd1f22bc864320f3084#file-baseball-training-data-sample-csv

以下是針對打擊區(qū)域繪制的訓(xùn)練數(shù)據(jù)的樣子。藍(lán)點(diǎn)標(biāo)記為壞球,橙點(diǎn)標(biāo)記為好球(此為大聯(lián)盟裁判員稱謂):

利用 TensorFlow.js 構(gòu)建模型

TensorFlow.js 將機(jī)器學(xué)習(xí)引入 JavaScript 和 Web。 我們將利用這個很棒的框架來構(gòu)建一個深度神經(jīng)網(wǎng)絡(luò)模型。這個模型將能夠按大聯(lián)盟裁判的精準(zhǔn)度來稱呼好球和壞球。

輸入 Input

該模型在 PITCHf / x 的以下字段中進(jìn)行了訓(xùn)練:

協(xié)調(diào)球越過本壘的位置('px'和'pz')。

擊球手站在壘的哪一側(cè)。

擊球區(qū)(擊球手的軀干)的高度,以英尺為單位。

擊球區(qū)底部的高度(擊球手的膝蓋)以英尺為單位。

裁判所稱的投球(好球或壞球)的實(shí)際標(biāo)簽

結(jié)構(gòu) Architecture

該模型將通過使用 TensorFlow.js 圖層 API 定義。Layers API 基于 Keras,對以前使用過該框架的人來說應(yīng)該很熟悉:

1const model = tf.sequential();

2

3// Two fully connected layers with dropout between each:

4model.add(tf.layers.dense({units: 24, activation: 'relu', inputShape: [5]}));

5model.add(tf.layers.dropout({rate: 0.01}));

6model.add(tf.layers.dense({units: 16, activation: 'relu'}));

7model.add(tf.layers.dropout({rate: 0.01}));

8

9// Only two classes: "strike" and "ball":

10model.add(tf.layers.dense({units: 2, activation: 'softmax'}));

11

12model.compile({

13optimizer: tf.train.adam(0.01),

14loss: 'categoricalCrossentropy',

15metrics: ['accuracy']

16});

加載和準(zhǔn)備數(shù)據(jù)

精選的訓(xùn)練集可通過GitHub gist 獲得。需要下載此數(shù)據(jù)集才能開始將 CSV 數(shù)據(jù)轉(zhuǎn)換為 TensorFlow.js 用于訓(xùn)練的格式。

注:GitHub gist 鏈接

https://gist.github.com/nkreeger/43edc6e6daecc2cb02a2dd3293a08f29

1const data = [];

2csvData.forEach((values) => {

3// 'logit' data uses the 5 fields:

4const x = [];

5x.push(parseFloat(values.px));

6x.push(parseFloat(values.pz));

7x.push(parseFloat(values.sz_top));

8x.push(parseFloat(values.sz_bot));

9x.push(parseFloat(values.left_handed_batter));

10// The label is simply 'is strike' or 'is ball':

11const y = parseInt(values.is_strike, 10);

12data.push({x: x, y: y});

13});

14// Shuffle the contents to ensure the model does not always train on the same

15// sequence of pitch data:

16tf.util.shuffle(data);

解析 CSV 數(shù)據(jù)后,需要將 JS 類型轉(zhuǎn)換為 Tensor 批次進(jìn)行培訓(xùn)和評估。有關(guān)此過程的詳細(xì)信息,請參閱代碼實(shí)驗(yàn)室。TensorFlow.js 團(tuán)隊(duì)正在開發(fā)一種新的 Data API,以便將來更容易獲取。

注:代碼實(shí)驗(yàn)室

https://beta.observablehq.com/@nkreeger/visualizing-ml-training-using-tensorflow-js-and-baseball-d#batches

訓(xùn)練模型

讓我們把這一切都整合在一起吧。定義了模型,準(zhǔn)備好了訓(xùn)練數(shù)據(jù),現(xiàn)在我們已經(jīng)準(zhǔn)備好開始訓(xùn)練了。以下異步方法訓(xùn)練一批訓(xùn)練樣本并更新熱圖:

1// Trains and reports loss+accuracy for one batch of training data:

2async function trainBatch(index) {

3const history = await model.fit(batches[index].x, batches[index].y, {

4epochs: 1,

5shuffle: false,

6validationData: [batches[index].x, batches[index].y],

7batchSize: CONSTANTS.BATCH_SIZE

8});

9

10// Don't block the UI frame by using tf.nextFrame()

11await tf.nextFrame();

12updateHeatmap();

13await tf.nextFrame();

14}

可視化模型的準(zhǔn)確性

使用來自均勻放置在本壘板上方的 4 x 4 英尺柵格的預(yù)測矩陣來構(gòu)建熱圖。在每個訓(xùn)練步驟之后將該矩陣傳遞到模型中以檢查模型的準(zhǔn)確度。使用 D3 庫將該預(yù)測的結(jié)果呈現(xiàn)為熱圖。

構(gòu)建預(yù)測矩陣

熱圖中使用的預(yù)測矩陣從本壘板的中間開始,向左和向右各延伸 2 英尺。它的范圍也從本壘板的底部到 4 英尺高。擊打區(qū)樣本位于本壘板上方 1.5 至 3.5 英尺之間。下圖有助于讓這些 2d 窗格可視化:

該視覺顯示了打擊區(qū)域和預(yù)測矩陣與本壘板和游戲區(qū)域相關(guān)的位置

將預(yù)測矩陣與模型一起使用

每個批次在模型中訓(xùn)練之后,預(yù)測矩陣被傳遞到模型中用以請求矩陣中的好球或壞球預(yù)測:

1function predictZone() {

2const predictions = model.predictOnBatch(predictionMatrix.data);

3const values = predictions.dataSync();

4

5// Sort each value so the higher prediction is the first element in the array:

6const results = [];

7let index = 0;

8for (let i = 0; i < values.length; i++) { ? ?

9let list = [];

10list.push({value: values[index++], strike: 0});

11list.push({value: values[index++], strike: 1});

12list = list.sort((a, b) => b.value - a.value);

13results.push(list);

14}

15return results;

16}

熱圖與 D3

現(xiàn)在可以使用 D3 顯示預(yù)測結(jié)果。 來自 50x50 網(wǎng)格中的每一個元素將在 SVG 中呈現(xiàn)為 10px x 10px 的矩形。每個矩形的顏色取決于預(yù)測結(jié)果(好球或者壞球)以及模型對該結(jié)果的確定程度(范圍從 50%-100%)。 以下代碼段顯示了如何從 D3 svg 矩形分組更新數(shù)據(jù):

1function updateHeatmap() {

2rects.data(generateHeatmapData());

3rects

4.attr('x', (coord) => { return scaleX(coord.x) * CONSTANTS.HEATMAP_SIZE; })

5.attr('y', (coord) => { return scaleY(coord.y) * CONSTANTS.HEATMAP_SIZE; })

6.attr('width', CONSTANTS.HEATMAP_SIZE)

7.attr('height', CONSTANTS.HEATMAP_SIZE)

8.style('fill', (coord) => {

9if (coord.strike) {

10return strikeColorScale(coord.value);

11} else {

12return ballColorScale(coord.value);

13}

14});

15}

有關(guān)使用 D3 繪制熱圖的完整詳細(xì)信息,請參閱此部分。

注:此部分鏈接

https://beta.observablehq.com/@nkreeger/visualizing-ml-training-using-tensorflow-js-and-baseball-d#colorDomain

總結(jié)

網(wǎng)絡(luò)上有許多令人驚嘆的第三方庫和工具,可用于創(chuàng)建視覺效果。將這些與機(jī)器學(xué)習(xí)的強(qiáng)大功能與 TensorFlow.js 相結(jié)合,開發(fā)人員能夠創(chuàng)建一些非常新奇有趣的演示。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴

原文標(biāo)題:棒球比賽中是好球還是壞球?TensorFlow.js 已經(jīng)知道

文章出處:【微信號:tensorflowers,微信公眾號:Tensorflowers】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    七款經(jīng)久不衰的數(shù)據(jù)可視化工具!

    工具 · D3.jsD3.js 是一個基于 JavaScript 的數(shù)據(jù)可視化庫,允許開發(fā)者創(chuàng)建豐富的交互式圖表。它具有極大的靈活性,但需要編程知識,因此適合開發(fā)者或具有技術(shù)背景的用戶
    發(fā)表于 01-19 15:24

    Tensorflow之Tensorboard的可視化使用

    TF之Tensorboard:Tensorflow之Tensorboard可視化使用之詳細(xì)攻略
    發(fā)表于 12-27 10:05

    keras可視化介紹

    keras可視化可以幫助我們直觀的查看所搭建的模型拓?fù)浣Y(jié)構(gòu),以及模型訓(xùn)練過程,方便我們優(yōu)化模型
    發(fā)表于 08-18 07:53

    利用PADS實(shí)現(xiàn)3D可視化

    本文給出了利用PADS實(shí)現(xiàn)3D可視化的 具體過程,并對PADS和3D技術(shù)進(jìn)行了必要的說明。
    發(fā)表于 10-10 16:03 ?477次下載
    <b class='flag-5'>利用</b>PADS實(shí)現(xiàn)<b class='flag-5'>3D</b><b class='flag-5'>可視化</b>

    TensorFlow發(fā)表推文正式發(fā)布TensorFlow v1.9

    其中有兩個案例受到了大家的廣泛關(guān)注,這個項(xiàng)目是通過 Colab 在 tf.keras 中訓(xùn)練模型,并通過TensorFlow.js 在瀏覽器中運(yùn)行;最近在 JS 社區(qū)中,對這些相關(guān)項(xiàng)目
    的頭像 發(fā)表于 07-16 10:23 ?3272次閱讀

    如何使用TensorFlow.js構(gòu)建這一系統(tǒng)

    TensorFlow.js團(tuán)隊(duì)一直在進(jìn)行有趣的基于瀏覽器的實(shí)驗(yàn),以使人們熟悉機(jī)器學(xué)習(xí)的概念,并鼓勵他們將其用作您自己項(xiàng)目的構(gòu)建塊。對于那些不熟悉的人來說,TensorFlow.js是一個開源庫,允許
    的頭像 發(fā)表于 08-19 08:55 ?3686次閱讀

    基于tensorflow.js設(shè)計、訓(xùn)練面向web的神經(jīng)網(wǎng)絡(luò)模型的經(jīng)驗(yàn)

    NVIDIA顯卡。tensorflow.js在底層使用了WebGL加速,所以在瀏覽器中訓(xùn)練模型的一個好處是可以利用AMD顯卡。另外,在瀏覽器中訓(xùn)練
    的頭像 發(fā)表于 10-18 09:43 ?4302次閱讀

    指引入門d3.js的門徑,如何基于基本原則創(chuàng)建可視化?

    圖表不過是內(nèi)有形狀的矩形。d3提供了方法,通過操作圖形記號或創(chuàng)建自己的形狀來定義你自己的可視化表示。d3使加入視覺交互和聲明可視化行為變得容
    的頭像 發(fā)表于 11-08 09:03 ?3202次閱讀

    TensorFlow.js制作了一個僅用 200 余行代碼的項(xiàng)目

    我們先來看一下運(yùn)行的效果。下圖中,上半部分是原始視頻,下半部分是使用 TensorFlow.js 對人像進(jìn)行消除后的視頻??梢钥吹?,除了偶爾會在邊緣處留有殘影之外,整體效果還是很不錯的。
    的頭像 發(fā)表于 05-11 18:08 ?5701次閱讀

    Danfo.js提供高性能、直觀易用的數(shù)據(jù)結(jié)構(gòu),支持結(jié)構(gòu)數(shù)據(jù)的操作和處理

    我們的愿景一致,本質(zhì)上也符合 TensorFlow.js 團(tuán)隊(duì)向 Web 引入 ML 的目標(biāo)。Numpy 和 Pandas 等開源庫全面革新了 Python 中數(shù)據(jù)操作的便利性。因此很多工具都圍繞它們構(gòu)
    的頭像 發(fā)表于 09-23 18:21 ?5493次閱讀

    如何基于 ES6 的 JavaScript 進(jìn)行 TensorFlow.js 的開發(fā)

    從頭開發(fā)、訓(xùn)練和部署模型,也可以用來運(yùn)行已有的 Python 版 TensorFlow 模型,或者基于現(xiàn)有的模型進(jìn)行繼續(xù)
    的頭像 發(fā)表于 10-31 11:16 ?3331次閱讀

    關(guān)于Web3D線上數(shù)字可視化技術(shù)的應(yīng)用

    Web3D拆裝交互爆炸演示三維數(shù)字可視化時代融入于我們生活當(dāng)中。在虛擬現(xiàn)實(shí)行業(yè)的熱門中,Web3D線上數(shù)字可視化技術(shù)也在是跟隨者行業(yè)升級和實(shí)現(xiàn)科技和信息
    發(fā)表于 01-16 10:46 ?1267次閱讀
    關(guān)于<b class='flag-5'>Web3D</b>線上數(shù)字<b class='flag-5'>可視化</b>技術(shù)的應(yīng)用

    淺談工業(yè)3D可視化建模的特點(diǎn)

    智能3D設(shè)備是在工業(yè)搭建的3D建模和三維可視化基礎(chǔ)上之上構(gòu)建的一個機(jī)遇Web3D的虛擬工業(yè),其運(yùn)用物理網(wǎng)、云計算等現(xiàn)代信息技術(shù),商迪3D運(yùn)用
    發(fā)表于 04-09 10:23 ?2154次閱讀

    工廠3D可視化模型檢測技術(shù)管理助力工業(yè)綠色發(fā)展

    對于工業(yè)綠色發(fā)展而言,3D可視化模型技術(shù)在工廠領(lǐng)域中檢測管理發(fā)揮著重要的作用。 商迪3D結(jié)合3D可視化
    的頭像 發(fā)表于 04-26 17:19 ?1924次閱讀

    FUXA基于Web過程可視化軟件案例

    FUXA——基于Web過程可視化軟件
    發(fā)表于 04-24 18:32 ?7次下載