我对 tensorflow 很陌生。我曾经使用 theano 进行深度学习开发。我注意到这两者之间的区别,即可以存储输入数据的地方。

在 Theano 中,它支持共享变量将输入数据存储在 GPU 内存上,以减少 CPU 和 GPU 之间的数据传输。

在 tensorflow 中,我们需要将数据输入 placeholder,数据可以来自 CPU 内存或文件。

我的问题是:是否可以在 GPU 内存上为 tensorflow 存储输入数据?还是它已经以某种神奇的方式做到了?

谢谢。

最佳答案

如果您的数据适合 GPU,您可以将其加载到 GPU 上的常量中,例如一个numpy数组:

with tf.device('/gpu:0'):
  tensorflow_dataset = tf.constant(numpy_dataset)

提取小批量的一种方法是在每个步骤中对该数组进行切片,而不是使用 tf.slice 提供它:
  batch = tf.slice(tensorflow_dataset, [index, 0], [batch_size, -1])

围绕该主题有许多可能的变化,包括使用队列动态地将数据预取到 GPU。

关于neural-network - tensorflow 在 GPU 内存上存储训练数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37596333/

10-12 19:27