Tensorflow Matmul, как бороться с каналом = нет - PullRequest
0 голосов
/ 10 ноября 2018

Я пытаюсь сделать matmul из двух тензоров, один - [None, 4, 256], а другой - его транспонирование (я использую tf.transpose и получил тензор [256, 4, None]). Ожидаемый результат - тензор [4, 4]. Когда я использую matmul, он возвращает ошибку. Мне интересно, как я могу получить ожидаемый результат? Спасибо!

#inputs: [None, 4, 256]
inputs_transpose = tf.transpose(inputs, perm = [0, 2, 1]) #[None, 256, 4]
temp_weights = tf.matmul(inputs, inputs_transpose) #[4, 4]expected

1 Ответ

0 голосов
/ 10 ноября 2018

С Документы Tensowflow

"Примечание. Эта функция отличается от поведения Numpy по умолчанию для типов с плавающей запятой и строковых типов, когда в списке Python или скаляре присутствует None. Вместо преобразования значений None в молчание будет выдана ошибка."

Tensowflow не принимает значения None при создании тензоров. Я попытался воссоздать настройку, установленную в моей системе, и получил это сообщение об ошибке:

TypeError: Failed to convert object of type <class 'list'> to Tensor. Contents: [None, 4, 256]. Consider casting elements to a supported type.

Вам нужно явно обработать None, заменив его на 0, прежде чем пытаться использовать список python.

...