我想在图像对(9000个图像)之间定义一个Keras序列模型,其中输入形状是(5,5,3),因为它是一个5x 5像素的rgb图像,输出形状是(5,8),其中图像只有一个波段信息。输入图像集包含卫星图像,输出包含每像素的冠层高度信息。
通过除以255将输入图像集归一化为0 - 1。输出不是。
这是一种回归问题,我想找到衍生产品和原始输入之间的联系,就像逆向工程一样。
你能建议一些基本的代码模型,可以适合问题空间吗?
对于上述情况,我应使用哪种功能丧失:
#model.compile(optimizer='adam',loss='categorical_crossentropy',metrics=['accuracy'])
#model.compile(loss='mse', optimizer='adam', metrics=['mse', 'mae', 'mape'])
我是否也要规范化输出集?
当前代码:
import os
import numpy as np
from sklearn.model_selection import train_test_split
from keras.models import Sequential
from keras.layers import Conv2D, Flatten, UpSampling2D, Dense
from PIL import Image
X = []
Y =[]
train_folder = 'D:/satellite/data/train/'
files = os.listdir(train_folder)
for file in files:
if file.endswith('.png'):
img = Image.open(train_folder + file)
X.append(np.array(img))
X=np.array(X)
X=X/255
train_folder_y = 'D:/canopy/data/train/'
files = os.listdir(train_folder_y)
for file in files:
if file.endswith('.png'):
img = Image.open(train_folder_y + file)
Y.append(np.array(img))
Y=np.array(Y)
x_train, x_test, y_train, y_test = train_test_split(X,Y, test_size=0.25)
图像样本(2496.png):
图像样本(159.png):
注意:使用.png,因为我不想通过jpeg压缩丢失信息。
1条答案
按热度按时间hi3rlvi21#
基本代码模型命题
当运行它时,它收敛在164.4250左右,你需要调整训练参数。
接下来的步骤可以是增加过滤器的数量(我在架构中添加了一个瓶颈,这肯定会对当前造成伤害),或者你可以降低学习率,因为我们很快就会在当前设置中陷入局部最优。