_createIndexMap(glTextureShape, indicesForReshaped) {
    if (this.normAxisIndexMap) {
      return
    }

    const _normAxisIndexMap = new Tensor([], this.inputShape, { type: Int32Array })
    this.normAxisIndexMap = new Tensor([], glTextureShape, { type: Int32Array })

    const slice = Array(this.inputShape.length).fill(null)
    for (let i = 0; i < this.inputShape[this.axis]; i++) {
      slice[this.axis] = i
      ops.assigns(_normAxisIndexMap.tensor.pick(...slice), i)
    }

    if (indicesForReshaped) {
      for (let i = 0; i < indicesForReshaped.data.length; i++) {
        this.normAxisIndexMap.tensor.data[indicesForReshaped.data[i]] = _normAxisIndexMap.tensor.data[i]
      }
    } else {
      this.normAxisIndexMap = _normAxisIndexMap
    }

    this.normAxisIndexMap.createGLTexture({ type: '2d', format: 'int', supportsTextureFragments: true })
  }
Pre-compute index maps for GPU batchnorm function

@param {number[]} glTextureShape
@param {Object} indicesForReshaped