![](/img/trans.png)
[英]how to pass several tensor to a model.predict in tensorflow.js
[英]How can I pass a 3 dimensional tensor into a dense layer (tensorflow.js)
我正在尋找一種將標准化圖表輸入到我的 tensorflow.js model 的方法。 現在,它正在傳遞一個二維張量,並且該代碼可以完美運行。 我找到了一個新的數據點,我想將其添加到該二維張量中,但是,該數據點是一個點數組,當歸一化時,它的范圍在 0-1 之間。 如果數組有一定數量的點,我會將每個單獨的點作為數據點; 但是,數組的大小因我的所有數據而異。 這是我的代碼和 javascript object 形式的示例數據集:
{
"rank": "27",
"fame": "4505",
"deaths": "1",
"accountAge": 199,
"characters": "7",
"skins": "0",
"verified": 1,
"oneDay": [ 3856, 4003, 4138, 4282, 4316, 4431, 4505, 4719],
"oneWeek": [ 1100, 1243, 1511, 1948, 2814, 3267, 3557],
"lifeTime": [231, 1711, 2257, 4104, 5366, 7610, 9142, 11123, 12831, 15003, 15154, 16600, 17438, 18466, 19777, 20626, 22230, 24180, 24970, 25918, 26728, 28325, 29318, 30187, 30645, 31068, 33142, 35088, 35582, 35984, 37162, 39567, 0, 41089, 42615, 43609, 44254, 46740, 47231, 48261, 50673, 51161, 52646, 53592, 55470, 56487, 57254, 58422, 58428, 62407, 65122, 0, 65122, 69784, 70703, 72511, 77764, 78240, 80642, 81143, 81204, 82929, 85771, 89594, 90746, 92073, 92265, 376, 425, 476, 702, 776, 777, 827, 828, 1089, 1091, 998, 1031, 1084, 1148, 1100 ]
}
model 設置
model = tf.sequential();
//input layer
model.add(tf.layers.dense({
units: 100,
inputShape: [9],
activation: 'sigmoid'
}))
//hidden layers
model.add(tf.layers.dense({
units: 50,
activation: 'sigmoid'
}))
//output layer
model.add(tf.layers.dense({
units: 1,
activation: 'sigmoid'
}))
當前數據設置
var xs2D = [], ys2D = []
for (let i of data) {
//removed data normalization because it was very big
xs2D.push([rank, fame, deaths, age, char, skin, od, ow, lt])
ys2D.push([i.verified])
}
const xs = tf.tensor2d(xs2D)
const ys = tf.tensor2d(ys2D)
如果xs
是形狀為[a, b, c]
的 3d 張量,則第一層的 inputShape 應為[b, c]
。
由於ys
不是 3d 張量,因此應在最后一層之前通過 flatten,以便返回 2d 張量。
這是一個小例子:
const model = tf.sequential({
layers: [tf.layers.dense({units: 1, inputShape: [1, 10]}),
tf.layers.flatten(),
tf.layers.dense({units: 1})]
});
model.compile({optimizer: 'sgd', loss: 'meanSquaredError'});
// the loss function and the optimizer are just for the sake of example
// in order to use compile, required before using fit
await model.fit(tf.ones([8, 1, 10]), tf.ones([8, 1]));
model.predict(tf.ones([8, 1, 10]))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.