📜  Tensorflow.js tf.sparseReshape()函数

📅  最后修改于: 2022-05-13 01:56:39.961000             🧑  作者: Mango

Tensorflow.js tf.sparseReshape()函数

Tensorflow.js 是一个由谷歌开发的开源库,用于在浏览器或节点环境中运行机器学习模型以及深度学习神经网络。 .sparseReshape( )函数在渲染的压缩张量上具有与reshape()函数相同的语法。根据所需的新形状重新计算输入索引。

笔记:

  • 如果所述新形状的一个元素是不同的值,即-1,则计算该维度的大小,以使密集大小的计数保持不变。
  • 充其量只有所述新形状的一个分量可以是-1。
  • 这里,由所述新形状指示的压缩分量的计数应该与由所述输入形状最初指示的压缩分量的计数相同。
  • 重塑无法影响所述稀疏张量中值的顺序。
  • 如果输入张量具有秩R_in以及 N 个加载值,并且新形状具有长度R_out ,则输入索引的形状为 [ N , R_in ],输入形状的长度为R_in ,输出索引的形状为 [ N , R_out ],输出形状的长度为R_out

句法:

tf.sparseReshape(inputIndices, inputShape, newShape)

参数:此方法接受以下参数:

  • inputIndices:它是规定的二维。 N x R_in 矩阵以及稀疏张量中加载值的索引。它可以是 tf.Tensor2D、TypedArray 或 Array 类型。
  • inputShape:它是规定的一维。 R_in Tensor1D 以及输入稀疏张量的压缩形状。它可以是 tf.Tensor1D、TypedArray 或 Array 类型。
  • newShape:它是所述的一维。 R_out Tensor1D 以及所需的新压缩形状。它可以是 tf.Tensor1D、TypedArray 或 Array 类型。

返回值:返回tf.Tensor对象。

示例 1:在下面的示例中,我们调用了 sparse.sparseReshape()函数及其所有参数,并打印了没有索引和形状的输出响应。

Javascript
// Importing the tensorflow.js library
const tf = require("@tensorflow/tfjs")
  
// Calling sparse.sparseReshape() function
// with all its parameter
const res = tf.sparse.sparseReshape(
    [[1, 0, 1], [2, 0, 1], [1, 1, 2], [0, -1, 0], [-3, 1, 2]],
    [1, 2, 9], [-1, 9]);
  
// Printing output
console.log(res);


Javascript
// Importing the tensorflow.js library
const tf = require("@tensorflow/tfjs")
  
// Calling sparse.sparseReshape() function
// with all its parameter
const res = tf.sparse.sparseReshape(
    [[1.1, 0, 1.2], [2.1, 0.2, 1.3], [1.4, 2.3, 2.5], [null, -1, 0], [-3, 1, 2]],
    [1.0, 3, 3], [-1, 9]);
  
// Printing output indices
res['outputIndices'].print();
  
// Printing output shape
res['outputShape'].print();


输出:

{
  "outputIndices": {
    "kept": false,
    "isDisposedInternal": false,
    "shape": [
      5,
      2
    ],
    "dtype": "float32",
    "size": 10,
    "strides": [
      2
    ],
    "dataId": {
      "id": 82
    },
    "id": 82,
    "rankType": "2",
    "scopeId": 36
  },
  "outputShape": {
    "kept": false,
    "isDisposedInternal": false,
    "shape": [
      2
    ],
    "dtype": "float32",
    "size": 2,
    "strides": [],
    "dataId": {
      "id": 83
    },
    "id": 83,
    "rankType": "1",
    "scopeId": 36
  }
}

示例 2:在以下示例中,我们调用了 sparse.sparseReshape()函数及其所有参数,并打印了输出响应及其索引和形状。

Javascript

// Importing the tensorflow.js library
const tf = require("@tensorflow/tfjs")
  
// Calling sparse.sparseReshape() function
// with all its parameter
const res = tf.sparse.sparseReshape(
    [[1.1, 0, 1.2], [2.1, 0.2, 1.3], [1.4, 2.3, 2.5], [null, -1, 0], [-3, 1, 2]],
    [1.0, 3, 3], [-1, 9]);
  
// Printing output indices
res['outputIndices'].print();
  
// Printing output shape
res['outputShape'].print();

输出:

Tensor
    [[1 , 2 ],
     [2 , 2 ],
     [2 , 3 ],
     [0 , -3],
     [-2, -4]]
Tensor
    [1, 9]

参考: https://js.tensorflow.org/api/latest/#sparseReshape