В методе numpy
допускается любое количество позиций. Это форма функции, которая требует кортежа.
In [20]: np.arange(24).reshape(2,3,4)
Out[20]:
array([[[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]],
[[12, 13, 14, 15],
[16, 17, 18, 19],
[20, 21, 22, 23]]])
In [21]: np.reshape(np.arange(24),(2,3,4))
Out[21]:
array([[[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]],
[[12, 13, 14, 15],
[16, 17, 18, 19],
[20, 21, 22, 23]]])
Или что-то более близкое к вашему выражению
In [25]: np.array(np.ones((3,4),int)).reshape(-1,2,2,1).shape
Out[25]: (3, 2, 2, 1)
Это заставляет меня задаться вопросом о природе вашего объекта x_train
. Полное сообщение об ошибке с трассировкой также может помочь.
Действительно ли это ошибка Python / numpy, предупреждение pylint или astroid?