Я делаю шахматный AI, используя keras. Я сталкиваюсь с ошибками при наложении сверточных слоев, поскольку в нем указано, что форма несовместима с предыдущим слоем объединения. Ошибка имеет следующий вид:
Input 0 of layer conv2d is incompatible with the layer: expected axis -1 of input shape to have value 12 but received input with shape [None, 3, 3, 2]
Воспроизводимый сегмент:
import numpy as np
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers
board_inputs = keras.Input(shape=(8, 8, 12))
conv = layers.Conv2D(2, 3, activation='relu')
pooling = layers.MaxPooling2D(pool_size=(2, 2), strides=None, padding="valid", data_format=None,)
flatten = keras.layers.Flatten(data_format=None)
x = conv(board_inputs)
x = pooling(x)
x = conv(x)
# x = flatten(x)
# x = conv(x)
# x = pooling(x)
x = flatten(x)
output = layers.Dense(12)(x)
model = keras.Model(inputs=board_inputs, outputs=output, name="chess_ai_v3")
model.summary()
model.compile(
loss=keras.losses.mse,
optimizer=keras.optimizers.Adam(),
metrics=None,
)
history = model.fit(trans_data[:len(trans_data)], pieces[:len(trans_data)], batch_size=64, epochs=1000)