Right now, the shape inference code only looks at `_Arg`s to match user-given `arg_shapes`, as `_Arg`s are what placeholder ops are represented during runtime. To run shape inference ahead-of-time (with static graph and input shapes), we need the shape inference code to examine `Placeholder` ops as well; thus this cl
Right now, the shape inference code only looks at `_Arg`s to match user-given `arg_shapes`, as `_Arg`s are what placeholder ops are represented during runtime. To run shape inference ahead-of-time (with static graph and input shapes), we need the shape inference code to examine `Placeholder` ops as well; thus this cl
