Scott McKenzie
Scott McKenzie

Reputation: 16242

How do I resolve an InvalidArgumentError in Classifier model?

New to TensorFlow, so apologies for newbie question.

Following this tutorial but instead of using image data I am using numerical data.

Load the dataset:

train_dataset_url = "xxx.csv"
train_dataset_fp = tf.keras.utils.get_file(
  fname=os.path.basename(train_dataset_url),
  origin=train_dataset_url)

Make training dataset:

batch_size = 32

train_dataset = tf.contrib.data.make_csv_dataset(
    train_dataset_fp,
    batch_size, 
    column_names=column_names,
    label_name=label_name,
    num_epochs=1)

Train classified model using:

model = tf.keras.Sequential([ tf.keras.layers.Dense(10, activation=tf.nn.relu, input_shape=(1,)), tf.keras.layers.Dense(10, activation=tf.nn.relu), tf.keras.layers.Dense(4) ])

But when I "test" the model with the same inputs:

predictions = model(features)

I receive the error:

InvalidArgumentError: cannot compute MatMul as input #0(zero-based) was expected to be a float tensor but is a int32 tensor [Op:MatMul]

It's possible I have missed something fundamental. I feel like I need to specify a type somewhere.

Upvotes: 0

Views: 677

Answers (1)

user9477964
user9477964

Reputation:

The data which you feed in the model is a numpy array according to my assumption . The error states that the model requires a tensor with dtype=float32 or float64. You are providing a int32 numpy array. So, wherever you create a numpy array, just mention the dtype as float32.

Upvotes: 1

Related Questions