如何在回归问题中从CNN输出float32图像?

问题描述

我一直在研究输入和标签是图像的回归问题。我目前在 float32 中为输入和标签使用灰度图像。标签图像包含 0-650 之间的连续值。数据集包括 11250 张 32x32 图像。

经过这个分析,我将RGB输入代替灰度,但现在我使用灰度作为输入。

我已经在 Keras 中测试了 VGG16 架构。拟合模型并输出预测图像后,它们是0-255数据范围内的8Bit格式。

如何使 float32 格式的预测图像接近初始数据集的数据范围 (0-650)?


添加了一些相关代码

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

train_generator = zip(img_train_generator,label_train_generator)

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

验证和测试生成器类似于训练生成器,但具有不同的数据。

outputs = tf.keras.layers.Conv2D(1,(1,1),activation='linear')(c9)
model = tf.keras.Model(inputs=[inputs],outputs=[outputs])
model.compile(optimizer='Adam',loss='mean_squared_error',metrics=['mae'])

history = model.fit(
    train_generator,steps_per_epoch=train_steps,epochs=epochs,validation_data=validation_generator,validation_steps=valid_steps)

pred= model.predict(X_test)

for i,image in enumerate(pred,1):
    tf.keras.preprocessing.image.save_img(f'pred_float32/{i}.png',image,scale=False)

解决方法

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

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

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