我正在实现LeNet-5模型。我在一个时期内的随机时期和随机步长上得到以下错误。有时它就能正常工作,没有任何问题。
我尝试用imageDataGenerator替换输入的x_train和y_train
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发布于 2021-05-15 18:22:50
经过一些试验和错误,这是一个发现:模型最初使用平均池化,但用最大池化代替它消除了这个错误。
我仍然想知道这种行为背后的原因。如有任何进一步的见解,将不胜感激。
发布于 2021-05-19 22:27:49
根据我所看到的来自损失计算的问题,您的标签数组的形状是(8,10),而模型输出数组的形状是(32,1)。你有没有可能同时修正你的模型输出维度,因为我不明白为什么将平均池化更改为最大池化可以改变这一点。Moroever,在你的Colab笔记本中,具有平均池的细胞似乎运行正常。
https://stackoverflow.com/questions/67543911
复制相似问题