当模型需要input_tensor时,如何正确使用TFRecord数据集张量进行训练和验证?

时间:2019-07-29 15:43:18

标签: python tensorflow tfrecord

我有两个由许多图像组成的TFRecord数据集。为了训练,我有以下(伪)代码:

training_dataset = tf.data.TFRecordDataset(records)
iterator = training_dataset.make_initializable_iterator()
train_image_tensor, train_label_tensor= iterator.get_next() # image and label tensor
preds = build_model(input_tensor=train_image_tensor, 'efficientnet-b5', training=True)
cross_entropy_op = tf.reduce_mean(tf.losses.softmax_cross_entropy(onehot_labels=train_label_tensor, logits=preds, weights=1.0))
(..)
while True:
   sess.run([cross_entropy_op])
   (...)

现在,我想添加一个验证循环,在每个循环之后,我使用另一个TFRecord数据集来验证我的模型。问题是,当我已经构建图形时,必须为模型(train_image_tensor)提供输入张量。因此,我需要以某种方式在验证循环中交换模型的输入张量。有没有简单的方法可以做到这一点?

谢谢

0 个答案:

没有答案