ismukhin opened a new issue, #16187:
URL: https://github.com/apache/tvm/issues/16187

   Good afternoon I'm having a problem when running ```VirtualMachine.run()```. 
I'm trying to run the ```ssd_mobilenetv1_coco``` model from the official tf 
repository (tf1 model) 
https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/tf1_detection_zoo.md
   
   ### Expected behavior
   
   Array of the form [BOXES_NAME, CLASSES_NAME, SCORES_NAME, 
NUM_DETECTIONS_NAME]
   
   ### Actual behavior
   Reading an image in float32 format:
   ```Check failed: ret == 0 (-1 vs. 0) : Assert fail: 
(((tir.tvm_struct_get(arg.p0, 0, 5) == (uint8)1) && (tir.tvm_struct_get(arg.p0, 
0, 6) == (uint8)8)) && (tir.tvm_struct_get(arg.p0, 0, 7) == (uint16)1)), 
arg.p0.dtype is expected to be uint8```
   I also tried to read an image in uint8 format and got the following error:
   ```Check failed: ret == 0 (-1 vs. 0) : Assert fail: (int32(arg.p0.shape[1]) 
== 300), Argument arg.p0.shape[1] has an unsatisfied constraint: (300 == 
int32(arg.p0.shape[1]))```
   
   ### Environment
   
   ```Python 3.7.12```
   ```tvm==0.11.1```(This error also occurs on 0.14dev)
   ```tensorflow 1.14.0```
   ```opencv-python  4.8.1.78```
   
   ### Steps to reproduce
   
   ```
   import numpy as np
   import tvm
   import cv2
   from tvm import te
   import tvm.relay as relay
   from tvm.contrib.download import download_testdata
   
   from tvm.runtime import vm as _vm
   from tvm.relay import vm as rly_vm
   import tensorflow as tf
   import tvm.relay.testing.tf as tf_testing
   import tensorflow as tf
   
   from tvm.runtime import vm as _vm
   from tvm.relay import vm as rly_vm
   
   model_path = 'ssd_mobilenet_v1_coco_2018_01_28/frozen_inference_graph.pb'
   with tf.gfile.GFile(model_path, "rb") as f:
       graph_def = tf.GraphDef()
       graph_def.ParseFromString(f.read())
       graph = tf.import_graph_def(graph_def, name="")
       # Call the utility to import the graph definition into default graph.
       graph_def = tf_testing.ProcessGraphDefParam(graph_def)
   BOXES_NAME = 'detection_boxes'
   CLASSES_NAME = 'detection_classes'
   SCORES_NAME = 'detection_scores'
   NUM_DETECTIONS_NAME = 'num_detections'
   out_names = [BOXES_NAME, CLASSES_NAME, SCORES_NAME, NUM_DETECTIONS_NAME]
   
   input_name = "image_tensor"
   input_shape = (1, 300, 300, 3)
   mod, params = relay.frontend.from_tensorflow(
       graph_def, outputs=out_names, shape={input_name: input_shape}
   )
   
   target = tvm.target.Target("llvm")
   dev = tvm.cpu(0)
   with tvm.transform.PassContext(opt_level=1, disabled_pass=["AlterOpLayout"]):
       executable = rly_vm.compile(mod, target=target, params=params)
   des_vm = _vm.VirtualMachine(executable, dev)
   
   img = cv2.imread('../../img/apple.JPEG').astype("float32")
   img = cv2.resize(img, (300, 300))
   img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
   img = np.transpose(img, [2, 0, 1])
   img = np.expand_dims(img, axis=0)
   des_vm.run(img)
   ```
   I also tried running it like this:
   ```
   data = {'image_tensor': np.expand_dims(img_data, axis=0)}
   des_vm.set_input('main', **data)
   ```
   P.S. I use ```TensorFlow``` version < 2, because on versions greater than 2 
the ```relay.frontend.from_tensorflow(...)``` function crashes.
   ### Triage
   
   Please refer to the list of label tags 
[here](https://github.com/apache/tvm/wiki/Issue-Triage-Labels) to find the 
relevant tags and add them below in a bullet format (example below).
   
   * needs-triage
   * flow:vm
   * frontend:tensorflow
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to