Ошибка при проверке ввода: ожидалось, что dens_1_input будет иметь форму (70,), но получил массив с формой (1,) - PullRequest
0 голосов
/ 06 июня 2019

Я пытаюсь использовать уже обученную нейронную сеть, но всегда сталкиваюсь с этой ошибкой. Мой входной слой имеет размер 70 числовых элементов, и поэтому входные данные xData из «last.cvs» имеют такой же размер:

[0.36 0.44 0.7  0.82 0.72 0.06 0.08 0.32 0.84 0.62 0.08 0.42 0.12 0.08
 0.6  0.48 0.52 0.08 0.28 0.2  0.18 0.4  0.68 0.98 0.32 0.06 0.2  0.04
 0.76 0.62 0.48 0.8  0.38 0.2  0.14 0.5  0.06 0.64 0.2  0.86 0.06 0.02
 0.98 0.7  0.12 0.78 0.24 0.18 0.08 0.04 0.18 0.72 0.94 0.46 0.18 0.04
 0.48 0.7  0.56 0.96 0.5  0.16 0.08 0.12 0.9  0.94 0.76 0.58 0.04 0.06]

Сама моя программа выглядит так:

import keras
from keras.models import load_model
from numpy import loadtxt, savetxt, reshape
import datetime as dt
import numpy as np
import os

xData= loadtxt('../input/last.csv')
print(xData)

model = load_model("model.dat")
prediction=model.predict(np.array(xData))
print(prediction);

Итак ... есть идеи, почему он считает, что размер ввода равен 1, а не 70?

1 Ответ

1 голос
/ 06 июня 2019

В керасе первое измерение тензора, подаваемого в модель, должно быть размером партии: (batch_size, dim), поэтому здесь ваша модель понимает, что вы загружаете 70 элементов размера один.

Попробуйте взять ваш входной вектор и расширить его затемнение, вот так:

xData = np.expand_dims(xData, 0)

А затем подайте его в вашу сеть

...