прогнозировать с Keras не удается из-за неправильной настройки среды - PullRequest
0 голосов
/ 27 февраля 2019

Я не могу заставить Кераса что-то предсказать.Даже в этой минималистической модели:

from keras.models import Sequential
from keras.layers import Dense
import numpy as np

inDim = 3
outDim = 1

model = Sequential()
model.add(Dense(5, input_dim=inDim, activation='relu'))
model.add(Dense(outDim, activation='sigmoid'))
model.compile(loss='mse', optimizer='adam', metrics=['accuracy'])

test_input = np.zeros((1,inDim))
test_output = np.zeros((1,outDim))
model.fit(test_input, test_output)
prediction = model.predict(test_input)

Все идет, как и ожидалось, до последней строки:

Epoch 1/1
1/1 [==============================] - 0s 448ms/step - loss: 0.2500 - acc: 1.0000
Traceback (most recent call last):

  File "<ipython-input-24-ee244a6c7287>", line 16, in <module>
    prediction = model.predict(test_input)

  File "E:\Programme\Anaconda3\lib\site-packages\keras\engine\training.py", line 1172, in predict
    steps=steps)

  File "E:\Programme\Anaconda3\lib\site-packages\keras\engine\training_arrays.py", line 304, in predict_loop
    outs.append(np.zeros(shape, dtype=batch_out.dtype))

TypeError: data type not understood

Я пробовал снова и снова с различными комбинациями массивов и списков, но либосуществует эта TypeError или ValueError, потому что форма неправильная.Несколько ответов (например, здесь ) предлагают использовать что-то вроде

model.predict(np.array([[0,0,0]]))

Но у меня это тоже не сработало.Может ли кто-нибудь сказать мне, как это сделать правильно?

РЕДАКТИРОВАТЬ: Очевидно, что код не был проблемой, см. Ниже.

Ответы [ 3 ]

0 голосов
/ 27 февраля 2019

Оказалось, код не проблема, но с моим программным обеспечением что-то не так.После выполнения следующих шагов приведенный выше код запускается без ошибок и предупреждений:

  1. удалить anaconda
  2. установить anaconda
  3. создать новую среду
  4. требуется установкапакеты в эту среду (keras, tenorflow, spyder ...)
  5. запустить код в этой среде
0 голосов
/ 24 июля 2019

Я снова удалил и установил Anaconda Navigator, и он был исправлен.

0 голосов
/ 27 февраля 2019

Я вставил ваш код в https://colab.research.google.com, и он не дал мне ошибки.(python2)

Однако я получил предупреждение о преобразовании int в float.

Я бы попытался явно указать dtype test_input как в:

test_input = np.zeros((1,inDim), dtype=float)

С тех порпохоже на выводимое сообщение об ошибке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...