Python InvalidArgumentError:无法向批次添加张量:元素数不匹配

Python InvalidArgumentError:无法向批次添加张量:元素数不匹配,python,tensorflow,keras,ocr,google-colaboratory,Python,Tensorflow,Keras,Ocr,Google Colaboratory,我正在学习Keras的OCR教程,并尝试在我的数据集上使用它 这部分我有个错误 train_dataset = tf.data.Dataset.from_tensor_slices((x_train, y_train)) train_dataset = (train_dataset.map( encode_single_sample, num_parallel_calls=tf.data.experimental.AUTOTUNE) .batch(20) #batch size .prefetc

我正在学习Keras的OCR教程,并尝试在我的数据集上使用它
这部分我有个错误

train_dataset = tf.data.Dataset.from_tensor_slices((x_train, y_train))
train_dataset = (train_dataset.map(
encode_single_sample, num_parallel_calls=tf.data.experimental.AUTOTUNE)
.batch(20) #batch size
.prefetch(buffer_size=tf.data.experimental.AUTOTUNE))
错误消息:

InvalidArgumentError: Cannot add tensor to the batch: number of elements does not match. Shapes are: [tensor]: [55], [batch]: [63] [Op:IteratorGetNext] 
当我尝试遍历数据集时

print(list(train_dataset))

当我将batch_size更改为1时,代码会起作用,但我想将其设置为20,这给了我一个错误。

若要将内容一起批处理,除非您使用的是RaggedSensors,这是专门为此而存在的,否则所有项目都必须具有相同的形状。如果他们不这样做,你就会犯错误。由于对RaggedSensors的支持尚未完成,通常的做法是在批处理之前将输入填充到相同的最大长度。@GPhilo非常感谢,这很有帮助。