# Manipulating Your Training Image Size This tutorial explains how to control your image size when training on your own data. ## 1. Introduction There are 3 hyperparamters control the training size: - self.input_size = (640, 640)   #(height, width) - self.multiscale_range = 5 - self.random_size = (14, 26) There is 1 hyperparameter constrols the testing size: - self.test_size = (640, 640) The self.input_size is suggested to set to the same value as self.test_size. By default, it is set to (640, 640) for most models and (416, 416) for yolox-tiny and yolox-nano. ## 2. Multi Scale Training When training on your custom dataset, you can use multiscale training in 2 ways: 1. **【Default】Only specifying the self.input_size and leaving others unchanged.** If so, the actual multiscale sizes range from: [self.input_size[0] - self.multiscale_range\*32, self.input_size[0] + self.multiscale_range\*32] For example, if you only set: ```python self.input_size = (640, 640) ``` the actual multiscale range is [640 - 5*32, 640 + 5\*32], i.e., [480, 800]. You can modify self.multiscale_range to change the multiscale range. 2. **Simultaneously specifying the self.input_size and self.random_size** ```python self.input_size = (416, 416) self.random_size = (10, 20) ``` In this case, the actual multiscale range is [self.random_size[0]\*32, self.random_size[1]\*32], i.e., [320, 640] **Note: You must specify the self.input_size because it is used for initializing resize aug in dataset.** ## 3. Single Scale Training If you want to train in a single scale. You need to specify the self.input_size and self.multiscale_range=0: ```python self.input_size = (416, 416) self.multiscale_range = 0 ``` **DO NOT** set the self.random_size.