我在测量 Tensorflow.js
中执行代码所用的时间时遇到问题。
我正在 tfjs
中构建超分辨率模型,我想知道延迟。目前我正在使用以下方法,如下所述。
但我认为这不是正确的方法。任何形式的建议将不胜感激。
var w = new Date();
var r = w.getTime();
for (var q = 0; q<29; q++){
var x = tf.concat([new_I[q++],new_I[q++], new_I[q++],new_I[q]]);
var hr_image = await pretrainedModel.execute(x);
var y = new Date();
var u = y.getTime();
console.log(u-r);
}
在tf.time
、Date
...中使用哪一个?
最佳答案
日期、时间、性能
Date
可用于指示执行函数所花费的时间。
a = new Date().getTime()
// execute function f()
b = new Date().getTime()
// executed time in milliseconds b - a
需要注意的是,该功能受系统时间的影响
tf.Time()
提供有关执行函数所需时间的更多详细信息。它输出后端读取数据所花费的时间和挂墙时间。了解 tfjs 内部正在做什么可能很有用。
tf.time(() => f() ) // execute f as callback
使用性能
a = performance.now()
// execute f()
b = performance.now()
// executed time in milliseconds b - a
它已被实现来评估执行时间。与 Date 不同,它独立于系统时钟。
<小时/>测量执行时间
来到问题的代码,目前还不清楚衡量什么性能。如果目标是测量代码的整体性能,
var w = new Date();
var r = w.getTime();
for (var q = 0; q<29; q++){
var x = tf.concat([new_I[q++],new_I[q++], new_I[q++],new_I[q]]);
var hr_image = await pretrainedModel.execute(x);
}
var y = new Date();
var u = y.getTime();
console.log(u-r);
如果目标是测量每次预测所需的时间
for (var q = 0; q<29; q++){
var w = new Date();
var r = w.getTime();
var x = tf.concat([new_I[q++],new_I[q++], new_I[q++],new_I[q]]);
var hr_image = await pretrainedModel.execute(x);
var y = new Date();
var u = y.getTime();
console.log(u-r);
}
但是正如上面所解释的,使用performance.now()
比使用Date
关于javascript - 测量在 Tensorflow.js 中执行代码所用的时间时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57853386/