问题描述
我一直在研究输入和标签是图像的回归问题。我目前在 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 (将#修改为@)