📅  最后修改于: 2023-12-03 15:35:18.141000             🧑  作者: Mango
TensorFlow.js Util 是一个非常实用的 JavaScript 库,它可以帮助你使用 TensorFlow.js 更加高效、方便地在浏览器环境和 Node.js 环境下进行机器学习任务。本文将全面介绍 TensorFlow.js Util 的使用方法和功能,让你可以快速上手并运用该工具库进行机器学习开发。
你可以在 npm 上安装 TensorFlow.js Util:
npm install @tensorflow/tfjs-util
也可以使用 CDN 引用:
<html>
<head>
<script
src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs-util@3.10.0/dist/tfjs-util.min.js"
integrity="sha384-JRiJ5E5RMbVt8x/wpW2E16TDaYiYI1A7XuNEfLZV7r1rDxjvIhalBxWnedPOyNd4"
crossorigin="anonymous"
></script>
</head>
<body>
...
</body>
</html>
在进行机器学习任务时,我们常常需要对原始数据进行预处理以达到更好的效果。TensorFlow.js Util 提供了很多预处理工具,下面我们会介绍其中一些。
oneHot
方法将数值转换成 one-hot 向量,具体使用方式如下:
import { oneHot } from "@tensorflow/tfjs-util";
const labels = [0, 1, 2, 3];
const numClasses = 4;
const oneHotLabels = oneHot(labels, numClasses);
console.log(oneHotLabels);
// 输出结果:
// [[1, 0, 0, 0],
// [0, 1, 0, 0],
// [0, 0, 1, 0],
// [0, 0, 0, 1]]
其中,labels
是待转换的数值数组,numClasses
是 one-hot 向量的长度。
normalize
方法将数据规范化到 [0,1] 或 [-1,1] 的区间内,具体使用方式如下:
import { normalize } from "@tensorflow/tfjs-util";
const data = [1, 2, 3, 4, 5];
const normalizedData = normalize(data, -1, 1);
console.log(normalizedData);
// 输出结果:[-1, -0.5, 0, 0.5, 1]
const imageData = [[100, 200, 50], [150, 100, 200]];
const normalizedImageData = normalize(imageData);
console.log(normalizedImageData);
// 输出结果:[[0.39215686274509803, 0.7843137254901961, 0.19607843137254902], [0.5882352941176471, 0.39215686274509803, 0.7843137254901961]]
其中,data
是待规范化的一维数组或多维数组,min
和 max
分别是规范化的上下限。如果只传入一个参数,则默认将数据规范化到 [0,1] 区间内。
shuffle
方法将数组随机打乱,具体使用方式如下:
import { shuffle } from "@tensorflow/tfjs-util";
const data = [1, 2, 3, 4, 5];
const shuffledData = shuffle(data);
console.log(shuffledData);
// 输出结果:[4, 1, 5, 2, 3]
const dataset = [
{ x: [1, 2], y: [1] },
{ x: [2, 3], y: [2] },
{ x: [3, 4], y: [3] },
{ x: [4, 5], y: [4] },
{ x: [5, 6], y: [5] },
];
const shuffledDataset = shuffle(dataset);
console.log(shuffledDataset);
// 输出结果:
// [
// { x: [4, 5], y: [4] },
// { x: [2, 3], y: [2] },
// { x: [5, 6], y: [5] },
// { x: [3, 4], y: [3] },
// { x: [1, 2], y: [1] }
// ]
其中,data
是待打乱的一维数组或多维数组,dataset
是待打乱的数据集。
where
方法返回数组中符合条件的元素的下标,具体使用方式如下:
import { where } from "@tensorflow/tfjs-util";
const array = [1, 2, 3, 4, 3, 2, 1];
const indices = where((value) => value === 3, array);
console.log(indices);
// 输出结果:[2, 4]
const tensor = tf.tensor2d([[1, 2], [3, 4]]);
const nonzeroPositions = where((value) => value !== 0, tensor);
console.log(nonzeroPositions);
// 输出结果:[{ x: 0, y: 0 }, { x: 0, y: 1 }, { x: 1, y: 0 }, { x: 1, y: 1 }]
其中,array
是待查找的一维数组或多维数组,tensor
是待查找的 Tensor。
toTensor
方法将数据转换成 Tensor,具体使用方式如下:
import { toTensor } from "@tensorflow/tfjs-util";
const data1 = [1, 2, 3, 4, 5];
const tensor1 = toTensor(data1);
console.log(tensor1);
// 输出结果:Tensor1D [1, 2, 3, 4, 5]
const data2 = [
[1, 2],
[3, 4],
];
const tensor2 = toTensor(data2);
console.log(tensor2);
// 输出结果:Tensor2D [[1, 2], [3, 4]]
其中,data1
和 data2
是待转换的一维数组或多维数组。
TensorFlow.js Util 是一个非常实用的 JavaScript 库,它提供了很多方便的预处理工具和数据转换工具,能够极大地简化机器学习任务的开发。通过本文的介绍,相信你已经对 TensorFlow.js Util 的使用有了更深入的认识。