Как работать с входными данными flatten нейросети tensorflow Python

Рейтинг: 1Ответов: 1Опубликовано: 23.02.2023

Недавно начал изучать нейросети на tensorflow, и после того как сделал нейросеть по уроку начал делать свою. Я решил сделать нейронку играющую в 2048, но я не знаю как работать с входными данными. В качестве входных данных идет матрица поля в таком виде:

[[ 8 16 32  0]
 [ 2  8  4  0]
 [ 4  2  2  0]
 [ 2  0  0  0]]

Но tensorflow жалуется на такой тип поэтому я начал преобразовывать его в такой вид:

[8, 16, 32, 0, 2, 8, 4, 0, 4, 2, 2, 0, 2, 0, 0, 0]

Но даже в таком случае она жалуется не на те данные. Что делать? Вот сами параметры нейронки:

model = keras.Sequential([
    keras.layers.Flatten(input_shape=(4, 4)),
    keras.layers.Dense(128, activation='relu'),
    keras.layers.Dense(4, activation='softmax')
])

Ответы

▲ 0Принят

Flatten ждёт на вход данные в форме (количество образцов(длина батча), 4, 4), а вы передаёте просто (4, 4)

Попробуйте изменить форму:

input_data = np.array([[ 8, 16, 32, 0],
                       [ 2,  8,  4, 0],
                       [ 4,  2,  2, 0],
                       [ 2,  0,  0, 0]])

input_data = input_data.reshape((1, 4, 4))