Попытка объединить строку с матрицей в тензорном потокеPython

Программы на Python
Anonymous
Попытка объединить строку с матрицей в тензорном потоке

Сообщение Anonymous »

У меня есть данные временных рядов в 4 каналах, и я пытаюсь сгенерировать последовательность длиной N, используя мою модель. Я определяю N на основе входных данных, переданных в мою функцию генерации последовательности:

Код: Выделить всё

def generate_sequence(self, input_data):
predicted_sequence = tf.convert_to_tensor(input_data, dtype=tf.float32)
data_shape = predicted_sequence.shape
for i in range(len(predicted_sequence)):
model_input = tf.reshape(predicted_sequence, shape=data_shape)
result = self.model(model_input)
predicted_sequence = tf.concat([predicted_sequence[:, 1:, :], result], 0)
return predicted_sequence
Это вызывает следующую ошибку:

Код: Выделить всё

ConcatOp : Dimension 1 in both shapes must be equal: shape[0] = [1,1439,4] vs. shape[1] = [1,1,4] [Op:ConcatV2] name: concat
Похоже, это говорит о том, что я использую неправильный метод для генерации моей последовательности (я наивно написал эту функцию, предполагая, что тензоры тензорного потока будут вести себя как массивы numpy). В моем цикле я начинаю с входных данных:

Код: Выделить всё

[[[a1, b1, c1, d1]
[a2, b2, c2, d2]
...
[aN, bN, cN, dN]]
и я создаю прогноз, используя свою модель:

Код: Выделить всё

[[aP1, bP1, cP1, dP1]]
На этом этапе я намерен удалить первую запись во входных данных, поскольку это самая старая строка данных, и добавить прогнозируемые данные в конец:

Код: Выделить всё

[[[a2, b2, c2, b2]
[a3, b3, c3, d3]
...
[aN, bN, cN, dN]
[aP1, bP1, cP1, dP1]]]
Здесь цикл выполняется до тех пор, пока вся последовательность не будет содержать прогнозы для следующих N строк данных.
Есть ли другой метод тензорного потока, который лучше подходит для этого или я что-то упускаю в методе tf.concat?
Буду очень признателен за любую помощь.

Подробнее здесь: https://stackoverflow.com/questions/783 ... tensorflow

Вернуться в «Python»