TFLearn не может правильно указать значение Y - PullRequest
0 голосов
/ 12 мая 2019

Я пытаюсь создать ИИ, чтобы предсказать исход матчей FRC с использованием тензорного потока и TFLearn.

Вот соответствующий код:

x = np.load("FRCPrediction/matchData.npz")["x"]
y = np.load("FRCPrediction/matchData.npz")["y"]

def buildModel():
    net = tflearn.input_data(shape = [None, 36])
    net = tflearn.fully_connected(net, 64)
    net = tflearn.dropout(net, 0.5)
    net = tflearn.fully_connected(net, 128, activation = "linear")
    net = tflearn.regression(net, optimizer='adam', loss='categorical_crossentropy')
    net = tflearn.fully_connected(net, 1, activation = "linear")
    model = tflearn.DNN(net)
    return model

model = buildModel()

BATCHSIZE = 128

model.fit(x, y, batch_size = BATCHSIZE)

Не удается с ошибкой:

---------------------------------
Run id: 67BLHP
Log directory: /tmp/tflearn_logs/
---------------------------------
Training samples: 36024
Validation samples: 0
--
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-7-1b097e6d2ec5> in <module>()
      1 for i in range(EPOCHS):
----> 2     history = model.fit(x, y, batch_size = BATCHSIZE)
      3     print(history)

4 frames
/usr/local/lib/python3.6/dist-packages/tensorflow/python/client/session.py in _run(self, handle, fetches, feed_dict, options, run_metadata)
   1126                              'which has shape %r' %
   1127                              (np_val.shape, subfeed_t.name,
-> 1128                               str(subfeed_t.get_shape())))
   1129           if not self.graph.is_feedable(subfeed_t):
   1130             raise ValueError('Tensor %s may not be fed.' % subfeed_t)

ValueError: Cannot feed value of shape (128,) for Tensor 'TargetsData/Y:0', which has shape '(?, 128)'

Любая помощь очень ценится.

1 Ответ

0 голосов
/ 12 мая 2019

Для вычисления градиентов для всех переменных оптимизатор должен идти после всех уровней с высокоуровневым API TFlearn, немного присущим стилю кодирования из Tensorflow (с низкоуровневым tf мы это делаем). Doc хорошо показывает, как это работает, может быть, вам стоит взглянуть или поискать другие учебники по этому API.Чтобы ответить на ваш вопрос, пожалуйста, попробуйте:

import tflearn
import numpy as np

x = np.ones((1000, 36))
y = np.zeros((1000, 1))

def buildModel():
    net = tflearn.input_data(shape=[None, 36])
    net = tflearn.fully_connected(net, 64)
    net = tflearn.dropout(net, 0.5)
    net = tflearn.fully_connected(net, 128, activation="linear")
    net = tflearn.fully_connected(net, 1, activation="linear")
    net = tflearn.regression(net, optimizer='adam', loss='categorical_crossentropy')
    model = tflearn.DNN(net)
    return model

model = buildModel()

BATCHSIZE = 128

model.fit(x, y, batch_size=BATCHSIZE)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...