如何激活 tensorflow.js 中的隐藏层?
How to get activation of a hidden layer in 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
模型,我想检查 logits的。)
我知道怎么做了。
删除 model.layers[2]
不起作用,因为显然 model.predict()
不依赖于 属性。
一种方法是创建一个副本 tf.Sequential
模型,从原始模型复制所有层(最后一层除外)。
let m2 = tf.sequential();
m2.add(model.layers[0]);
m2.add(model.layers[1]);
然后m2.predict()
将输出logits。
对于更复杂的模型,有一种更简单的方法。如果model
是原始模型,可以使用tf.model({inputs:model.inputs, outputs: model.layers[2].output})
创建副本,这样只需要提供第一层和最后一层
在 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
模型,我想检查 logits的。)
我知道怎么做了。
删除 model.layers[2]
不起作用,因为显然 model.predict()
不依赖于 属性。
一种方法是创建一个副本 tf.Sequential
模型,从原始模型复制所有层(最后一层除外)。
let m2 = tf.sequential();
m2.add(model.layers[0]);
m2.add(model.layers[1]);
然后m2.predict()
将输出logits。
对于更复杂的模型,有一种更简单的方法。如果model
是原始模型,可以使用tf.model({inputs:model.inputs, outputs: model.layers[2].output})
创建副本,这样只需要提供第一层和最后一层