Итак, я читаю немного больше о перемещении данных из CPU -> GPU в Tensorflow и вижу, что feed_dict
все еще работает медленно: https://github.com/tensorflow/tensorflow/issues/2919
Непосредственные варианты, которые я вижу для «перемещения» переменных Python на графический процессор, следующие:
#1. Tensorflow constant
a = tf.constant(data, name='a')
#2. Tensorflow Variable
b = tf.Variable(data, name='b')
#3. Tensorflow placeholder
c = tf.placeholder(dtype=dtype, shape=[x,y,z ...], name='c')
Варианты #1
и #2
нецелесообразны для очень больших переменных набора данных (поскольку вы фактически предварительно загружаете данные в память), так как мы быстро превысим ограничение графа в 2 ГБ. В настоящее время это делает #3
лучшим выбором для добавления больших переменных Python в Tensorflow, но тогда вы вынуждены использовать feed_dict
.
Существуют ли другие варианты переноса переменных Python в GPU, кроме #1
, #2
и #3
? Я имею в виду использование...
with tf.device('/gpu:0'):
# create tensorflow object(s), whether it's tf.Variable, tf.constant, etc
Если я правильно понимаю, мы можем использовать функции входного конвейера, чтобы обойти эту проблему? Я имею в виду эти два здесь:
Могу ли я что-нибудь сделать, чтобы еще больше повысить скорость размещения всего на стороне Tensorflow?