You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A = relax.Var("A", (128, 128), relax.DynTensorType(2, "float32"))
B = relax.Var("B", (128, 128), relax.DynTensorType(2, "float32"))
Results in:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
Cell In[17], line 1
----> 1 A = relax.Var("A", (128, 128), relax.DynTensorType(2, "float32"))
2 B = relax.Var("B", (128, 128), relax.DynTensorType(2, "float32"))
File ~/opt/anaconda3/envs/mlcai/lib/python3.9/site-packages/tvm/relax/expr.py:416, in Var.__init__(self, name_hint, struct_info, span)
414 struct_info = tvm.runtime.convert_to_object(struct_info)
415 if not isinstance(struct_info, StructInfo):
--> 416 raise TypeError(
417 "struct_info needs to be an instance of StructInfo. "
418 "If you attempt to pass in shape, "
419 "use relax.TensorStructInfo(shape, dtype)."
420 )
421 self.__init_handle_by_constructor__(
422 _ffi_api.Var if isinstance(name_hint, str) else _ffi_api.VarFromId, # type: ignore
423 name_hint,
424 struct_info,
425 span,
426 )
TypeError: struct_info needs to be an instance of StructInfo. If you attempt to pass in shape, use relax.TensorStructInfo(shape, dtype).
Modifying the original block to the block below works:
A = relax.Var("A", relax.TensorStructInfo([128, 128], "float32"))
B = relax.Var("x", relax.TensorStructInfo([128, 128], "float32"))
But I can't tell from following the code on TVM's Unity branch if this change is consistent with the original intent of using relax.DynTensorType.
Likewise, under Create Map Function, from_fx contains the line:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
Cell In[27], line 10
7 A = node_map[node.args[0]]
8 return bb.emit_te(te_relu, A)
---> 10 MyModule = from_fx(
11 fx_module,
12 input_shapes = [(1, 128)],
13 call_function_map = {
14 torch.matmul: map_matmul,
15 torch.relu: map_relu,
16 },
17 call_module_map={},
18 )
20 MyModule.show()
Cell In[26], line 33, in from_fx(fx_mod, input_shapes, call_function_map, call_module_map)
31 shape = input_shapes[input_index]
32 input_index += 1
---> 33 input_var = relax.Var(
34 node.target, shape, relax.DynTensorType(len(shape), "float32")
35 )
36 fn_inputs.append(input_var)
37 node_map[node] = input_var
File ~/opt/anaconda3/envs/mlcai/lib/python3.9/site-packages/tvm/relax/expr.py:416, in Var.__init__(self, name_hint, struct_info, span)
414 struct_info = tvm.runtime.convert_to_object(struct_info)
415 if not isinstance(struct_info, StructInfo):
--> 416 raise TypeError(
417 "struct_info needs to be an instance of StructInfo. "
418 "If you attempt to pass in shape, "
419 "use relax.TensorStructInfo(shape, dtype)."
420 )
421 self.__init_handle_by_constructor__(
422 _ffi_api.Var if isinstance(name_hint, str) else _ffi_api.VarFromId, # type: ignore
423 name_hint,
424 struct_info,
425 span,
426 )
TypeError: struct_info needs to be an instance of StructInfo. If you attempt to pass in shape, use relax.TensorStructInfo(shape, dtype).
Here, a similar modification seems to fix the problem (but I'm still concerned that I don't understand if we're losing something by giving up on relax.DynTensorType):
Thank you for an excellent course!
Running this block from notebook 6:
Results in:
Modifying the original block to the block below works:
But I can't tell from following the code on TVM's Unity branch if this change is consistent with the original intent of using
relax.DynTensorType
.Likewise, under Create Map Function,
from_fx
contains the line:Which throws:
Here, a similar modification seems to fix the problem (but I'm still concerned that I don't understand if we're losing something by giving up on
relax.DynTensorType
):Thanks in advance for your assistance.
The text was updated successfully, but these errors were encountered: