【发布时间】: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)?谁能给我一个答案?我不明白如何解决这个问题。
【问题讨论】: