Tensorflow 2.0 CNN训练:图像增强功能将像素值移到[0,1]范围之外。这有问题吗?

2024-06-02 06:32:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在开发我的特定数据增强功能,以便在TensorFlow 2.0中训练CNN。我使用的图像数据存储在numpy多维RGB数组中;它的所有像素值都在[0,1]范围内浮动。你知道吗

在使用函数tensorflow.image.random_brightnessdocumentation)时,我发现它的像素值在[0,1]范围之外移动(高于或低于)。当我尝试使用matplotlib.pyplot.imshow()将它们可视化时,我得到以下消息:

Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).

我还发现,当我尝试重新规范化该范围内的数据时,图像会恢复到其原始外观(使整个过程毫无用处)。你知道吗

像素值超出[0,1]范围是CNN训练的问题吗?如果这代表了一个问题,我能做什么使像素值在正确的范围内,而不放弃调整亮度?你知道吗


Tags: 数据函数图像image功能numpyfordata
1条回答
网友
1楼 · 发布于 2024-06-02 06:32:40

是的,这是一个问题,因为您在0-1中表示0-255中的某个值,因此当您输入大于1的值时。对你的CNN来说,你是在给CNN提供一些在真实场景中它永远看不到的东西。你知道吗

应用随机亮度是可以的,但是您应该使用^{}函数处理溢出问题:

image = tf.clip_by_value(image, clip_value_min=0., clip_value_max=1.)

相关问题 更多 >