Как объединить 1d и 2d тензор? - PullRequest
2 голосов
/ 18 июня 2019

Я работаю над передачей входных данных в слой Conv1d, для которого мне нужно передать тензор времени (150) и тензор функции (150,15) как один тензор измерения [150,150,15], но я не могу это сделать

Я пытался использовать стековую функцию tenorflow

inp=tf.stack([features,times],axis=1)

Я ожидаю получить тензор shape[times,features]=[150,150,15].Но я получаю эту ошибку,

ValueError: Shapes must be equal rank, but are 2 and 1
    From merging shape 0 with other shapes. for 'stack' (op: 'Pack') with input shapes: [150,15], [150].

Пожалуйста, помогите !!!!

1 Ответ

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

Здесь есть две проблемы:

  1. tf.stack() ожидает тензоры с таким же рангом и формой. В вашем случае оба не совпадают. Здесь, ранг в основном количество индексов, необходимых для индексации элементов тензора. Похоже, features имеет ранг 2, а times имеет ранг 1.
  2. То, что вы пытаетесь достичь, не логично. Думайте об этом так: times имеет 150 элементов. features имеет 150 * 15 = 2250 элементов. Как вы ожидаете получить 150 * 150 * 15 = 337500 элементов, комбинируя эти два тензора, которые имеют в общей сложности 150 + 2250 = 2400 элементов? Если вы не планируете дублировать / добавлять больше элементов, это невозможно.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...