機器學習實踐: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損失函式專題函式
- 【機器學習基礎】常見損失函式總結機器學習函式
- 損失函式是學習的指揮棒——記一次工作實踐函式
- 機器學習大牛最常用的5個迴歸損失函式,你知道幾個?機器學習函式
- 瞭解GAN背後的設計,訓練,損失函式和演算法函式演算法
- 機器學習者都應該知道的五種損失函式!機器學習函式
- 機器學習從業者必知的5種迴歸損失函式機器學習函式
- TensorFlow筆記-06-神經網路優化-損失函式,自定義損失函式,交叉熵筆記神經網路優化函式熵
- 損失函式函式
- 機器學習的訓練集機器學習
- 深度學習之PyTorch實戰(5)——對CrossEntropyLoss損失函式的理解與學習深度學習PyTorchROS函式
- 確定不收藏?機器學習必備的分類損失函式速查手冊機器學習函式
- Online Learning場景下實時新聞熱點機器學習訓練實踐機器學習
- 換個角度看GAN:另一種損失函式函式
- 3D高斯損失函式(1)單純損失函式3D函式
- 100天搞定機器學習:模型訓練好了,然後呢?機器學習模型
- tensorflow2 自定義損失函式使用的隱藏坑函式
- 聊聊損失函式1. 噪聲魯棒損失函式簡析 & 程式碼實現函式
- Pytorch 常用損失函式PyTorch函式
- 損失函式綜述函式
- Triplet Loss 損失函式函式
- 例項解釋NLLLoss損失函式與CrossEntropyLoss損失函式的關係函式ROS
- DDMP中的損失函式函式
- PyTorch:損失函式loss functionPyTorch函式Function
- Pytorch中的損失函式PyTorch函式
- 訓練一個影像分類器demo in PyTorch【學習筆記】PyTorch筆記
- 《美團機器學習實踐》—— 讀後總結機器學習
- 機器學習(一):5分鐘理解機器學習並上手實踐機器學習
- 谷歌機器學習課程筆記(4)——降低損失谷歌機器學習筆記
- tensorflow相關函式學習總結函式
- TiDB v5.1 體驗: 我用 TiDB 訓練了一個機器學習模型TiDB機器學習模型
- 用一個小例子教你入門機器學習框架TensorFlow機器學習框架
- 自我訓練 – PHP函式PHP函式
- SSD的損失函式設計函式
- 談談交叉熵損失函式熵函式
- 邏輯迴歸 損失函式邏輯迴歸函式
- 機器學習基本函式介紹機器學習函式
- 機器學習之邏輯迴歸:模型訓練機器學習邏輯迴歸模型