When doing parse_graph_io on a graph that outputs a tensor with dynamic shapes, extract_var_range_info(node.meta["val"]) fails because tensor.shape[0] in opt_val = int(tensor.shape[0].node.shape_env.get(expr) is an unbacked SymInt without an actual value attached.
This sort of makes sense, so I'm not sure if it's a bug or a non-feature.
Anyway, (I think) another possible source to get a value for that unbacked symint is to use tensor.shape[0].node.shape_env.dim_constraints._static_results which returns {"L['x'].size()[0] == 10"}.
Bug Description
When doing
parse_graph_io
on a graph that outputs a tensor with dynamic shapes,extract_var_range_info(node.meta["val"])
fails becausetensor.shape[0]
inopt_val = int(tensor.shape[0].node.shape_env.get(expr)
is an unbacked SymInt without an actual value attached.This sort of makes sense, so I'm not sure if it's a bug or a non-feature.
Anyway, (I think) another possible source to get a value for that unbacked symint is to use
tensor.shape[0].node.shape_env.dim_constraints._static_results
which returns{"L['x'].size()[0] == 10"}
.To Reproduce
MRE and logs in this gist.
Expected behavior
Not sure.
Environment
conda
,pip
,libtorch
, source): pip