thanks for replay , I check col type is Tensor not  Variable, and
finally we find ：
/// WARNING: In PyTorch, there are `torch::` variants of factory functions,
/// e.g., torch::zeros for at::zeros.  These return Variables (while the
/// stock ATen functions return plain Tensors).  If you mix these functions
/// up, you WILL BE SAD.

so recreate like , it works
at::Tensor col = at::empty(your_shape, weights.options());