机器学习实践:TensorFlow最后一个epoch训练损失函数显著增大
生活随笔
收集整理的這篇文章主要介紹了
机器学习实践:TensorFlow最后一个epoch训练损失函数显著增大
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
問題
10個epoch,運行到最后一個時,訓練數據集的損失函數顯著增大
解決步驟
結論
事實證明問題確實出在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 datadataset = dataset.repeat(10)如果是寫到自己的訓練循環里,則有問題
for epoch in range(10):for image_data, target in trainset:train_step(image_data, target)model.save_weights("../weights/yolov5")其實,如果是經驗豐富,大概一開頭就可以猜出大概的解決方案,不用像我到處檢測。因為問題出在一個新的epoch開頭時突然異樣。由于對tf.data原理了解的不多,問題的實質還需要更多實驗和理論才能搞清楚了。
總結
以上是生活随笔為你收集整理的机器学习实践:TensorFlow最后一个epoch训练损失函数显著增大的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 高并发之服务降级和服务熔断____服务降
- 下一篇: Debug Tensorflow :Tw