如何使用flow_from_directory以float32数据类型保留十进制值?

问题描述

对于回归任务,我有 4 个灰度图像,其像素范围为 float32 数据类型。数据范围为:[0 到 790.65]、[ -2.74174 到 2.4126 ]、[ 150.87 到 260.45]、[ -32.927 到 69.333]。

前三个灰度图像用作预测数据并使用以下方法堆叠:

RGB = np.dstack((img1_arr,img2_arr,img3_arr))

创建堆叠图像后,我使用以下代码输入RGB图像和标签图像(上面提到的第四张图像):

batch_size = 32
from keras.preprocessing.image import ImageDataGenerator
train_datagen = ImageDataGenerator()
img_train_generator = train_datagen.flow_from_directory(
                "train/image/",target_size=(128,128),batch_size=batch_size,class_mode= None,color_mode='rgb',shuffle=False)            
label_train_generator = train_datagen.flow_from_directory(
                "train/label/",class_mode=None,shuffle=False,color_mode='grayscale')

代码返回训练数据集中的图像数量,但是在执行下一个代码后,我收到一个错误,我正在努力寻找解决方案:

X_train,y_train=next(train_generator)
X_train.shape,y_train.shape

Error: UnidentifiedImageError: cannot identify image file <_io.BytesIO object at 0x0000026B3A6E2620>

如果我对 RGB 和标签图像使用 unit8 数据类型执行上述分析,一切都很好并且没有错误,但是对于我的回归任务来说,保留图像中的十进制值很重要。

我看到 this post 有几乎类似的问题,但我不确定如何准备新的 ImageGenerator 以加载 float32 图像。

解决这个问题的合理方法是什么?或者有没有其他方法可以处理 CNN 中 float32 数据类型的十进制值?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...