You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Thank you for your creation. You really deserve a lot of thanks from beginners like me.
I have been using your code to train my data with yolo v3 model. Now since I do not have a GPU I have been using Google Colab for that. I went through your tutorials related to Yolo v3 but still have some confusion regarding the training from checkpoint facility of your code. I will list my questions below :
I want to start my training from the point where I left last time ( I hope this is what you meant by training from checkpoint), Following should be my configuration : ( please correct me if I am wrong )
#================================================================
#
# File name : configs.py
# Author : PyLessons
# Created date: 2020-08-18
# Website : https://pylessons.com/
# GitHub : https://github.com/pythonlessons/TensorFlow-2.x-YOLOv3
# Description : yolov3 configuration file
#
#================================================================
# YOLO options
YOLO_TYPE = "yolov3" # yolov4 or yolov3
YOLO_FRAMEWORK = "tf" # "tf" or "trt"
YOLO_V3_WEIGHTS = "model_data/yolov3.weights"
YOLO_V4_WEIGHTS = "model_data/yolov4.weights"
YOLO_V3_TINY_WEIGHTS = "model_data/yolov3-tiny.weights"
YOLO_V4_TINY_WEIGHTS = "model_data/yolov4-tiny.weights"
YOLO_TRT_QUANTIZE_MODE = "INT8" # INT8, FP16, FP32
YOLO_CUSTOM_WEIGHTS = False # "checkpoints/yolov3_custom" # used in evaluate_mAP.py and custom model detection, if not using leave False
# YOLO_CUSTOM_WEIGHTS also used with TensorRT and custom model detection
YOLO_COCO_CLASSES = "model_data/coco/coco.names"
YOLO_STRIDES = [8, 16, 32]
YOLO_IOU_LOSS_THRESH = 0.5
YOLO_ANCHOR_PER_SCALE = 3
YOLO_MAX_BBOX_PER_SCALE = 100
YOLO_INPUT_SIZE = 416
if YOLO_TYPE == "yolov4":
YOLO_ANCHORS = [[[12, 16], [19, 36], [40, 28]],
[[36, 75], [76, 55], [72, 146]],
[[142,110], [192, 243], [459, 401]]]
if YOLO_TYPE == "yolov3":
YOLO_ANCHORS = [[[10, 13], [16, 30], [33, 23]],
[[30, 61], [62, 45], [59, 119]],
[[116, 90], [156, 198], [373, 326]]]
# Train options
TRAIN_YOLO_TINY = False
TRAIN_SAVE_BEST_ONLY = True # saves only best model according validation loss (True recommended)
TRAIN_SAVE_CHECKPOINT = False # saves all best validated checkpoints in training process (may require a lot disk space) (False recommended)
TRAIN_CLASSES = "model_data/class_names.txt"
TRAIN_ANNOT_PATH = "model_data/train_set.txt"
TRAIN_LOGDIR = "log"
TRAIN_CHECKPOINTS_FOLDER = "checkpoints"
TRAIN_MODEL_NAME = f"{YOLO_TYPE}_custom"
TRAIN_LOAD_IMAGES_TO_RAM = True # With True faster training, but need more RAM
TRAIN_BATCH_SIZE = 4
TRAIN_INPUT_SIZE = 416
TRAIN_DATA_AUG = True
TRAIN_TRANSFER = True
TRAIN_FROM_CHECKPOINT = True # "checkpoints/yolov3_custom"
TRAIN_LR_INIT = 1e-4
TRAIN_LR_END = 1e-6
TRAIN_WARMUP_EPOCHS = 2
TRAIN_EPOCHS = 100
# TEST options
TEST_ANNOT_PATH = "model_data/test_set.txt"
TEST_BATCH_SIZE = 4
TEST_INPUT_SIZE = 416
TEST_DATA_AUG = False
TEST_DECTECTED_IMAGE_PATH = ""
TEST_SCORE_THRESHOLD = 0.3
TEST_IOU_THRESHOLD = 0.45
#YOLOv3-TINY and YOLOv4-TINY WORKAROUND
if TRAIN_YOLO_TINY:
YOLO_STRIDES = [16, 32, 64]
YOLO_ANCHORS = [[[10, 14], [23, 27], [37, 58]],
[[81, 82], [135, 169], [344, 319]],
[[0, 0], [0, 0], [0, 0]]]
Here my confusion is "TRAIN_FROM_CHECKPOINT = True" is enough or I have to provide the path like TRAIN_FROM_CHECKPOINT = "checkpoints/yolov3_custom"
Consider a situation when I stared training keeping by "TRAIN_TRANSFER = True" because I want to use the darknet weights and train on top of that. Now suppose I wanted to train for 100 epochs but after training 60 epochs my cloab get disconnected. Now when I want to train from this point ( as I explained in the last question, this is what I am considering training from checkpoint ) do I have to still keep "TRAIN_TRANSFER = True" when stating training from checkpoint or I need to make it false, starting from the second time ?
In same situation as described in question 2, do I need to execute the "!python tools/XML_to_YOLOv3.py" each time I start training or it is sufficient to execute it once for the same dataset ?
I will be grateful to you if you please answer me.
The text was updated successfully, but these errors were encountered:
Dear,
Thank you for your creation. You really deserve a lot of thanks from beginners like me.
I have been using your code to train my data with yolo v3 model. Now since I do not have a GPU I have been using Google Colab for that. I went through your tutorials related to Yolo v3 but still have some confusion regarding the training from checkpoint facility of your code. I will list my questions below :
Here my confusion is "TRAIN_FROM_CHECKPOINT = True" is enough or I have to provide the path like TRAIN_FROM_CHECKPOINT = "checkpoints/yolov3_custom"
Consider a situation when I stared training keeping by "TRAIN_TRANSFER = True" because I want to use the darknet weights and train on top of that. Now suppose I wanted to train for 100 epochs but after training 60 epochs my cloab get disconnected. Now when I want to train from this point ( as I explained in the last question, this is what I am considering training from checkpoint ) do I have to still keep "TRAIN_TRANSFER = True" when stating training from checkpoint or I need to make it false, starting from the second time ?
In same situation as described in question 2, do I need to execute the "!python tools/XML_to_YOLOv3.py" each time I start training or it is sufficient to execute it once for the same dataset ?
I will be grateful to you if you please answer me.
The text was updated successfully, but these errors were encountered: