Lỗi: Lỗi khi kiểm tra thông tin đầu vào: dự kiến ​​dày đặc_Dense1_input có 3 thứ nguyên. nhưng có mảng với hình 1,9

Jan 05 2021

Tôi thực sự mới mẻ với tensorflow.js và tôi đang cố gắng làm mô hình đơn giản cho bạn biết bạn đã cắt ở phía nào của canvas

const model = tf.sequential();
model.add(
         tf.layers.dense({
           units: 200,
           activation: "sigmoid",
           inputShape: [0, 1],
         })
       );
       model.add(
         tf.layers.dense({
           units: 2,
           activation: "softmax",
         })
       );
       model.compile({
         optimizer: optimizer,
         loss: "categoricalCrossentropy",
         metrics: ["accuracy"],
       });

dữ liệu đào tạo và thử nghiệm của tôi

        const yTrain = tf.tensor2d(
          [10, 130, 60, 20, 150, 110, 3, 160, 99],
          [1, 9]
        );
        const xTrain = tf.tensor2d([0, 1, 0, 0, 1, 1, 0, 1, 0], [1, 9]);

        const yTest = tf.tensor2d(
          [5, 106, 33, 88, 104, 140, 7, 60, 154],
          [1, 9]
        );
        const xTest = tf.tensor2d([0, 1, 0, 0, 1, 1, 0, 0, 1], [1, 9]);

Trả lời

edkeveked Jan 05 2021 at 22:11

InputShape có kích thước 2, do đó, các tính năng (ở đây là xtrain và xtest) phải có kích thước 3.

Ngoài ra, không có ý nghĩa gì khi có kích thước thứ nguyên là 0 (điều đó có nghĩa là tensor trống).

Với hình dạng xtrain và xtest của bạn [a, b], thì inputShape phải như vậy [b].

Sự không phù hợp về hình dạng này giữa mô hình và dữ liệu đào tạo đã được thảo luận ở đây và ở đó