ValueError Traceback(最后一次调用)
在
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))。
请尽快解决这个错误
ValueError:
logits
和 labels
必须具有相同的形状,收到((无,10)与(无,1))。
这个错误可能会出现,
在你的模型架构中,在最后一层(也称为 logit 层),你使用了 1 个神经元;将其更改为 10,因为您要对 10 个不同的类别进行分类。
您可能正在使用 binaryCrossEntropy 损失,请改用交叉熵损失。
总结是,如果您要创建二元分类器,那么您的标签必须是二元值。或者,如果您正在创建一个多分类器,而您的体系结构的最后一层与您的标签类别长度不匹配,那么您将遇到这种错误。
我认为你开始学习tensorflow并且只实现一个特征变量和一个标签;我遇到了同样的问题。尝试使用它,它解决了我的问题,希望也能解决你的问题:
model.fit(tf.expand_dims(x,axis=-1),y,epochs=100)
这对我有用我有 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)))