为了账号安全,请及时绑定邮箱和手机立即绑定

TensorFlow - ValueError:形状 (3, 1) 和 (4, 3) 不兼容

TensorFlow - ValueError:形状 (3, 1) 和 (4, 3) 不兼容

宝慕林4294392 2023-06-06 15:38:29
我是 DL 的新手,当我适合我的模型时,我遇到了这个错误ValueError: Shapes (3, 1) and (4, 3) are incompatible数据集:Features: [0.22222222 0.625      0.06779661 0.04166667], Target: [1 0 0]Features: [0.16666667 0.41666667 0.06779661 0.04166667], Target: [1 0 0]Features: [0.11111111 0.5        0.05084746 0.04166667], Target: [1 0 0]Features: [0.08333333 0.45833333 0.08474576 0.04166667], Target: [1 0 0]Features: [0.19444444 0.66666667 0.06779661 0.04166667], Target: [1 0 0]模型:def build_fc_model():  fc_model = tf.keras.Sequential([      tf.keras.layers.Dense(4, activation=tf.nn.softmax),      tf.keras.layers.Dense(4, activation=tf.nn.softmax),      tf.keras.layers.Dense(3, activation=tf.nn.softmax),  ])  return fc_model```model.fit 错误model = build_fc_model()model.compile(optimizer=tf.keras.optimizers.Adam(learning_rate=1e-1), loss='categorical_crossentropy', metrics=['accuracy'])BATCH_SIZE = 10EPOCHS = 5model.fit(dataset, batch_size=BATCH_SIZE, epochs=EPOCHS)谢谢你的帮助
查看完整描述

1 回答

?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

在您的代码中,build_fc_model中缺少InputLayer,因此请检查一下:


import tensorflow as tf

import numpy as np


def build_fc_model():

  fc_model = tf.keras.Sequential([

      tf.keras.layers.InputLayer((4,)),

      tf.keras.layers.Dense(4, activation=tf.nn.softmax),

      tf.keras.layers.Dense(4, activation=tf.nn.softmax),

      tf.keras.layers.Dense(3, activation=tf.nn.softmax),

  ])

  return fc_model



data = np.array([[0.22222222, 0.625,      0.06779661, 0.04166667], 

                 [0.16666667, 0.41666667, 0.06779661, 0.04166667],

                 [0.11111111, 0.5 ,       0.05084746, 0.04166667], 

                 [0.08333333, 0.45833333, 0.08474576, 0.04166667], 

                 [0.19444444, 0.66666667, 0.06779661, 0.04166667]])


target = np.array([[1, 0 ,0],

                   [1, 0 ,0],

                   [1, 0 ,0],

                   [1, 0 ,0],

                   [1, 0 ,0]])


model = build_fc_model()

model.compile(optimizer=tf.keras.optimizers.Adam(learning_rate=1e-1), loss='categorical_crossentropy', metrics=['accuracy'])


BATCH_SIZE = 1

EPOCHS = 5


model.fit(data, target, batch_size=BATCH_SIZE, epochs=EPOCHS)

输出:


Epoch 1/5

5/5 [==============================] - 0s 991us/step - loss: 0.8198 - accuracy: 0.6000

Epoch 2/5

5/5 [==============================] - 0s 603us/step - loss: 0.1590 - accuracy: 1.0000

Epoch 3/5

5/5 [==============================] - 0s 593us/step - loss: 0.0372 - accuracy: 1.0000

Epoch 4/5

5/5 [==============================] - 0s 597us/step - loss: 0.0131 - accuracy: 1.0000

Epoch 5/5

5/5 [==============================] - 0s 680us/step - loss: 0.0064 - accuracy: 1.0000



查看完整回答
反对 回复 2023-06-06
  • 1 回答
  • 0 关注
  • 168 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信