Python训练数据时出错那么如何训练数据

问题描述 投票:0回答:3

纪元 1/100

ValueError Traceback(最后一次调用) 在() ----> 1 model_history=classifier.fit(X_train,Y_train,batch_size=100,validation_split=0.2,epochs = 100)

1帧 /usr/local/lib/python3.9/dist-packages/keras/engine/training.py 中的 tf__train_function(迭代器) 13 尝试: 14 do_return = 真 ---> 15 retval_ = ag__.converted_call(ag__.ld(step_function), (ag__.ld(self), ag__.ld(iterator)), 无, fscope) 16 除了: 17 do_return = 假

ValueError:在用户代码中:

File "/usr/local/lib/python3.9/dist-packages/keras/engine/training.py", line 1284, in train_function  *
    return step_function(self, iterator)
File "/usr/local/lib/python3.9/dist-packages/keras/engine/training.py", line 1268, in step_function  **
    outputs = model.distribute_strategy.run(run_step, args=(data,))
File "/usr/local/lib/python3.9/dist-packages/keras/engine/training.py", line 1249, in run_step  **
    outputs = model.train_step(data)
File "/usr/local/lib/python3.9/dist-packages/keras/engine/training.py", line 1051, in train_step
    loss = self.compute_loss(x, y, y_pred, sample_weight)
File "/usr/local/lib/python3.9/dist-packages/keras/engine/training.py", line 1109, in compute_loss
    return self.compiled_loss(
File "/usr/local/lib/python3.9/dist-packages/keras/engine/compile_utils.py", line 265, in __call__
    loss_value = loss_obj(y_t, y_p, sample_weight=sw)
File "/usr/local/lib/python3.9/dist-packages/keras/losses.py", line 142, in __call__
    losses = call_fn(y_true, y_pred)
File "/usr/local/lib/python3.9/dist-packages/keras/losses.py", line 268, in call  **
    return ag_fn(y_true, y_pred, **self._fn_kwargs)
File "/usr/local/lib/python3.9/dist-packages/keras/losses.py", line 2156, in binary_crossentropy
    backend.binary_crossentropy(y_true, y_pred, from_logits=from_logits),
File "/usr/local/lib/python3.9/dist-packages/keras/backend.py", line 5707, in binary_crossentropy
    return tf.nn.sigmoid_cross_entropy_with_logits(

ValueError: `logits` and `labels` must have the same shape, received ((None, 10) vs (None, 1)).

ValueError:

logits
labels
必须具有相同的形状,收到((无,10)与(无,1))。

请尽快解决这个错误

label shapes valueerror logits
3个回答
0
投票

ValueError:

logits
labels
必须具有相同的形状,收到((无,10)与(无,1))。

这个错误可能会出现,

在你的模型架构中,在最后一层(也称为 logit 层),你使用了 1 个神经元;将其更改为 10,因为您要对 10 个不同的类别进行分类。

您可能正在使用 binaryCrossEntropy 损失,请改用交叉熵损失。

总结是,如果您要创建二元分类器,那么您的标签必须是二元值。或者,如果您正在创建一个多分类器,而您的体系结构的最后一层与您的标签类别长度不匹配,那么您将遇到这种错误。


0
投票

我认为你开始学习tensorflow并且只实现一个特征变量和一个标签;我遇到了同样的问题。尝试使用它,它解决了我的问题,希望也能解决你的问题:

model.fit(tf.expand_dims(x,axis=-1),y,epochs=100)

0
投票

这对我有用我有 4 节课

model.add(layers.Dense(4, activation='softmax', kernel_regularizer=regularizers.l2(0.001)))

在你的情况下,它将是

model.add(layers.Dense(10, activation='softmax', kernel_regularizer=regularizers.l2(0.001)))

© www.soinside.com 2019 - 2024. All rights reserved.