📜  Tensorflow.js tf.Sequential 类 .summary() 方法(1)

📅  最后修改于: 2023-12-03 14:47:55.818000             🧑  作者: Mango

TensorFlow.js tf.Sequential 类 .summary() 方法

TensorFlow.js 是一个流行的 JavaScript 库,它让您可以使用 TensorFlow 框架来构建和训练机器学习模型。其中,tf.Sequential 类是 TensorFlow.js 中的一个重要的类,它用来创建一个简化版的神经网络模型。在这篇文章中,我们将会介绍 tf.Sequential 类的 .summary() 方法。

概述

tf.Sequential 类是 TensorFlow.js 中的一个重要的类,它使得机器学习模型的构建变得非常容易。Sequential 类是一个具有一系列层的容器,这些层按照顺序连接在一起,构成一个完整的神经网络模型。

tf.Sequential 类中的 .summary() 方法是一个很有用的方法,它可以展示出该神经网络模型的层的结构和参数数量,帮助程序员更好地理解和调试神经网络模型。

语法

tf.Sequential 类的 .summary() 方法的语法如下:

tf.Sequential.summary([lineLength], [positions], [printFn])
  • lineLength 表示每行的字符数,默认为 80。

  • positions 表示将展示哪些数据,包括 total_params, trainable_paramsnon-trainable_params,默认为 ["total_params", "trainable_params"]

  • printFn 表示将打印 summary 信息的函数,默认为 console.log

参数说明
  • total_params 表示模型中所有参数的数量。

  • trainable_params 表示可以被训练的参数的数量。

  • non-trainable_params 表示不能被训练的参数的数量。

示例

在下面的示例中,我们来创建一个 tf.Sequential 类的实例,并使用 .summary() 方法来展示该神经网络模型的层的结构和参数数量。

const model = tf.sequential({
  layers: [
    tf.layers.dense({
      inputShape: [784],
      units: 32,
      activation: 'relu'
    }),
    tf.layers.dense({
      units: 10,
      activation: 'softmax'
    })
  ]
});

model.summary();

输出内容如下:

_________________________________________________________________
Layer (type)                 Output shape              Param #
=================================================================
dense_Dense1 (Dense)         [null,32]                 25120
_________________________________________________________________
dense_Dense2 (Dense)         [null,10]                 330
=================================================================
Total params: 25,450
Trainable params: 25,450
Non-trainable params: 0
_________________________________________________________________

通过上面的输出结果,我们可以看到该神经网络模型有两个层,第一个层是一个 784 -> 32 的全连接层,第二个层是一个 32 -> 10 的全连接层。其中,该神经网络模型的总参数数为 25,450,可以被训练的参数数为 25,450,不能被训练的参数数为 0。

结论

tf.Sequential 类中的 .summary() 方法是一个非常有用的方法,它可以帮助程序员更好地理解和调试神经网络模型。通过 .summary() 方法展示出神经网络模型的层的结构和参数数量,可以让程序员更加深入的了解神经网络模型是如何运作的,从而更好地进行模型的调整和优化。