<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # 1. 準備數據集 首先下載[Fashion MNIST](https://github.com/zalandoresearch/fashion-mnist)數據集。該數據集包含 10 個類別的 70,000 個灰度圖像。這些圖像以低分辨率(28x28 像素)展示了單件衣物,如下所示: ![](https://img.kancloud.cn/0d/ab/0dab3fc1434b4bc62ade16cf8de52fd7_840x840.png) 當然這里還是采用自帶的方式加載數據集: ``` # 導入數據集 fashion_mnist = tf.keras.datasets.fashion_mnist (train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data() ``` 然后程序會自動下載對應的數據集: ![](https://img.kancloud.cn/2f/54/2f54a53653eaf67aa1c16c7cb5bf2bc2_955x130.png) 可以看下其維度: ![](https://img.kancloud.cn/f8/ad/f8ad5096936fbac478e7ededd58f50ae_378x166.png) 從圖中可以知道這里和上個案例保持一致,還是每個圖片為28x28。類似的這里我們需要對每個圖片進行處理,當然可以先查看一下某個圖片的內容: ``` # 導入工具 import numpy as np import matplotlib.pyplot as plt plt.figure() plt.imshow(train_images[100]) plt.colorbar() # 右邊的顏色值 plt.grid(False) plt.show() ``` 結果: ![](https://img.kancloud.cn/33/78/3378b6f737ba567688eaa8762c3b1e96_305x252.png) 因此,還是縮小至0到1之間: ``` train_images = train_images / 255.0 test_images = test_images / 255.0 ``` 然后再次調用前面的繪圖代碼,觀察右邊豎直的顏色值: ![](https://img.kancloud.cn/d7/1a/d71ac3aaa9655455b54d0659e92f2396_321x252.png) 很明顯,這里達到了目標。 # 2. 定義模型 這里還是定義和上一個案例一樣: ``` model = tf.keras.models.Sequential() model.add( tf.keras.layers.Flatten(input_shape=(28, 28))) model.add(tf.keras.layers.Dense(512, activation="relu")) model.add(tf.keras.layers.Dropout(0.2)) model.add(tf.keras.layers.Dense(10, activation='softmax')) ``` 也就是先拉平,然后裝入全連接層,Dropout層,然后更具目標個數來進行定義最終輸出層的維度10。 然后定義優化器/損失函數和評價指標: ``` model.compile(optimizer='adam',? loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),? ? metrics=['accuracy']) ``` 訓練模型: ``` model.fit(train_images, train_labels, epochs=10) ``` ![](https://img.kancloud.cn/51/e1/51e1d119e7b145a19cc17932bf964712_1044x441.png) # 3. 模型評估: ``` model.evaluate(test_images, test_labels, verbose=2) ``` ![](https://img.kancloud.cn/ae/a4/aea4b54eef7369b6917434fdd2630a44_541x85.png) 結果表明,模型在測試數據集上的準確率略低于訓練數據集。訓練準確率和測試準確率之間的差距代表*過擬合*。過擬合是指機器學習模型在新的、以前未曾見過的輸入上的表現不如在訓練數據上的表現。**過擬合**的模型會“記住”訓練數據集中的噪聲和細節,從而對模型在新數據上的表現產生負面影響。 基本手段有:Early Stop、Dropout、L1L2等。 當然,這部分內容等后續再寫,這里以學習和復寫搭建模型為主。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看