我对Tensorflow完全是新手。
我的目标很简单:我有一个3D张量作为输入/训练值,我希望将其“映射”到一个1D输出张量。
在运行我的模型时,我遇到一个错误,指出1D输出张量无法分配给定义的[5, 5]
形状:
const model = tf.sequential({ layers: [ tf.layers.dense({ inputShape: [5, 5], units: 32, activation: "relu" }), tf.layers.dense({ units: 1, activation: "softmax" }), ]});
输出/输入可以有不同的形状吗?我希望3D张量能够像“数字组”一样解析为一个单一的(1D张量)数字。
回答:
要将高维张量(维度高于1)映射到1D张量,需要在中间使用一个flatten层
const model = tf.sequential({ layers: [ tf.layers.dense({ inputShape: [5, 5], units: 32, activation: "relu" }), tf.layers.flatten(), tf.layers.dense({ units: 1, activation: "softmax" }), ]});