機器學習實踐:TensorFlow最後一個epoch訓練損失函式顯著增大
問題
10個epoch,執行到最後一個時,訓練資料集的損失函式顯著增大
解決步驟
- 檢查learning rate,發現學習率平滑減小,符合預期沒有問題
- 檢查梯度截斷是否有效。梯度上沒有問題。
- 檢查adam之外的優化方法。adam沒有問題
- 檢查資料集是否shuffle。
結論
事實證明問題確實出在tensorflow的資料流水線上。如果把epoch的部分增加到這裡,則整體是平滑的
def __call__(self, annotations_dir, batch_size=8, shuffle=False):
self.data_reader = DataReader(annotations_dir)
dataset = tf.data.Dataset.from_generator(self.data_reader.iter,
output_types=(tf.float32, tf.float32),
output_shapes=([self.img_size, self.img_size, 3], [None, 5])) # for distribute data
dataset = dataset.repeat(10)
如果是寫到自己的訓練迴圈裡,則有問題
for epoch in range(10):
for image_data, target in trainset:
train_step(image_data, target)
model.save_weights("../weights/yolov5")
至於問題的實質還需要更多實驗才能搞清楚了。
相關文章
- TensorFlow損失函式專題函式
- 瞭解GAN背後的設計,訓練,損失函式和演算法函式演算法
- 損失函式函式
- 【機器學習基礎】常見損失函式總結機器學習函式
- TensorFlow筆記-06-神經網路優化-損失函式,自定義損失函式,交叉熵筆記神經網路優化函式熵
- 機器學習大牛最常用的5個迴歸損失函式,你知道幾個?機器學習函式
- 損失函式+啟用函式函式
- 【機器學習】【base】 之 目標函式 損失函式 優化演算法機器學習函式優化演算法
- 換個角度看GAN:另一種損失函式函式
- 3D高斯損失函式(1)單純損失函式3D函式
- 損失函式是學習的指揮棒——記一次工作實踐函式
- 機器學習者都應該知道的五種損失函式!機器學習函式
- 聊聊損失函式1. 噪聲魯棒損失函式簡析 & 程式碼實現函式
- Triplet Loss 損失函式函式
- 損失函式綜述函式
- tensorflow2 自定義損失函式使用的隱藏坑函式
- Pytorch 常用損失函式PyTorch函式
- DDMP中的損失函式函式
- 例項解釋NLLLoss損失函式與CrossEntropyLoss損失函式的關係函式ROS
- 自我訓練 – PHP函式PHP函式
- 機器學習從業者必知的5種迴歸損失函式機器學習函式
- 談談交叉熵損失函式熵函式
- Pytorch中的損失函式PyTorch函式
- PyTorch:損失函式loss functionPyTorch函式Function
- SSD的損失函式設計函式
- 邏輯迴歸 損失函式邏輯迴歸函式
- 神經網路訓練的三個基本概念Epoch, Batch, Iteration神經網路BAT
- 訓練的評估函式函式
- 詳解常見的損失函式函式
- 2.3邏輯迴歸損失函式邏輯迴歸函式
- [翻譯] 使用 TensorFlow 進行分散式訓練分散式
- 確定不收藏?機器學習必備的分類損失函式速查手冊機器學習函式
- TensorFlow分散式實踐分散式
- 雲原生的彈性 AI 訓練系列之一:基於 AllReduce 的彈性分散式訓練實踐AI分散式
- 理論+實踐,帶你瞭解分散式訓練分散式
- 簡單介紹tensorflow2 自定義損失函式使用的隱藏坑函式
- 函式計算實踐——一個應用案例函式
- 焦點損失函式 Focal Loss 與 GHM函式