Tensorflow: OneHot-кодирование с переменной длиной - PullRequest
0 голосов
/ 23 сентября 2019

Мне нужно кодировать несколько позиций с помощью TensorFlow.

Однако длина входных последовательностей (и, следовательно, depth-argument в tf.one_hot) равна None, поскольку я работаю с входами переменного размера.

При этом выдается следующая ошибка:

"ValueError: попытка преобразовать 'глубину' в тензор и ошибка. Ошибка: никакие значения не поддерживаются.".

Есть ли обходной путь для этого?

Я уже пытался установить глубину на правильную длину последовательности перед каждым отдельным вызовом (через переменную, которая имеет произвольное значение инициализации) для данной последовательности, нопоскольку вычислительный график уже построен, изменения не вступают в силу, и глубина остается в значении инициализации.

1 Ответ

0 голосов
/ 24 сентября 2019

Вот как я решил проблему: проблема заключалась в том, что я использовал чужой код, а аргумент depth в tf.one_hot был получен из someTensor.get_shape().as_list()[1].Проблема здесь в том, что если форма someTensor неизвестна, аргумент представляет собой Python- None, который не является допустимым аргументом для tf.one_hot.Тем не менее, использование tf.shape(someTensor)[1] решило эту проблему, поскольку оно возвращает измерение с неизвестной формой вместо Python- None.Размер с неизвестной формой является действительным depth -аргументом для tf.one_hot.

...