从 tensorflow.js 神经网络获取权重
Getting weights from tensorflow.js neural network
我有这个顺序模型:
this.model = tf.sequential()
this.model.add(tf.layers.dense({units : 16, useBias : true, inputDim : 7})) // input
this.model.add(tf.layers.dense({units : 16, useBias : true, activation: 'sigmoid'})) // hidden
this.model.add(tf.layers.dense({units : 3, useBias : true, activation: 'sigmoid'})) // hidden 2
我在 API 中检查了 tensorflow.js,但没有关于获取神经网络权重(内核)的信息。那么,我怎样才能获得权重然后改变它们,以应用新的权重?(对于无监督学习)
看起来可能有一种更简单、更简洁的方法来做你想做的事,但无论如何:
调用 this.model.getWeights()
将为您提供一组与图层权重和偏差相对应的变量。对这些数组元素中的任何一个调用 data()
将 return 承诺您可以解决以获得权重。
我没有尝试手动设置权重,但是有一个 this.model.setWeights()
方法。
祝你好运。
这是打印所有重量的简单方法:
for (let i = 0; i < model.getWeights().length; i++) {
console.log(model.getWeights()[i].dataSync());
}
访问第一个密集层的权重(内核和偏差):
const model = tf.sequential();
model.add(tf.layers.dense({units: 4, inputShape: [8]}));
model.add(tf.layers.dense({units: 4}));
model.compile({ optimizer: 'sgd', loss: 'meanSquaredError' });
// kernel:
model.layers[0].getWeights()[0].print()
// bias:
model.layers[0].getWeights()[1].print()
我有这个顺序模型:
this.model = tf.sequential()
this.model.add(tf.layers.dense({units : 16, useBias : true, inputDim : 7})) // input
this.model.add(tf.layers.dense({units : 16, useBias : true, activation: 'sigmoid'})) // hidden
this.model.add(tf.layers.dense({units : 3, useBias : true, activation: 'sigmoid'})) // hidden 2
我在 API 中检查了 tensorflow.js,但没有关于获取神经网络权重(内核)的信息。那么,我怎样才能获得权重然后改变它们,以应用新的权重?(对于无监督学习)
看起来可能有一种更简单、更简洁的方法来做你想做的事,但无论如何:
调用 this.model.getWeights()
将为您提供一组与图层权重和偏差相对应的变量。对这些数组元素中的任何一个调用 data()
将 return 承诺您可以解决以获得权重。
我没有尝试手动设置权重,但是有一个 this.model.setWeights()
方法。
祝你好运。
这是打印所有重量的简单方法:
for (let i = 0; i < model.getWeights().length; i++) {
console.log(model.getWeights()[i].dataSync());
}
访问第一个密集层的权重(内核和偏差):
const model = tf.sequential();
model.add(tf.layers.dense({units: 4, inputShape: [8]}));
model.add(tf.layers.dense({units: 4}));
model.compile({ optimizer: 'sgd', loss: 'meanSquaredError' });
// kernel:
model.layers[0].getWeights()[0].print()
// bias:
model.layers[0].getWeights()[1].print()