tensorflow.js二维输入?
tensorflow.js 2 dimensional input?
const trainingData = tf.tensor3d(fixedData.map(item =>
[[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],[...],[...],[...]]
))
model.add(tf.layers.dense({
inputShape: [4,16],
activation: "relu",
units: 4,
}))
model.compile({
loss: "meanSquaredError",
optimizer: tf.train.adam(0.05),
metrics: ['accuracy']
})
model.fit(trainingData, outputData, {epochs: 10})
.then((history) => {
// console.log(history)
model.predict(testingData).print()
})
错误:
(节点:5118)UnhandledPromiseRejectionWarning:错误:检查输入时出错:预期 dense_Dense1_input 有 2 个维度。但是得到了形状为 935,4,16 的数组。
输入形状可以是二维的吗?
您没有提供完整的代码。查看您的标签(输出)数据很重要。我伪造了输出数据以匹配单个密集层的输出。
另外,正如@yudhiesh 在评论中提到的,您的张量只有 2 个维度。我还修复了这个问题,以防您想为每个输入坚持使用 [4,16]。
这是代码运行
const trainingData = tf.tensor3d(
[[[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],
[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],
[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],
[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]]]
)
const output = tf.tensor3d(
[[ [1,2,3,4],
[1,2,3,4],
[1,2,3,4],
[1,2,3,4]]]
)
const model = tf.sequential()
model.add(tf.layers.dense({
inputShape: [4, 16],
activation: "relu",
units: 4
}))
model.compile({
loss: "meanSquaredError",
optimizer: tf.train.adam(0.05),
metrics: ['accuracy']
})
model.fit(trainingData,output, {epochs: 2})
.then((history) => {
model.predict(trainingData).print()
}).catch((e) => {
console.log(e.message);
});
const trainingData = tf.tensor3d(fixedData.map(item =>
[[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],[...],[...],[...]]
))
model.add(tf.layers.dense({
inputShape: [4,16],
activation: "relu",
units: 4,
}))
model.compile({
loss: "meanSquaredError",
optimizer: tf.train.adam(0.05),
metrics: ['accuracy']
})
model.fit(trainingData, outputData, {epochs: 10})
.then((history) => {
// console.log(history)
model.predict(testingData).print()
})
错误: (节点:5118)UnhandledPromiseRejectionWarning:错误:检查输入时出错:预期 dense_Dense1_input 有 2 个维度。但是得到了形状为 935,4,16 的数组。
输入形状可以是二维的吗?
您没有提供完整的代码。查看您的标签(输出)数据很重要。我伪造了输出数据以匹配单个密集层的输出。 另外,正如@yudhiesh 在评论中提到的,您的张量只有 2 个维度。我还修复了这个问题,以防您想为每个输入坚持使用 [4,16]。
这是代码运行
const trainingData = tf.tensor3d(
[[[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],
[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],
[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],
[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]]]
)
const output = tf.tensor3d(
[[ [1,2,3,4],
[1,2,3,4],
[1,2,3,4],
[1,2,3,4]]]
)
const model = tf.sequential()
model.add(tf.layers.dense({
inputShape: [4, 16],
activation: "relu",
units: 4
}))
model.compile({
loss: "meanSquaredError",
optimizer: tf.train.adam(0.05),
metrics: ['accuracy']
})
model.fit(trainingData,output, {epochs: 2})
.then((history) => {
model.predict(trainingData).print()
}).catch((e) => {
console.log(e.message);
});