_w2row() {
    const [nbRow, nbCol, nbFilter, inputChannels] = this.weights['kernel'].tensor.shape

    this.wRowsMat = new Tensor([], [inputChannels, nbRow * nbCol * nbFilter])

    const channelRaveled = new Tensor([], [nbRow * nbCol * nbFilter])
    const channel = new Tensor([], [nbRow, nbCol, nbFilter])
    for (let c = 0; c < inputChannels; c++) {
      ops.assign(channel.tensor, this.weights['kernel'].tensor.pick(null, null, null, c))
      channelRaveled.replaceTensorData(channel.tensor.data)
      ops.assign(this.wRowsMat.tensor.pick(c, null), channelRaveled.tensor)
    }

    return this.wRowsMat
  }
Convert filter weights to row matrix, along channels axis

shape: [nbRow, nbCol, nbFilter, inputChannels] -> [inputChannels, nbRow * nbCol * nbFilter]

@returns {Tensor}