在tensorflow tfrecord分片上使用交织时出现分段错误11

时间:2019-06-11 14:16:02

标签: python image tensorflow deserialization tensorflow-datasets

我正在尝试在由许多碎片组成的数据集上使用交错。在培训期间(执行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)

我真的不知道如何调试此问题或可能是什么原因。

0 个答案:

没有答案