Умножение разреженных тензоров с самим собой или с плотными тензорами, похоже, не работает в TensorFlow. Следующий пример
from __future__ import print_function
import tensorflow as tf
x = tf.constant([[1.0,2.0],
[3.0,4.0]])
y = tf.SparseTensor(indices=[[0,0],[1,1]], values=[1.0,1.0], shape=[2,2])
z = tf.matmul(x,y)
sess = tf.Session()
sess.run(tf.initialize_all_variables())
print(sess.run([x, y, z]))
с сообщением об ошибке
TypeError: Input 'b' of 'MatMul' Op has type string that does not match type
float32 of argument 'a'
Оба тензора имеют значения типа float32, как видно, оценивая их без умножения op. Умножение y с собой возвращает аналогичное сообщение об ошибке. Мультипликация x с собой отлично работает.