当前位置: 首页>>代码示例>>TypeScript>>正文


TypeScript tfjs-core.tidy函数代码示例

本文整理汇总了TypeScript中@tensorflow/tfjs-core.tidy函数的典型用法代码示例。如果您正苦于以下问题:TypeScript tidy函数的具体用法?TypeScript tidy怎么用?TypeScript tidy使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了tidy函数的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。

示例1: extractFaceTensors

export async function extractFaceTensors(
  input: tf.Tensor | NetInput | TNetInput,
  detections: Array<FaceDetection|Rect>
): Promise<tf.Tensor4D[]> {

  const image = input instanceof tf.Tensor
    ? input
    : await toNetInput(input)

  return tf.tidy(() => {
    const imgTensor = getImageTensor(image)

    // TODO handle batches
    const [batchSize, imgHeight, imgWidth, numChannels] = imgTensor.shape

    const boxes = detections.map(
      det => det instanceof FaceDetection
        ? det.forSize(imgWidth, imgHeight).getBox().floor()
        : det
    )
    const faceTensors = boxes.map(({ x, y, width, height }) =>
      tf.slice(imgTensor, [0, y, x, 0], [1, height, width, numChannels])
    )

    return faceTensors
  })
}
开发者ID:BakirDiyar,项目名称:face-api.js,代码行数:27,代码来源:extractFaceTensors.ts

示例2: mobileNetV1

export function mobileNetV1(x: tf.Tensor4D, params: MobileNetV1.Params) {
  return tf.tidy(() => {

    let conv11 = null
    let out = pointwiseConvLayer(x, params.conv_0_params, [2, 2])

    params.conv_pair_params.forEach((param, i) => {
      const layerIdx = i + 1
      const depthwiseConvStrides = getStridesForLayerIdx(layerIdx)
      out = depthwiseConvLayer(out, param.depthwise_conv_params, depthwiseConvStrides)
      out = pointwiseConvLayer(out, param.pointwise_conv_params, [1, 1])
      if (layerIdx === 11) {
        conv11 = out
      }
    })

    if (conv11 === null) {
      throw new Error('mobileNetV1 - output of conv layer 11 is null')
    }

    return {
      out,
      conv11: conv11 as any
    }

  })
}
开发者ID:BakirDiyar,项目名称:face-api.js,代码行数:27,代码来源:mobileNetV1.ts

示例3: resizeLayer

export function resizeLayer(x: tf.Tensor4D) {
  return tf.tidy(() => {

    const resized = tf.image.resizeBilinear(x, resizedImageSize, false)
    return tf.sub(tf.mul(resized, weight), bias)

  })
}
开发者ID:BakirDiyar,项目名称:face-api.js,代码行数:8,代码来源:resizeLayer.ts

示例4: forward

  public async forward(input: tf.Tensor | NetInput | TNetInput) {
    const netInput = input instanceof tf.Tensor
      ? input
      : await toNetInput(input)

    return tf.tidy(() =>
      this.forwardTensor(padToSquare(getImageTensor(netInput)))
    )
  }
开发者ID:BakirDiyar,项目名称:face-api.js,代码行数:9,代码来源:FaceDetectionNet.ts

示例5: normalize

export function normalize(x: tf.Tensor4D): tf.Tensor4D {
  return tf.tidy(() => {
    const avg_r = tf.fill([1, 150, 150, 1], 122.782);
    const avg_g = tf.fill([1, 150, 150, 1], 117.001);
    const avg_b = tf.fill([1, 150, 150, 1], 104.298);
    const avg_rgb = tf.concat([avg_r, avg_g, avg_b], 3)

    return tf.div(tf.sub(x, avg_rgb), tf.scalar(256))
  })
}
开发者ID:BakirDiyar,项目名称:face-api.js,代码行数:10,代码来源:normalize.ts

示例6: fullyConnectedLayer

export function fullyConnectedLayer(
  x: tf.Tensor2D,
  params: FCParams
): tf.Tensor2D {
  return tf.tidy(() =>
    tf.add(
      tf.matMul(x, params.weights),
      params.bias
    )
  )
}
开发者ID:BakirDiyar,项目名称:face-api.js,代码行数:11,代码来源:fullyConnectedLayer.ts

示例7: detectLandmarks

  public async detectLandmarks(input: tf.Tensor | NetInput | TNetInput) {
    if (!this._params) {
      throw new Error('FaceLandmarkNet - load model before inference')
    }

    const netInput = input instanceof tf.Tensor
      ? input
      : await toNetInput(input)

    let imageDimensions: Dimensions | undefined

    const outTensor = tf.tidy(() => {
      const params = this._params

      let imgTensor = getImageTensor(netInput)
      const [height, width] = imgTensor.shape.slice(1)
      imageDimensions = { width, height }


      // work with 128 x 128 sized face images
      if (imgTensor.shape[1] !== 128 || imgTensor.shape[2] !== 128) {
        imgTensor = tf.image.resizeBilinear(imgTensor, [128, 128])
      }

      let out = conv(imgTensor, params.conv0_params)
      out = maxPool(out)
      out = conv(out, params.conv1_params)
      out = conv(out, params.conv2_params)
      out = maxPool(out)
      out = conv(out, params.conv3_params)
      out = conv(out, params.conv4_params)
      out = maxPool(out)
      out = conv(out, params.conv5_params)
      out = conv(out, params.conv6_params)
      out = maxPool(out, [1, 1])
      out = conv(out, params.conv7_params)
      const fc0 = tf.relu(fullyConnectedLayer(out.as2D(out.shape[0], -1), params.fc0_params))
      const fc1 = fullyConnectedLayer(fc0, params.fc1_params)

      return fc1
    })

    const faceLandmarksArray = Array.from(await outTensor.data())
    outTensor.dispose()

    const xCoords = faceLandmarksArray.filter((c, i) => (i - 1) % 2)
    const yCoords = faceLandmarksArray.filter((c, i) => i % 2)

    return new FaceLandmarks(
      Array(68).fill(0).map((_, i) => new Point(xCoords[i], yCoords[i])),
      imageDimensions as Dimensions
    )
  }
开发者ID:BakirDiyar,项目名称:face-api.js,代码行数:53,代码来源:FaceLandmarkNet.ts

示例8: it

    it('is padded to square by 2 columns', () => tf.tidy(() => {
      const imgTensor = tf.tensor4d(Array(24).fill(1), [1, 4, 2, 3])
      const result = padToSquare(imgTensor)

      expect(result.shape).toEqual([1, 4, 4, 3])

      const paddedCols = tf.unstack(result, 2)
      expect(paddedCols.length).toEqual(4)
      expect(paddedCols[0].dataSync()).toEqual(ones(12))
      expect(paddedCols[1].dataSync()).toEqual(ones(12))
      expect(paddedCols[2].dataSync()).toEqual(zeros(12))
      expect(paddedCols[3].dataSync()).toEqual(zeros(12))
    }))
开发者ID:BakirDiyar,项目名称:face-api.js,代码行数:13,代码来源:padToSquare.test.ts

示例9: pointwiseConvLayer

export function pointwiseConvLayer(
  x: tf.Tensor4D,
  params: PointwiseConvParams,
  strides: [number, number]
) {
  return tf.tidy(() => {

    let out = tf.conv2d(x, params.filters, strides, 'same')
    out = tf.add(out, params.batch_norm_offset)
    return tf.clipByValue(out, 0, 6)

  })
}
开发者ID:BakirDiyar,项目名称:face-api.js,代码行数:13,代码来源:pointwiseConvLayer.ts


注:本文中的@tensorflow/tfjs-core.tidy函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。