Изменение содержания тензора в TensorFlow
Прежде чем я продолжу, прошу прощения за мое невежество. До этого у меня был некоторый опыт программирования, но моя предыдущая интуиция подвела меня сейчас.
По сути, мне нужно расширить 1-D вектор (размер M x 1) чисел в диапазоне от 0...K до 2-D матрицы (или Tensor, размер M x K), где каждая строка представляет собой 1-D вектор (размер 1 х К), и каждый элемент равен 0, за исключением того, что индекс начального значения равен 1.
Да, это проблема мультиклассовой классификации для класса ML.
У меня была идея создать матрицу нулей правильной формы, а затем вручную присвоить индексу нужного мне элемента значение 1, но, похоже, я не могу изменить значения уже созданной переменной. Я получаю ошибку:
TypeError: 'Tensor' object does not support item assignment
Кто-нибудь может помочь с этим? Если вы чувствуете, что мой способ создания этого окончательного Tensor мог бы использовать другой подход, любой совет был бы оценен.
1 ответ
В тензорном потоке функция tf.one_hot()
это то, что вы ищете. Одна горячая кодировка - это термин, описывающий операцию, которую вы хотите реализовать. См. https://www.tensorflow.org/api_docs/python/tf/one_hot.