我想通过获得模型推理时每层的执行时间和flops来形成一个条形图进行性能分析。
我尝试使用
for(var i=0; i<length; i++){
if( i==0 ){
const startTime = tf.util.now();
testdata=model.layers[i].call(testdata);
const endTime = tf.util.now();
console.log(`Layer ${i} took ${(endTime - startTime)}ms`);
}else{
const startTime = tf.util.now();
testdata=model.layers[i].apply(testdata);
const endTime = tf.util.now();
console.log(`Layer ${i} took ${(endTime - startTime)}ms`);
}
}
来进行以层粒度进行推理,获取每层的执行时间,但发现时间加起来apply比model.perdict(data)时间少了很多。有其他最佳的方法获得每层的推理时间吗