Tôi đang cố gắng sử dụng data_augmentation_options trong tệp .config để đào tạo mạng, cụ thể là ssd_mobilenet_v1, nhưng khi tôi kích hoạt tùy chọn random_adjust_brightness, tôi nhận được thông báo lỗi được dán bên dưới một cách nhanh chóng (tôi kích hoạt tùy chọn sau bước 110000).Lỗi khi sử dụng tùy chọn tăng cường dữ liệu trong API phát hiện đối tượng
tôi đã cố gắng làm giảm giá trị mặc định:
optional float max_delta=1 [default=0.2];
Nhưng kết quả là như nhau.
Bất kỳ ý tưởng nào tại sao? Hình ảnh là RGB từ các tệp png (từ Bosch Small Traffic Lights Dataset).
INFO:tensorflow:global step 110011: loss = 22.7990 (0.357 sec/step)
INFO:tensorflow:global step 110012: loss = 47.8811 (0.401 sec/step)
2017-11-16 11:02:29.114785: W tensorflow/core/framework/op_kernel.cc:1192] Invalid argument: LossTensor is inf or nan. : Tensor had NaN values
[[Node: CheckNumerics = CheckNumerics[T=DT_FLOAT, message="LossTensor is inf or nan.", _device="/job:localhost/replica:0/task:0/device:CPU:0"](total_loss)]]
2017-11-16 11:02:29.114895: W tensorflow/core/framework/op_kernel.cc:1192] Invalid argument: LossTensor is inf or nan. : Tensor had NaN values
[[Node: CheckNumerics = CheckNumerics[T=DT_FLOAT, message="LossTensor is inf or nan.", _device="/job:localhost/replica:0/task:0/device:CPU:0"](total_loss)]]
2017-11-16 11:02:29.114969: W tensorflow/core/framework/op_kernel.cc:1192] Invalid argument: LossTensor is inf or nan. : Tensor had NaN values
[[Node: CheckNumerics = CheckNumerics[T=DT_FLOAT, message="LossTensor is inf or nan.", _device="/job:localhost/replica:0/task:0/device:CPU:0"](total_loss)]]
2017-11-16 11:02:29.115043: W tensorflow/core/framework/op_kernel.cc:1192] Invalid argument: LossTensor is inf or nan. : Tensor had NaN values
[[Node: CheckNumerics = CheckNumerics[T=DT_FLOAT, message="LossTensor is inf or nan.", _device="/job:localhost/replica:0/task:0/device:CPU:0"](total_loss)]]
2017-11-16 11:02:29.115112: W tensorflow/core/framework/op_kernel.cc:1192] Invalid argument: LossTensor is inf or nan. : Tensor had NaN values
...
Chỉnh sửa: Cách khắc phục mà tôi tìm thấy là điều này. Các inf hoặc nan là trong sự mất mát, vì vậy kiểm tra các chức năng trong /object_detection/core/preprocessor.py làm ngẫu nhiên độ sáng:
def random_adjust_brightness(image, max_delta=0.2):
"""Randomly adjusts brightness.
Makes sure the output image is still between 0 and 1.
Args:
image: rank 3 float32 tensor contains 1 image -> [height, width, channels]
with pixel values varying between [0, 1].
max_delta: how much to change the brightness. A value between [0, 1).
Returns:
image: image which is the same shape as input image.
boxes: boxes which is the same shape as input boxes.
"""
with tf.name_scope('RandomAdjustBrightness', values=[image]):
image = tf.image.random_brightness(image, max_delta)
image = tf.clip_by_value(image, clip_value_min=0.0, clip_value_max=1.0)
return image
Đó là giả định rằng các giá trị hình ảnh phải từ 0.0 và 1.0. Có thể là những hình ảnh thực sự đến với 0 có nghĩa là và thậm chí một phạm vi khác nhau? Trong trường hợp đó, clipping đang làm hỏng chúng và dẫn đến thất bại. Câu chuyện dài ngắn: Tôi nhận xét ra dòng cắt và nó đang làm việc (chúng ta sẽ thấy kết quả).