<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          JavaScript 深度學(xué)習(xí) - 2.基礎(chǔ)概念

          共 2910字,需瀏覽 6分鐘

           ·

          2020-12-31 09:28

          為了更好的閱讀體驗,歡迎語雀搜索 【JavaScript 深度學(xué)習(xí)】 關(guān)注

          NO.1

          Tensor - 張量

          從名字也可以看出,Tensor 是 TensorFlow 中最基礎(chǔ)的數(shù)據(jù)結(jié)構(gòu),Tensor 和 一維或多維數(shù)組非常相似,在 TensorFlow.js 中,我們也可以直接將數(shù)組轉(zhuǎn)換為Tensor。一個 Tensor 包含三個部分

          • values: 具體的值 數(shù)字或者數(shù)組

          • shape: 數(shù)值的維度,如果不配置,會基于 values 初始化

          • dtype: 數(shù)值的數(shù)據(jù)類型,如 'float32'|'int32'|'bool' 等類型

          Scalar - 標(biāo)量 ( 0D 張量)


          僅包含一個數(shù)字的張量叫做標(biāo)量(Scalar)

          scalar = tf.tensor(3.14);
          // scalar 推薦使用更有語義化的 tf.scalar 來定義
          tf.scalar(3.14).print() //

          Vector - 向量 ( 1D 張量)


          一維數(shù)組的數(shù)值成為向量(Vector)

          vector = tf.tensor(<a href="https://www.kaggle.com/c/titanic">1, 2, 3], [3])
          // vector 推薦使用更有語義化的 tf.tensor1d 來定義
          vector = tf.tensor1d([1, 2, 3]).print();

          Tensor 的常用操作


          類似的,TensorFlow.js 還提供了 tf.tensor2d、tf.tensor3d、tf.tensor4d、tf.tensor5d、tf.tensor6d 等語義化的方法,也推薦大家直接使用。

          const a = tf.tensor([[1, 2], [3, 4]], [2, 2], 'int32');
          // 獲取 shape
          console.log('shape:', a.shape); // shape: 2,2
          // 獲取 dtype
          console.log('dtype', a.dtype); // dtype int32
          // 修改 shape
          a.reshape([4]).print() // Tensor [1, 2, 3, 4]

          NO.2

          現(xiàn)實數(shù)據(jù)的Tensor 轉(zhuǎn)換 - 數(shù)據(jù)預(yù)處理

          Tensor 2d的示例


          我們以 Kaggle 經(jīng)典入門數(shù)據(jù) - [泰坦尼克號生存預(yù)測(https://www.kaggle.com/c/titanic)?為例來介紹一下常見數(shù)據(jù)表達方式,數(shù)據(jù)示例

          VariableDefinitionKey
          survival是否存活0 = No, 1 = Yes
          pclass船票等級1 = 1st, 2 = 2nd, 3 = 3rd
          sex性別male / female?
          Age年齡
          sibsp船上兄弟姐妹/配偶的個數(shù)
          parch船上父母/孩子的個數(shù)
          ticket船票號碼
          fare船票加個
          cabin艙位號碼
          embarked啟航港的編號C= Cherbourg, Q = Queenstown, S = Southampton

          特征二元化

          比如上面的性別,原始數(shù)據(jù)使用 male 或者 female 來表示,我們可以將其轉(zhuǎn)換成 0 和 1 來表示。

          整數(shù)編碼

          比如啟航港的編號,我們可以使用1、2、3 分別表示 C、Q、S。

          數(shù)據(jù)補齊

          如上圖數(shù)據(jù),我們可以看到 Age 字段是存在缺失的,常見有以下幾種方式來補齊數(shù)據(jù)

          • 平均值:這個很好理解,如果數(shù)值分布沒有明顯規(guī)律,可以使用平均值來補齊數(shù)據(jù)

          • 分類平均值:如果數(shù)據(jù)不同分類下的平均值有較大差異,可以使用同類的平均值來進行補齊,比如上述數(shù)據(jù) 通過 parch、slibsp 可以做一些分類,來進行補齊

          • 模型預(yù)測: 可以基于已有數(shù)據(jù),通過模型求出更準(zhǔn)確的補齊

          特征離散化

          將連續(xù)性的值,比如年齡進行離散,更有利于計算和特征的提取,比如我們可以將年齡通過 5 來進行劃分,0-5 使用 1 來表達,依次類推表達其他數(shù)值。

          其他 Tensor 的數(shù)據(jù)示例


          • Tensor 3D 常見于時間序列的數(shù)據(jù),比如某個時間段的股票價格數(shù)據(jù),需要展示 時間間隔、價格、樣本

          • Tensor 4D 常見于圖片數(shù)據(jù),需要展示 圖片寬度、高度、顏色通道(RGB)、樣本

          • Tensor 5D 常見于視頻數(shù)據(jù),需要展示 視頻寬度、高度、顏色通道、時間幀、樣本

          NO.3

          神經(jīng)網(wǎng)絡(luò)模型

          一個數(shù)據(jù)模型可以分為 Input(輸入數(shù)據(jù))、Layer(模型層)、loss(損失函數(shù))、optimizer(優(yōu)化器)、Output(預(yù)測輸出值)組成。

          Layer - 模型層


          你可以通過?TensorFlow Playground(https://playground.tensorflow.org/)?可視化的搭建自己的神經(jīng)網(wǎng)絡(luò)以及訓(xùn)練過程?

          • 大多數(shù)的數(shù)據(jù),我們可以使用全連接層來進行處理,對應(yīng) TensorFlow 中的 Dense Layer

          • 上一章我們使用的圖片數(shù)據(jù),可以使用卷積層來優(yōu)化處理,對應(yīng) TensorFlow 中的 Convolution Layer

          • 有順序的數(shù)據(jù),比如文本類,可以使用循環(huán)層,對應(yīng) TensorFlow 中的 LSTM Layer

          損失函數(shù)


          損失函數(shù)用來計算預(yù)測值與真實值的差異,模型訓(xùn)練的目的也就是將 loss(損失)最小化的過程。不同的數(shù)據(jù)類型,需要選擇恰當(dāng)?shù)膿p失函數(shù),比如對應(yīng)回歸問題,我們可以選擇使用均方誤差(mean-squared error),對于二分類問題,可以使用二元交叉熵(binary crossentropy)來計算

          優(yōu)化器


          優(yōu)化器主要基于損失函數(shù)的計算對神經(jīng)網(wǎng)絡(luò)進行調(diào)整,常見的有梯度下降法

          實例


          const model = tf.sequential();
          model.add(tf.layers.dense({units: 250, inputShape: [8]}));
          model.add(tf.layers.dense({units: 175}));
          model.add(tf.layers.dense({units: 150}));
          model.add(tf.layers.dense({units: 10, activation: 'softmax'}));

          model.compile({
          optimizer: tf.train.adam(),
          loss: 'sparseCategoricalCrossentropy',
          metrics: ['accuracy']
          });

          關(guān)注數(shù):10億+?文章數(shù):10億+
          粉絲量:10億+?點擊量:10億+

          ?


          懸賞博主專區(qū)請掃描這里


          喜愛數(shù):?1億+?發(fā)帖數(shù):?1億+
          回帖數(shù):?1億+?結(jié)貼率:?99.9%


          —————END—————



          喜歡本文的朋友,歡迎關(guān)注公眾號?程序員哆啦A夢,收看更多精彩內(nèi)容

          點個[在看],是對小達最大的支持!


          如果覺得這篇文章還不錯,來個【分享、點贊、在看】三連吧,讓更多的人也看到~

          瀏覽 94
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  大香蕉亚洲视频 | 欧美性受XXXX | 色婷婷丁香五月天 | 很很操很很干 | 欧美乱伦xxxx |