如何在tensorflow.js中激活隐藏层?

时间:2020-10-30 02:05:06

标签: tensorflow tensorflow.js

在TensorFlow.js中,我创建了一个非常简单的tf.Sequential模型,如下所示:

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

在预测期间,如何获得第二个tf.layers.dense层的激活?

我可以正常删除model.layers[2]并使用model.predict()吗?

(我知道我可以通过使用功能性API定义两个模型输出来提前完成此操作,但是假设我有一个预制的tf.Sequential模型,我想检查其逻辑记录。)

2 个答案:

答案 0 :(得分:1)

对于更复杂的模型,有一种更简单的方法。如果model是原始模型,则可以使用tf.model({inputs:model.inputs, outputs: model.layers[2].output})创建一个副本,从而只需要提供第一层和最后一层

答案 1 :(得分:0)

我想出了办法。

删除model.layers[2]无效,因为显然model.predict()并不依赖于该属性。

一种方法是创建一个重复的tf.Sequential模型,并复制原始模型的所有层(最后一层除外)。

let m2 = tf.sequential();
m2.add(model.layers[0]);
m2.add(model.layers[1]);

然后m2.predict()将输出logits。