當前位置: 首頁>>代碼示例>>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;未經允許,請勿轉載。