【问题标题】:How can i add some properties on keras model? [duplicate]如何在 keras 模型上添加一些属性? [复制]
【发布时间】:2019-05-17 11:00:54
【问题描述】:

所以,我正在使用 keras 模型处理我的项目,使用数据图像进行一些训练,这样我可以得到我训练过的图像的输出分类。结果进展顺利。但是,我想在我建立的 keras 模型上添加一些图像属性。例如,我想使用 opencv 在 keras 上添加 hsv 图像属性,以便它们一起训练。

image_hsv = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)

我想在添加卷积层后添加此功能。我想要的是

from keras import layers
input_ = layers.Input(shape = [96, 96, 3])
conv2 = layers.Conv2D(32, (3, 3), padding = "same", activation = "relu")(input_)
conv2 = layers.BatchNormalization(axis = 1)(conv2)
conv2 = layers.MaxPooling2D(pool_size = (3, 3))(conv2)
conv2 = layers.Dropout(0.2)(conv2)

prop = cv2.cvtColor(np.array(conv2), cv2.COLOR_BGR2HSV)

flat = layers.Flatten()(prop)
fc = layers.Dense(512, activation = "relu")(flat)
fc = layers.BatchNormalization()(fc)
fc = layers.Dropout(0.2)(fc)

output = keras.layers.Dense(2, activation = "sigmoid")(fc)
model = keras.models.Model(inputs = input_, outputs = output)
model.compile(loss="binary_crossentropy", optimizer= Adam(lr=LR, decay = LR / 2),
                      metrics=["accuracy"])

但是,我遇到了这样的错误:

TypeError: src data type = 17 is not supported

是不是因为conv2的输出形状是(32, 32, 32)?谁能给我一个答案?我不明白如何解决这个问题。

【问题讨论】:

    标签: python opencv keras cv2


    【解决方案1】:

    是的,您的图像是 (32,32,32)。 Conv2D 在原始彩色图像中使用了 32 个卷积滤波器。

    因此,在卷积之后,它不会考虑初始图像的色彩空间。您可以在进入模型之前进行转换,也可以作为第一层。

    检查层Lambda 以便能够在模型中包含您喜欢的任何转换。

    【讨论】:

      猜你喜欢
      • 2023-03-12
      • 1970-01-01
      • 1970-01-01
      • 2010-10-14
      • 2011-09-16
      • 1970-01-01
      • 1970-01-01
      • 2019-04-08
      • 1970-01-01
      相关资源
      最近更新 更多