0

For a chess engine I want to use two autoencoder models, which extract key-features out of a chess-position, concatenate them and build a model on top to compare two chess positions.

My code looks like this so far:

enc1 = keras.models.load_model("autoencoder.h5")
enc2 = keras.models.load_model("autoencoder.h5")


encoder1 = Model(
    inputs=enc1.input,
    outputs=[enc1.get_layer(index=2).output,
             enc1.get_layer(index=4).output,
             enc1.get_layer(index=6).output,
             enc1.get_layer(index=7).output
            ]
)
encoder1.trainable = False

encoder2 = Model(
    inputs=enc2.input,
    outputs=[enc2.get_layer(index=2).output,
             enc2.get_layer(index=4).output,
             enc2.get_layer(index=6).output,
             enc2.get_layer(index=7).output
            ]
)
encoder2.trainable = False

model = Sequential()

model.add(concatenate([encoder1, encoder2]))

model.add(Dense(400, activation="relu", input_shape=(2,769,)))

model.add(Dropout(0.2))

model.add(Flatten())

model.add(Dense(200, activation='relu', kernel_regularizer=l2(), bias_regularizer=l2()))

model.add(Dropout(0.2))

model.add(Dense(100, activation='relu', kernel_regularizer=l2(), bias_regularizer=l2()))

model.add(Dropout(0.2))

model.add(Dense(2, activation='softmax'))

metric = tf.keras.metrics.CategoricalAccuracy()

model.compile(optimizer=Adam(learning_rate=0.001), loss="categorical_crossentropy", metrics=metric)

This is giving errors. How do I concatenate these two autoencoder layers?

Thanks so much!

Valentin
  • 1
  • 1
  • Hi, welcome to StackOverflow. Can you specify what error you are getting, with a relevant traceback, and what steps you've tried to fix it? – Jackson H Dec 14 '22 at 18:18

0 Answers0