资源简介
使用keras版yolov3绘制loss曲线程序。将该文件替换掉原工程中的train.py,运行即可。
代码片段和文件信息
“““
Retrain the YOLO model for your own dataset.
“““
import time
import numpy as np
import keras.backend as K
from keras.layers import Input Lambda
from keras.models import Model
from keras.optimizers import Adam
from keras.callbacks import TensorBoard ModelCheckpoint ReduceLROnPlateau EarlyStopping
from yolo3.model import preprocess_true_boxes yolo_body tiny_yolo_body yolo_loss
from yolo3.utils import get_random_data
import keras
import matplotlib.pyplot as plt
# 构建绘图模块
class LossHistory(keras.callbacks.Callback):
def on_train_begin(self logs={}):
self.losses = {‘batch‘: [] ‘epoch‘: []}
self.accuracy = {‘batch‘: [] ‘epoch‘: []}
self.val_loss = {‘batch‘: [] ‘epoch‘: []}
self.val_acc = {‘batch‘: [] ‘epoch‘: []}
def on_batch_end(self batch logs={}):
self.losses[‘batch‘].append(logs.get(‘loss‘))
self.accuracy[‘batch‘].append(logs.get(‘acc‘))
self.val_loss[‘batch‘].append(logs.get(‘val_loss‘))
self.val_acc[‘batch‘].append(logs.get(‘val_acc‘))
if int(time.time()) % 5 == 0:
self.draw_loss(self.losses[‘batch‘] ‘loss‘ ‘train_batch‘)
self.draw_loss_50(self.losses[‘batch‘] ‘loss‘ ‘train_batch_50‘)
self.draw_loss_100(self.losses[‘batch‘] ‘loss‘ ‘train_batch_100‘)
self.draw_loss_200(self.losses[‘batch‘] ‘loss‘ ‘train_batch_200‘)
self.draw_loss_500(self.losses[‘batch‘] ‘loss‘ ‘train_batch_500‘)
self.draw_loss_1000(self.losses[‘batch‘] ‘loss‘ ‘train_batch_1000‘)
self.draw_p(self.accuracy[‘batch‘] ‘acc‘ ‘train_batch‘)
self.draw_p(self.val_loss[‘batch‘] ‘loss‘ ‘val_batch‘)
self.draw_p(self.val_acc[‘batch‘] ‘acc‘ ‘val_batch‘)
def on_epoch_end(self batch logs={}):
self.losses[‘epoch‘].append(logs.get(‘loss‘))
self.accuracy[‘epoch‘].append(logs.get(‘acc‘))
self.val_loss[‘epoch‘].append(logs.get(‘val_loss‘))
self.val_acc[‘epoch‘].append(logs.get(‘val_acc‘))
if int(time.time()) % 5 == 0:
self.draw_loss(self.losses[‘epoch‘] ‘loss‘ ‘train_epoch‘)
self.draw_loss_50(self.losses[‘batch‘] ‘loss‘ ‘train_batch_50‘)
self.draw_loss_100(self.losses[‘batch‘] ‘loss‘ ‘train_batch_100‘)
self.draw_loss_200(self.losses[‘batch‘] ‘loss‘ ‘train_batch_200‘)
self.draw_loss_500(self.losses[‘batch‘] ‘loss‘ ‘train_batch_500‘)
self.draw_loss_1000(self.losses[‘batch‘] ‘loss‘ ‘train_batch_500‘)
self.draw_p(self.accuracy[‘epoch‘] ‘acc‘ ‘train_epoch‘)
self.draw_p(self.val_loss[‘epoch‘] ‘loss‘ ‘val_epoch‘)
self.draw_p(self.val_acc[‘epoch‘] ‘acc‘ ‘val_epoch‘)
def draw_p(self lists label type):
plt.figure()
plt.plot(range(len(lists)) lists ‘r‘ label=label)
#plt.ylim((0 150))
plt.ylabel(label)
plt.xlabel(type)
plt.legend(loc=“upper right“)
plt.sa
- 上一篇:可视化函数绘图计算器
- 下一篇:信息隐藏——Python语言幻方置乱实现图片预处理
相关资源
- pywin32_python3.6_64位
- python3环境搭建教程.ppt
- 深度学习YOLOv3分类算法
- python3.5可用的scipy
- PYTHON3 经典50案例.pptx
- python3.5.2.chm官方文档
- python3.5.4_windows下32与64位安装包
- GitHack-python3.zip
- Python3.x+PyQtChart实现数据可视化界面
- python3根据模板图片批量自动制作个性
- 《机器学习实战》源代码Python3
- Python3.5.2的IDLE汉化版计算机等级考试
- python3.5 百度ai人脸识别
- python3实现的国密SM2+SM3
- deep learning with python 中文版
- python100道面试题及解答全部答案 pyc
- #python3.3关于Tk中的Treeview使用方法
- Python3.x+Pyqt5实现界面编程浏览网页
- 《机器学习实战》Python3代码
- Python3学习笔记
- Python3.7.2中文文档-标准库-通用操作系
- Python3.7.2中文文档-标准库-Python数据类
- python3基础教程第三版高清
- Python-基于YOLOv3的行人检测
- Python-Keras实现Inceptionv4InceptionResnetv1和
- Python-基于深度学习的语音增强使用
- 随机森林python3实现代码(带数据集)
- dlib-19.18.0-cp37-cp37m-linux_armv7l.whl
- python3学习路线+思维导图
- Learn python3 the hard way
评论
共有 条评论