Hike News
Hike News

Golang單元測試

Introduction 單元測試往往是針對一個模塊或是針對一個函數來進行測試 確認函數運行的結果是正確無誤的 引出單元測試 Golang testing測試框架,可以很好的解決問題 Go 自帶輕量級的測試框架testing和自帶go test命令來實現單元測試和性能測試 與其他語言測試框架類似,可以對相應函數撰寫測試用例 https://studygolang.com/static/pkgdoc/pkg/testing.htm

Continue Reading →

Tensorflow2-tensorflow-keras-Wide & Deep 房價預測演示(子類API)

Introduction 構建一個子類的API實現wide & deep模型 繼承tf.keras.models.Model這個class 繼承後除了重載__init__(self)函數之外,還需重載call(self, input)函數 __init__用於定義模型的層次 call函數用於完成模型的正向計算 於子類構建完成模型後 實例化子類調用模型 實例化子類 調用build函數 並指定其input_shape 使用tf.keras.models.Sequential類實例化模型 一樣需要調用build函數,並指定其input_shape

Continue Reading →

Tensorflow2-tensorflow-keras-Wide & Deep 房價預測演示(函數式API)

Introduction 將使用房價預測的回歸的問題進行演示 此數據集含有8個特徵,可以很輕鬆的將其劃分給wide模型及deep模型使用的特徵 特徵與特徵之間的價值有所差異 對於圖像分類來說,數據集的劃分並無太大的意義(像素之值) 特徵與特徵之間的價值雷同 因Wide & deep模型為兩部份有層級結構的模型所組成的,因此並非使用tf.keras.models.Sequential()的方式構建模型

Continue Reading →

Tensorflow2-tensorflow-keras-深度神經網絡(DNN)_dropout

Dropout用於防止過擬合 左圖是正常的全連接神經網絡 右圖將某些節點強制設為0,則對於此節點連接的線將會失效(無輸出or輸出為0),生成新的子網絡稱之為dropout操作 將某些神經單元棄用 且每次訓練棄用掉的單元數量是隨機的 通常只讓某幾層進行dropout,而非每一層都添加 使用API:只要添加(add)dropout的layer就相當於對前一層Dense進行dropout keras.layers.AlphaDropout(rate):相較於一般dropout更加強大 rate:丟掉單元的比例為何(為0-1之間的小數);一般都設為0.5 AlphaDropout的過程均值和方差不會改變;因此其歸一化的性質也不變 可與batch_normalization或是selu激活函數一起使用 不會使原本的分布發生大幅度的改變 keras.layers.Dropout(rate):如一開始介紹純淨的dropout

Continue Reading →

Tensorflow2-tensorflow-keras-深度神經網絡(DNN)_更改激活函數

激活函數 它們將非線性特性引入到網絡中。其主要目的是將A-NN模型中一個節點的輸入信號轉換成一個輸出信號。該輸出信號現在被用作堆疊中下一個層的輸入 輸入(X)和它們對應的權重(W)的乘積之和,並將激活函數f(x)應用於其獲取該層的輸出並將其作為輸入饋送到下一個層 https://kknews.cc/news/4mlnr82.html

Continue Reading →

Tensorflow2-tensorflow-keras-深度神經網絡(DNN)_批歸一化(batch normalization)

批標準化(批歸一化;batch normalize) 將前章用到的標準化方法(Z-score, min-max等)在輸入數據進入每一層前皆進行標準化處理 使神經網絡效果變好 緩解梯度消失的問題 計算量較大,速度變慢 keras.layers.BatchNormalization() 以下方法可以自己試試看

Continue Reading →

Tensorflow2-tensorflow-keras-回調函數

Introduction 回調函數的API類位於tf.keras.callbacks類中 通常在模型訓練的過程中,常常會額外作一些非模型訓練的事情 EarlyStopping:應用在當訓練模型的過程中,如果loss值不再下降,便可提前停止訓練 keras.callbacks.EarlyStopping(monitor, min_delta) monitor:指定要關注的指標之值,一般情況都是關注驗證集上目標(損失)函數之值 min_delta:閾值 此次訓練相較於上次訓練的差距是否比閾值低;提前結束訓練 patience:當此次訓練相較於上次訓練比min_delta還小時,patience次數後就提前結束訓練 ModelCheckpint:訓練模型的過程中,記錄所有訓練參數的中間狀態,其會每隔一段時間將checkpoint保存下來 keras.callbacks.ModelCheckpoint(filepath) 其須指定filepath為一文件名 save_best_only 為True時則保存最好的模型參數,否則會保存最近一次訓練的模型 TensorBoard:在模型訓練過程中,實時查看一些參數改變狀況的dashboard keras.callbacks.Tensorboard(logdir) 其須指定logdir位置為一資料夾 其他回調函數皆收錄於 https://www.tensorflow.org/api_docs/python/tf/keras/callbacks 中

Continue Reading →