Я хотел бы построить нейронную сеть, которая принимает простой одномерный входной вектор. Однако следующий код дает мне ошибку:
import numpy as np
from keras.models import Model
from keras.layers import Input, Dense
input_ = Input((311,))
x = Dense(200)(input_)
output = Dense(100)(x)
nn = Model([input_], [output])
nn.compile('SGD', loss='mean_squared_error')
nn.predict(np.zeros(311))
ValueError: Ошибка при проверке: ожидалось, что input_1 будет иметь форму (311,), но получил массив с формой (1,)
Это странно для меня, потому что print(np.zeros(311).shape)
печатает (311,)
, как и ожидалось.
Замена np.zeros(311)
на np.zeros((311,))
ничего не меняет, а замена Input((311,))
на Input(311)
не работает, так как Input
ожидает кортеж формы:
TypeError: объект 'int' не является итерируемым
Как правильно предоставить одномерный вектор модели keras?
predict
должно быть пакетное измерение, т. е.predict(np.zeros(shape=(1, 311)))
должно работать. - person IonicSolutions   schedule 15.07.2018