sliceColumnGPU function

GPUTensor<Matrix> sliceColumnGPU(
  1. GPUTensor<Matrix> input,
  2. int startCol,
  3. int endCol,
  4. CommandBuffer tape,
)

///////////////////////////////// Tensor Manipulations(700-799) /// /////////////////////////////////

Implementation

GPUTensor<Matrix> sliceColumnGPU(GPUTensor<Matrix> input, int startCol, int endCol, CommandBuffer tape) {
  int rows = input.shape[0];
  int outCols = endCol - startCol;

  GPUTensor<Matrix> out = GPUTensor<Matrix>.empty([rows, outCols]);

  tape.putInt(OP_SLICE_COLUMN);
  tape.putString(input.id);
  tape.putString(out.id);
  tape.putInt(startCol);
  tape.putInt(endCol);

  out.creator = GPUNode(
    [input],
        (CommandBuffer bTape) {
      bTape.putInt(OP_SLICE_COLUMN_BACKWARD);
      bTape.putString('${out.id}_grad');
      bTape.putString('${input.id}_grad');
      bTape.putInt(startCol);
      bTape.putInt(endCol);
    },
    opName: 'slice_column',
    cost: rows * outCols,
  );

  return out;
}