Как вывести многомерный массив в Keras? - PullRequest
0 голосов
/ 07 июня 2019

У меня есть этот CNN в Керасе, где вывод представляет собой 2d массив ограничивающих рамок, форма вывода

(18, 4)

x_train shape = (None, 600, 750, 1) # grayscale
y_train shape = (None, 18, 4)

Я получаю следующую ошибку:

ValueError: Ошибка при проверке цели: ожидалось, что плотность_2 имеет 2 измерения, но получен массив с формой (1, 18, 4)

model = tf.keras.models.Sequential([
    tf.keras.layers.Conv2D(32, kernel_size=(3, 3), input_shape=(h, w, 1),
                           strides=(2, 2), padding="same", activation="relu"),
    tf.keras.layers.MaxPooling2D(pool_size=(2, 2), strides=(2, 2), padding="same"),
    tf.keras.layers.Dropout(0.25),

    tf.keras.layers.Conv2D(64, (3, 3), strides=(2, 2), padding="same", activation="relu"),
    tf.keras.layers.MaxPooling2D(pool_size=(2, 2), strides=(2, 2), padding="same"),
    tf.keras.layers.Dropout(0.25),

    tf.keras.layers.Conv2D(128, (3, 3), strides=(2, 2), padding="same", activation="relu"),
    tf.keras.layers.MaxPooling2D(pool_size=(2, 2), strides=(2, 2), padding="same"),
    tf.keras.layers.Dropout(0.25),

    tf.keras.layers.Conv2D(512, (3, 3), strides=(2, 2), padding="same", activation="relu"),
    tf.keras.layers.MaxPooling2D(pool_size=(2, 2), strides=(2, 2), padding="same"),
    tf.keras.layers.Dropout(0.25),

    tf.keras.layers.Flatten(),
    tf.keras.layers.Dense(1024, activation="relu"),
    tf.keras.layers.Dropout(0.5),
    tf.keras.layers.Dense(18)
])

model.compile(loss="mse", optimizer=tf.keras.optimizers.RMSprop(), metrics=["accuracy"])
model.fit(x_train, y_train, epochs=1)
model.save("trained_model.h5")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...