gpt4 book ai didi

tensorflow - 在 tensorflow 中多次运行训练操作

转载 作者:行者123 更新时间:2023-12-03 00:37:20 33 4
gpt4 key购买 nike

我有一些相当大的批量大小,我想对其采取多个梯度步骤。虽然我可以使用 python for 循环轻松完成此操作,但我想可能有一种更有效的方法,不需要在每次迭代时将数据传输到 GPU。我曾多次尝试将训练操作放入获取列表中,但我不确定它实际上是否运行了多次(运行时完全相同)。

最佳答案

如果您有可变大小的批处理,那么变量不适合保存它,您可以使用持久张量在 run 调用之间保留此数据。这是一个玩具示例

t = tf.int32
params = tf.Variable(tf.ones_initializer((), dtype=dt))
data_batches = [[1], [2, 3], [4, 5, 6]]

# op that uploads data to TF and saves it as a persistent Tensor
data_saver_placeholder = tf.placeholder(dt)
tensor_handle_op = tf.get_session_handle(data_saver_placeholder)

data_placeholder, data = tf.get_session_tensor(dt)
train_op = tf.assign_add(params, tf.reduce_prod(data))
init_op = tf.initialize_all_variables()
sess = tf.Session()
sess.run(init_op)

for batch in data_batches:
# upload tensor to TF runtime and save its handle
tensor_handle = sess.run(tensor_handle_op, feed_dict={data_saver_placeholder: batch})
# run train op several times reusing same data
for i in range(3):
sess.run(train_op, feed_dict={data_placeholder: tensor_handle.handle})


assert sess.run(params) == 382

关于tensorflow - 在 tensorflow 中多次运行训练操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37644984/

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