保存Tensorflow.js张量的先前值

问题描述

我有一个函数,该函数存储张量的所有值,然后将其合并为一个矩阵。该函数如下所示:

    if (i == 1) {
        var y_pred1 = y_pred
    } else if (i == 2) {
        var y_pred2 = y_pred
    } else if (i == 3) {
        var y_pred3 = y_pred
    } else if (i == 4) {
        var y_pred4 = y_pred
    }
tf.concat([y_pred1,y_pred2,y_pred3,y_pred4])

函数在for循环的每次迭代中存储y_pred的每个值。有没有一种方法可以使这种方法更有效,这样我就不需要在模型内部使用大量晦涩的if语句。供您参考,y_pred是张量。

仅供参考:i代表迭代编号,因此如果达到迭代1,y_pred1 = y_pred

解决方法

如果每个张量都返回结果,则您可能应该使用Array的实例。

如果张量的数量是静态的并且您事先知道:

var tf = new Array(number_of_tensors);

for (var i = 0; i < number_of_tensors; i++) {
    var y_pred = /** get the result of your tensor **/
    tf[i] = y_pred;
}

仅此而已。无需concat()tf已经是一个矩阵。

如果您不知道张量的数量:

// before your for-loop
var tf = new Array();

// into your for-loop
var y_pred = /** get the result of your tensor **/
tf.push(y_pred);