Tensorflow.js tf.model()函数
Tensorflow.js 是一个由谷歌开发的开源库,用于在浏览器或节点环境中运行机器学习模型以及深度学习神经网络。
tf.model()函数用于创建一个模型,该模型包含以输入和输出参数的形式提供的层和层。
句法:
tf.model( args )
这里的参数是,
- 输入:模型的输入。它可以是对象或对象列表。
- 输出:模型的输出。
- 名称:模型的名称。
示例 1:在此示例中,我们将在 tf.model()函数的帮助下创建一个模型,输入大小为 4,然后是 2 个具有激活函数relu 和 softmax 的密集层,并使用 model.predict 进行预测()函数。
Javascript
// Create input of size 4
var input = tf.input({shape:[4]});
// Dense layer 1 with relu activation
var dLayer1 = tf.layers.dense({units:12,activation: 'relu'});
// Dense layer 1 with softmax activation
var dLayer2 = tf.layers.dense({units:7, activation: 'softmax'});
var output = dLayer2.apply(dLayer1.apply(input));
// Model function
var model = tf.model({inputs:input, outputs:output});
// Prediction
model.predict(tf.ones([2,4])).print();
Javascript
// Input 1
var inp1 = tf.input({shape:[12]});
// Input 2
var inp2 = tf.input({shape:[24]});
// Apply input one to the first dense layer
// using apply() function
var denseLayer1 = tf.layers.dense({units: 4}).apply(inp1);
// Apply input two to second dense layer
var denseLayer2 = tf.layers.dense({units: 8}).apply(inp2);
// Concatenate both dense layer using concatenate() function
var concatAll = tf.layers.concatenate()
.apply([denseLayer1,denseLayer2]);
var output =tf.layers.dense({units: 8,
activation: 'softmax'}).apply(concatAll);
// Create model
var model = tf.model({inputs:[inp1, inp2], outputs:output});
// Generate summery for model
model.summary();
输出:
Tensor
[[0.309215, 0.0659644, 0.122767, 0.1150663, 0.1592857, 0.1232278, 0.1044738],
[0.309215, 0.0659644, 0.122767, 0.1150663, 0.1592857, 0.1232278, 0.1044738]]
示例 2:在此示例中,我们将创建一个具有大小为 2 的输入数组的模型,并使用 model.summery()函数生成摘要,还使用 apply() 和 concatenate() 函数。
Javascript
// Input 1
var inp1 = tf.input({shape:[12]});
// Input 2
var inp2 = tf.input({shape:[24]});
// Apply input one to the first dense layer
// using apply() function
var denseLayer1 = tf.layers.dense({units: 4}).apply(inp1);
// Apply input two to second dense layer
var denseLayer2 = tf.layers.dense({units: 8}).apply(inp2);
// Concatenate both dense layer using concatenate() function
var concatAll = tf.layers.concatenate()
.apply([denseLayer1,denseLayer2]);
var output =tf.layers.dense({units: 8,
activation: 'softmax'}).apply(concatAll);
// Create model
var model = tf.model({inputs:[inp1, inp2], outputs:output});
// Generate summery for model
model.summary();
输出:
__________________________________________________________________________________________________
Layer (type) Output shape Param # Receives inputs
==================================================================================================
input7 (InputLayer) [null,12] 0
__________________________________________________________________________________________________
input8 (InputLayer) [null,24] 0
__________________________________________________________________________________________________
dense_Dense10 (Dense) [null,4] 52 input7[0][0]
__________________________________________________________________________________________________
dense_Dense11 (Dense) [null,8] 200 input8[0][0]
__________________________________________________________________________________________________
concatenate_Concatenate4 (Conca [null,12] 0 dense_Dense10[0][0]
dense_Dense11[0][0]
__________________________________________________________________________________________________
dense_Dense12 (Dense) [null,8] 104 concatenate_Concatenate4[0][0]
==================================================================================================
Total params: 356
Trainable params: 356
Non-trainable params: 0
__________________________________________________________________________________________________
参考: https://js.tensorflow.org/api/latest/#model