gpt4 book ai didi

python - Tensorflow数据输入切换: Train/Validation

转载 作者:行者123 更新时间:2023-12-02 05:56:35 24 4
gpt4 key购买 nike

在我从方便但速度较差的占位符切换之后,我的数据通过队列运行器进入我的图表。

在每个训练周期之后,我希望运行一次验证。除了训练过程之外,验证过程使用不同的数据,没有增强,也没有洗牌。

问题很简单:如何切换这些东西?

一些观察:

  • 我无法通过 tf.placeholder bool 值切换 string_input_ Producer 中的 shuffle 选项。
  • 我发现的唯一在线示例使用占位符将训练数据与验证数据分开。这些反过来,不使用高级队列运行程序。
  • 我确实设法使用 tf.cond() 完成上述操作,在这里我将测试 is_training tf.placeholder bool 值我通过feed_dict。这个解决方案是最优的吗?这个 tf.conf() 方法的成本有多高?

最佳答案

对我来说效果很好的方法是使用tf.placeholder_with_default:

images_train, labels_train = train_data_pipeline(fnlist_train, ref_grid)
images_val, labels_val = val_data_pipeline(fnlist_val, ref_grid)
images = tf.placeholder_with_default(images_train, shape=[None, FLAGS.nx_image, FLAGS.ny_image, FLAGS.nz_image])
labels = tf.placeholder_with_default(labels_train, shape=[None, label_length])

在训练期间,图像标签直接来自训练队列。对于间歇性验证步骤,我通过调用 sess.run() 中的 feed_dict 提供图像标签。唯一的小问题是验证数据也是来自队列的张量,而 feed_dict 不接受张量,因此我首先调用 sess.run([images_val, labels_val]) 来获取 numpy 值然后在 feed_dict 中使用它们。似乎工作得很好,并且张量 ==>numpy==> 张量转换的延迟最小,无论如何,这只发生在验证期间。

对于验证数据有单独处理要求的情况,可以在设置单独的验证队列和处理流程时进行处理。

关于python - Tensorflow数据输入切换: Train/Validation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39617686/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com