如何将Tensorflow.js的数据分类为2d,3d等?

时间:2018-10-02 13:28:12

标签: tensorflow tensorflow.js

在我开始之前,我是机器学习的新手,刚开始弄湿我的脚。我对JavaScript足够熟悉,因此我认为我可以运行tensorflow.js。所以请原谅我的天真。

我的数据包含单个样本的信息,例如:

Probes  Signal
1       150
2       320
3       15
4       40
.       .
.       .
10      200

说我有10个这样的已知样本,它们的探针信号电平不同。探针及其顺序保持不变,即1,2,3 ... 10。这是三维空间吗?

我的最终目标是使用这些已知的样本创建模型。然后,对于未知样品,我还将具有如上所述的Probe(相同顺序)和Signal数据,并且模型应预测什么是样品(或最接近的相关样品)。

对于将其表示为tf.tensor2d还是tf.tensor3d,我有些困惑

如果它是tensor2d,我可以用这样的方式表示它,以便每个单独的数组都包含Signal数据:

tf.tensor2d([[150, 320, 15, 40, ....., 200], [<data for sample2>], [<data for sample 3].....);

如果它是一个tensor3d,我可以用这样的方式表示它,使其既包含Probe编号又包含Signal数据:

tf.tensor3d([[[1,150], [2,320]], [[3,15], [4, 40],....,[10,200], [<data for sample2>], [<data for sample 3]);

一方面,我觉得二维张量就足够了,因为探测顺序保持不变,但是如果我在该假设中错了,请更正我。 谢谢您的帮助。

1 个答案:

答案 0 :(得分:1)

由于输入数据的探针ID(1-10)在每个样本上都是一致的,因此您无需将其传递给模型。

因此,您的数据只是一维的,更具体地说,它的形状为[10],它也是第一层的形状。

但是由于model.fit()model.predict()将多个样本作为输入,因此它们需要一个以上的维度(tensor2D)或第一层输入形状的张量数组({{ 1}})。