首頁>技術>

上篇講了隨機梯度下降法,理論聽太多容易讓人迷糊瞌睡,今天就來點程式碼練練手,直接實戰tensorflow。

PyCharm新增Tensorflow

編寫第一段tensorflow測試程式碼,看看環境是否OK,很不幸,報錯提示沒有C++庫。根據提示去微軟官網下載安裝,再次執行tensorflow 2.0 測試程式碼,可以看到正常輸出結果了!至此表示環境已經OK,那麼就趕緊開始走一個小例子吧:)

正常執行起來了

import tensorflow as tfimport numpy as npimport matplotlib.pyplot as plt# 1.資料獲取mnist = tf.keras.datasets.mnist(train_x, train_y), (test_x, test_y) = mnist.load_data()    # 資料拆分為訓練集和測試集# 2.模型構建model = tf.keras.models.Sequential([    tf.keras.layers.Flatten(input_shape=[28, 28]),          # Flatten 層用於展開張量    tf.keras.layers.Dense(100, activation="relu"),          # 訓練層1    tf.keras.layers.Dense(100, activation="relu"),          # 訓練層2    tf.keras.layers.Dropout(0.5),                           # 防止過擬合,關閉50%的神經元    tf.keras.layers.Dense(10, activation="softmax"),        # 輸出層])model.compile(optimizer="adam",              loss="sparse_categorical_crossentropy",              metrics=['accuracy'])                         # optimizer最佳化演算法,loss損失函式, metrics評估方法# 3.模型訓練model.fit(train_x, train_y, epochs=5)                       # 1個epoch等於使用訓練集中的全部樣本訓練一次;# 4.模型評估val = model.evaluate(test_x, test_y)                       # evaluate 模型評估print(val)

二話不說直接貼上示例程式碼,這個Minst資料集是一堆手寫的阿拉伯數字,透過已經打好標籤的訓練資料來餵給機器,從而讓機器可以學習識別未曾見過的手寫阿拉伯數字。

minst資料集

從程式碼裡可以看到機器學習分為四個主要步驟,第一步獲取要訓練的資料,第二步構建模型,第三步就是用獲取的資料去訓練這個模型,第四步是用測試集資料對模型進行驗證評估。從輸出結果來看,經過五輪訓練後,損失函式快速下降,準確率迅速提高,模型快速收斂了,達到了很好的預測效果。

模型評估結果

這個示例程式碼雖然簡單,但隱藏著很多秘密,特別是模型構建的這部分程式碼,每一個引數背後都有很大的學問,有待我們將來一起去開啟未知的世界吧:)

# 2.模型構建model = tf.keras.models.Sequential([    tf.keras.layers.Flatten(input_shape=[28, 28]),          # Flatten 層用於展開張量    tf.keras.layers.Dense(100, activation="relu"),          # 訓練層1    tf.keras.layers.Dense(100, activation="relu"),          # 訓練層2    tf.keras.layers.Dropout(0.5),                           # 防止過擬合,關閉50%的神經元    tf.keras.layers.Dense(10, activation="softmax"),        # 輸出層])model.compile(optimizer="adam",              loss="sparse_categorical_crossentropy",              metrics=['accuracy'])                         # optimizer最佳化演算法,loss損失函式, metrics評估方法

22
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • ECCV 2020 亮點摘要(下)