Использование Keras fit_generator дает ошибку неправильной формы - PullRequest
0 голосов
/ 23 сентября 2018

Я получаю ошибку на fit_generator .Мой генератор возвращает следующее:

yield(row.values, label)

Например, используя его:

myg = generate_array()
for i in myg:
    print((i[0].shape))
    print(i)
    break

(9008,)
(array([0.116516, 0.22419 , 0.03373 , ..., 0.      , 0.      , 0.      ]), 0)

Но следующее выдает исключение:

model = Sequential()
model.add(Dense(84, activation='relu', input_dim=9008))

ValueError: Error when checking input: expected dense_1_input to have shape 
(9008,) but got array with shape (1,)

Есть идеи?

1 Ответ

0 голосов
/ 24 сентября 2018

Как предполагает Кота Мори: генератор данных должен предоставить пакет данных, а не одну выборку.См. Например: https://stanford.edu/~shervine/blog/keras-how-to-generate-data-on-the-fly

Поскольку я хочу стохастического градиентного спуска (размер партии равен единице), следующий код решил проблему:

def generate_array():
   while True:
    X = np.empty((1, 9008))
    y = np.empty((1), dtype=int)
    # Some processing
    X[0] = row
    y[0] = label
    yield(X,y)
...