Как работать с входными данными flatten нейросети tensorflow Python
Недавно начал изучать нейросети на 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')
])
Ответы (1 шт):
Автор решения: Jack Owest
→ Ссылка
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))