Hans Jakob
Hans Jakob

Reputation: 1

2D sparse input tensorflow

I try to use 2D sparse input with Tensorflow 2.6, a minimal example is:

input1=keras.layers.Input(shape=(3,64), sparse=True)
layer1=keras.layers.Dense(32)(input1)                  
output1=keras.layers.Dense(32)(layer1)
model = keras.Model(inputs = [input1],  outputs = [output1])
model.compile()
model.summary()

However I end up with the following error message:

TypeError: Failed to convert object of type <class 'tensorflow.python.framework.sparse_tensor.SparseTensor'> to Tensor. Contents: SparseTensor(indices=Tensor("Placeholder_1:0", shape=(None, 3), dtype=int64), values=Tensor("Placeholder:0", shape=(None,), dtype=float32), dense_shape=Tensor("PlaceholderWithDefault:0", shape=(3,), dtype=int64)). Consider casting elements to a supported type.

What am I doing wrong ? it works if I flatten the matrix.

Upvotes: 0

Views: 246

Answers (1)

user11530462
user11530462

Reputation:

Edited code:

    import tensorflow as tf
    input1 = tf.keras.layers.Input(shape=(3,), sparse=True)
    layer1 = tf.keras.layers.Dense(32)(input1)                  
    output1= tf.keras.layers.Dense(32)(layer1)
    model =  tf.keras.Model(inputs = [input1],  outputs = [output1])
    model.compile()
    model.summary()

Reference: https://colab.research.google.com/github/tensorflow/docs/blob/master/site/en/guide/sparse_tensor.ipynb#scrollTo=E8za5DK8vfo7

Upvotes: 0

Related Questions