我正试图调用tf.image.random_crop(image, size=INPUT_SHAPE)
,但我收到了以下错误:
ValueError: Dimensions must be equal, but are 4 and 3 for '{{node random_crop/GreaterEqual}} = GreaterEqual[T=DT_INT32](random_crop/Shape, random_crop/size)' with input shapes: [4], [3].
因此,当我试图了解发生了什么时,我尝试用打印数据集的形状
print(len(train_dataset), train_dataset)
我得到了这个:
23 <BatchDataset element_spec=(TensorSpec(shape=(None, 160, 160, 1), dtype=tf.float32, name=None), TensorSpec(shape=(None,), dtype=tf.int32, name=None))>
首先,我不理解数字23,更令人担忧的是TensorSpec(shape=(None,160160,1(。我的INPUT_SHAPE是(1601601(,所以我想知道这是否是问题的原因。
我看到一个线程说我应该把批量大小改为1,但这对我来说不可行。现在,我根本没有数据集的批量大小
看起来您是在批处理后应用random_crop
。要使上述操作生效,您需要设置INPUT_SHAPE = (batch_size, 120, 120,3)
,或者您可以在应用random_crop
后进行批处理。