tensorflow-yolov4-tflite icon indicating copy to clipboard operation
tensorflow-yolov4-tflite copied to clipboard

There is a bug in train logic?

Open shinyke opened this issue 3 years ago • 1 comments

The training logic cannot work cause this exception:

  File "...\tensorflow-yolov4-tflite-master\core\dataset.py", line 124, in __next__
    self.train_output_sizes[2],
IndexError: index 2 is out of bounds for axis 0 with size 2

image

the source code is:

    def __next__(self):
        with tf.device("/cpu:0"):
            # self.train_input_size = random.choice(self.train_input_sizes)
            self.train_input_size = cfg.TRAIN.INPUT_SIZE
            self.train_output_sizes = self.train_input_size // self.strides   # the // operation can only return array with two values

            batch_image = np.zeros(
                (
                    self.batch_size,
                    self.train_input_size,
                    self.train_input_size,
                    3,
                ),
                dtype=np.float32,
            )

            batch_label_sbbox = np.zeros(
                (
                    self.batch_size,
                    self.train_output_sizes[0],
                    self.train_output_sizes[0],
                    self.anchor_per_scale,
                    5 + self.num_classes,
                ),
                dtype=np.float32,
            )
            batch_label_mbbox = np.zeros(
                (
                    self.batch_size,
                    self.train_output_sizes[1],
                    self.train_output_sizes[1],
                    self.anchor_per_scale,
                    5 + self.num_classes,
                ),
                dtype=np.float32,
            )
            batch_label_lbbox = np.zeros(
                (
                    self.batch_size,
                    self.train_output_sizes[2],
                    self.train_output_sizes[2],
                    self.anchor_per_scale,
                    5 + self.num_classes,
                ),
                dtype=np.float32,
            )

Can you have any idea about it? Or what is the main purpose of the code self.train_output_sizes = self.train_input_size // self.strides

shinyke avatar Nov 03 '21 10:11 shinyke

same trouble

chen1234520 avatar Jan 17 '22 07:01 chen1234520