У меня есть модель keras transformer
, обученная с помощью tensorflow 2.7.0
и python 3.7
с входной формой: (None, 250, 3)
и вводом 2D-массива с формой: (250, 3)
(не изображение)
При составлении прогноза с помощью:
prediction = model.predict(state)
Я получаю ValueError: Input 0 of layer "model" is incompatible with the layer: expected shape=(None, 250, 3), found shape=(None, 3)
код проекта: https://github.com/МайкСифанеле/ТТ
Вот так выглядит state
:
state = np.array([[-0.07714844,-0.06640625,-0.140625],[-0.140625,-0.1650391,-0.2265625]...[0.6376953,0.6005859,0.6083984],[0.7714844,0.7441406,0.7578125]], np.float32)
@paul-shuvo Я загрузил проект
Не могли бы вы попробовать добавить новую ось, например state = np.expand_dims(state, axis=0)
, запустить код и посмотреть, работает ли он?
@paul-shuvo спасибо, сработало
Пожалуйста, обрежьте свой код, чтобы было легче найти вашу проблему. Следуйте этим рекомендациям, чтобы создать минимальный воспроизводимый пример.
Некоторое объяснение:
Для входной формы в модель, то есть (None, 250, 3)
, первая ось (представленная None
) является осью «образца», а остальные, то есть 250,3
, обозначают входное измерение. Таким образом, когда входная форма (250, 3)
, она принимает первую ось как ось «образца», а остальные — как входное измерение, то есть просто 3
. Итак, чтобы сделать его последовательным, нам нужно добавить измерение в начале, описанное ниже:
state = np.expand_dims(state, axis=0)
Затем форма state
становится (1, 250, 3)
~ (None, 250, 3)
.
Не могли бы вы поделиться каким-либо кодом?