_im2col(x) {
    const [inputRows, inputCols, inputChannels] = x.tensor.shape

    if (!this.imColsMat) {
      this.imColsMat = new Tensor([], [inputRows * inputCols, inputChannels])
    }

    const channelRaveled = new Tensor([], [inputRows * inputCols])
    const channel = new Tensor([], [inputRows, inputCols])
    for (let c = 0; c < inputChannels; c++) {
      ops.assign(channel.tensor, x.tensor.pick(null, null, c))
      channelRaveled.replaceTensorData(channel.tensor.data)
      ops.assign(this.imColsMat.tensor.pick(null, c), channelRaveled.tensor)
    }

    return this.imColsMat
  }
Convert input image to column matrix, along channels axis

shape: [inputRows, inputCols, inputChannels] -> [inputRows * inputCols, inputChannels]

@param {Tensor} x
@returns {Tensor}