【发布时间】:2020-03-16 18:44:06
【问题描述】:
我正在尝试对两个不同模型的权重进行元素相加。
我开发了以下算法:
async function getWeights(url){
return new Promise(async function(resolve, reject){
const model = await tf.loadLayersModel(url);
resolve(model.layers[0].getWeights);
});
}
async function aggregate(){
return new Promise(function (resolve, reject){
weights.push(getWeights('file://./mymodel/modelReceived.json'));
weights.push(getWeights('file://./mymodel/model.json'));
let averageLayer = tf.layers.average();
console.log(weights.length);
const average = averageLayer.apply([weights[0], weights[1]]);
model.layers[0].setWeights[average];
resolve(model);
});
}
async function returnValue(){
var model = await aggregate();
console.log(model);
}
returnValue();
但是,我收到此错误:
(node:20468) UnhandledPromiseRejectionWarning: Error: A merge layer should be called on an Array of at least 2 inputs. Got 1 input(s).
我使用以下代码创建了模型:
const modelOne = tf.sequential();
modelOne.add(tf.layers.dense({units: 100, activation: 'relu', inputShape: [50]}));
modelOne.compile({optimizer: 'sgd', loss: 'meanSquaredError', metrics: ['accuracy']});
谁能向我解释这个错误?有没有其他方法可以进行添加?
【问题讨论】:
标签: node.js tensorflow machine-learning tensorflow.js