метод разреженного тензора.shape возвращает тензорный объект, который, как представляется, бесполезен для извлечения фактической формы разреженного тензора, не прибегая к функции запуска.форма разреженного тензора без вызова run()
Для того, чтобы уточнить, что я имею в виду, сначала рассмотрим разреженный тензор:
а = tf.SparseTensor (индексы = [[0, 0, 0], [1, 2, 1]], значения = [1,0 + 2j, 2,0], форма = [3, 4, 2])
a.shape возвращается:
tf.Tensor 'SparseTensor_1/форма: 0' = форма (3,) DTYPE = int64
Это бесполезно.
Теперь рассмотрим плотный тензор:
а = tf.constant (np.random.normal (0,0, 1,0, (4, 4)) astype (DTYPE = np.complex128).)
a.get_shape() возвращает: TensorShape ([Размер (4), Dimension (4)])
я могу использовать этот выход и бросить его в список или кортеж целых чисел никогда не вызывая бег(). Тем не менее, я не могу сделать то же самое для разреженного тензора, если только сначала не преобразовать разреженный тензор в плотный (который еще не реализован для сложного разреженного тензора), а затем вызвать метод get_shape() на нем, но это своего рода избыточность, побеждает цель использования разреженного тензора в первую очередь, а также приводит к ошибке по дороге, если входной разреженный тензор является сложным.
Есть ли способ получить форму разреженного тензора без вызова run() или сначала преобразовать его в плотный тензор?
привет КЭД, есть ли у вас пример, где вы хотите использовать форму вашего разреженного тензора? Я полагаю, что это для определения оператора или переменной Tensorflow? – Corentin