微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决如何在回归问题中从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 举报,一经查实,本站将立刻删除。