我正在实施LeNet-5模型。我在随机纪元和纪元内的随机步骤中得到以下错误。有时,它只是工作没有任何问题
我试图用imageDataGenerator替换输入x_序列和y_序列
Here is the link到我面临问题的代码
Epoch 1/200
1/10 [==>...........................] - ETA: 3s - loss: 0.1823 - accuracy: 0.9375
---------------------------------------------------------------------------
InvalidArgumentError Traceback (most recent call last)
<ipython-input-20-a90687551bd7> in <module>()
8 , epochs=number_of_epochs
9 , steps_per_epoch = 10
---> 10 , validation_data = datagen.flow(x_train, y_train, batch_size=batch_size, subset='validation')
11 )
6 frames
/usr/local/lib/python3.7/dist-packages/tensorflow/python/eager/execute.py in quick_execute(op_name, num_outputs, inputs, attrs, ctx, name)
58 ctx.ensure_initialized()
59 tensors = pywrap_tfe.TFE_Py_Execute(ctx._handle, device_name, op_name,
---> 60 inputs, attrs, num_outputs)
61 except core._NotOkStatusException as e:
62 if name is not None:
InvalidArgumentError: Incompatible shapes: [8,10] vs. [32,1]
[[node gradient_tape/categorical_crossentropy/softmax_cross_entropy_with_logits/mul (defined at <ipython-input-20-a90687551bd7>:10) ]] [Op:__inference_train_function_129979]
Function call stack:
train_function
从我看到的问题来自于损失的计算,您的标签数组是形状(8,10),而模型输出数组是形状(32,1)。您是否可能同时更正了模型输出维度,因为我不明白为什么将平均池更改为最大池可以改变这一点。然而,在你的Colab笔记本中,具有平均池的单元似乎运行正常
经过一些尝试和错误后,发现如下:该模型最初使用的是平均池,但替换为最大池消除了此错误
我仍然想知道这种行为背后的原因。如有任何进一步的见解,将不胜感激
相关问题 更多 >
编程相关推荐