1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        JavaScript 深度學習 - 2.基礎概念

        共 2910字,需瀏覽 6分鐘

         ·

        2020-12-31 09:28

        為了更好的閱讀體驗,歡迎語雀搜索 【JavaScript 深度學習】 關注

        NO.1

        Tensor - 張量

        從名字也可以看出,Tensor 是 TensorFlow 中最基礎的數據結構,Tensor 和 一維或多維數組非常相似,在 TensorFlow.js 中,我們也可以直接將數組轉換為Tensor。一個 Tensor 包含三個部分

        • values: 具體的值 數字或者數組

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

        • dtype: 數值的數據類型,如 'float32'|'int32'|'bool' 等類型

        Scalar - 標量 ( 0D 張量)


        僅包含一個數字的張量叫做標量(Scalar)

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

        Vector - 向量 ( 1D 張量)


        一維數組的數值成為向量(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

        現實數據的Tensor 轉換 - 數據預處理

        Tensor 2d的示例


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

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

        特征二元化

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

        整數編碼

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

        數據補齊

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

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

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

        • 模型預測: 可以基于已有數據,通過模型求出更準確的補齊

        特征離散化

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

        其他 Tensor 的數據示例


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

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

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

        NO.3

        神經網絡模型

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

        Layer - 模型層


        你可以通過?TensorFlow Playground(https://playground.tensorflow.org/)?可視化的搭建自己的神經網絡以及訓練過程?

        • 大多數的數據,我們可以使用全連接層來進行處理,對應 TensorFlow 中的 Dense Layer

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

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

        損失函數


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

        優(yōu)化器


        優(yōu)化器主要基于損失函數的計算對神經網絡進行調整,常見的有梯度下降法

        實例


        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']
        });

        關注數:10億+?文章數:10億+
        粉絲量:10億+?點擊量:10億+

        ?


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


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


        —————END—————



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

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


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

        瀏覽 94
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

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

        手機掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            国产色片在线观看 | 懂色AV一区二区夜夜嗨 | 免费av在线 | 国产一级做a爰片在线看免费 | 九九视频免费在线观看 | 美女脱个精光露出小网站 | 国产秒拍福利 | 欧美日韩国产123区 | 欧美日韩电影一区二区 | 欧美少妇一区二区三区 |