tensorflow - 如何在回归问题中从 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/",
target_size=(32,32),
batch_size=batch_size,
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)
解决方案
推荐阅读
- powershell - profile.ps1 如何导入脚本和函数
- r - 通过两个条件在 R 中查找匹配值,一个是时间范围内的日期
- python - 从具有相同链接的页面中抓取网页
- react-native - 连接 react native 来表达
- excel - 应用程序:将 vlookup 公式设置为我需要获取值的单元格时出现 1004 错误
- html - django - html || for循环问题
- formula - LibreOffice Calc 在单元格中显示公式而不是结果
- django - 如何即时为每封电子邮件设置 SMTP 设置?
- .net - How do I access a subclass's fields in RDLC?
- c++ - 我一直试图弄清楚我在这个链表程序中做错了什么