Как передать в нейросеть Keras Sequential двумерный массив данных?
Я новичок в Keras. Хочу передать массив 2xN в нейросеть следующим образом:
import numpy as np
import matplotlib as plt
from tensorflow import keras
from tensorflow.keras.layers import Dense
y = np.array([[1, 2], [2, 3], [3, 4], [5, 6], [10, 11]])
f = np.array([[2, 1], [3, 2], [4, 3], [6, 5], [11, 10]])
model = keras.Sequential()
model.add(Dense(units = 1, input_shape=[1,2], activation = 'linear'))
model.compile(loss='mean_squared_error', optimizer=keras.optimizers.Adam(0.1))
history = model.fit(y, f, epochs=50, verbose=0)
print(model.predict([0,1]))
Но в ответ я получаю ошибку:
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-12-e89ec9735276> in <module>
22 model.compile(loss='mean_squared_error', optimizer=keras.optimizers.Adam(0.1))
23
---> 24 history = model.fit(y, f, epochs=50, verbose=0)
25 print("Обучение завершено")
26
1 frames
/usr/local/lib/python3.8/dist-packages/keras/engine/training.py in tf__train_function(iterator)
13 try:
14 do_return = True
---> 15 retval_ = ag__.converted_call(ag__.ld(step_function), (ag__.ld(self), ag__.ld(iterator)), None, fscope)
16 except:
17 do_return = False
ValueError: in user code:
File "/usr/local/lib/python3.8/dist-packages/keras/engine/training.py", line 1051, in train_function *
return step_function(self, iterator)
File "/usr/local/lib/python3.8/dist-packages/keras/engine/training.py", line 1040, in step_function **
outputs = model.distribute_strategy.run(run_step, args=(data,))
File "/usr/local/lib/python3.8/dist-packages/keras/engine/training.py", line 1030, in run_step **
outputs = model.train_step(data)
File "/usr/local/lib/python3.8/dist-packages/keras/engine/training.py", line 889, in train_step
y_pred = self(x, training=True)
File "/usr/local/lib/python3.8/dist-packages/keras/utils/traceback_utils.py", line 67, in error_handler
raise e.with_traceback(filtered_tb) from None
File "/usr/local/lib/python3.8/dist-packages/keras/engine/input_spec.py", line 264, in assert_input_compatibility
raise ValueError(f'Input {input_index} of layer "{layer_name}" is '
ValueError: Input 0 of layer "sequential_10" is incompatible with the layer: expected shape=(None, 1, 2), found shape=(None, 2)
С массивом 1xN всё прекрасно работает, но как передать массив с двумя и более столбцами?
Источник: Stack Overflow на русском