我正在尝试在由许多碎片组成的数据集上使用交错。在培训期间(执行sess.run时),我收到分段错误错误11。 (使用单个tfrecord也会出现错误。)
dataset_train = tf.data.TFRecordDataset(shards_train)
dataset_train = dataset_train.interleave(
lambda x: tf.data.TFRecordDataset(x).map(decoder_train.deserialize_image_record), cycle_length=1)
OR
dataset_train = dataset_train.interleave(tf.data.TFRecordDataset, cycle_length=1)
dataset_train.map(decoder_train.deserialize_image_record)
当我仅使用map而不进行交错反序列化记录(序列化的记录包括图像,标签和一些元数据)时,一切工作正常。我尝试了不同的interleave cycle_lenghts和map_funcs以及flat_map。
在两种情况下(带和不带交叉),最后我都有这样的数据集对象:
DatasetV1Adapter形状:(((128,128,3),(),(),()),类型: (tf.float32,tf.int32,tf.string,tf.int32)
我能够在colab中使用整数数据集重现交织方法而没有任何错误。
dataset = tf.data.TFRecordDataset.list_files(shard_list)
dataset = dataset.interleave(tf.data.TFRecordDataset, cycle_length=1)
dataset = dataset.map(
deserialise_num)
我真的不知道如何调试此问题或可能是什么原因。