Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Python tensorflow lite error:Cannot set tensor: Got tensor of type 1 but expected type 3 for input 88

I had converted my model to tensorflow-lite but when compiling I get the following error:

Traceback

Here is my code:

interpreter = tf.contrib.lite.Interpreter(model_path= "/mnt/ficusspain/cqli/tensorflow_models/Quantized_Models/mobilenet_v1_0.25_128_quant/mobilenet_v1_0.25_128_quant.tflite")
interpreter.allocate_tensors()

print("can we get here?")

# Get input and output tensors.
input_details = interpreter.get_input_details()
output_details = interpreter.get_output_details()

print("can we get here")

# Test model on random input data.
input_shape = input_details[0]['shape']
print(input_shape)
print(input_details[0]['index'])
print(output_details[0]['index'])

    
input_data = np.array(np.random.random_sample(input_shape), dtype=np.float32)
interpreter.set_tensor(input_details[0]['index'], input_data)

interpreter.invoke()
output_data = interpreter.get_tensor(output_details[0]['index'])
print(output_data)

like image 884
user144600 Avatar asked Sep 27 '18 06:09

user144600


1 Answers

You need change the dtype from np.float32 to np.uint8:

input_data = np.array(np.random.random_sample(input_shape), dtype=np.uint8)

You can always check with

print(interpreter.get_input_details())

which dtype is required

like image 133
Maracana Avatar answered Nov 13 '22 04:11

Maracana