Каков формат фильтров устройств в TensorFlow?
Таким образом, Session config proto имеет опцию device_filters с комментарием:
// When any filters are present sessions will ignore all devices which do not
// match the filters. Each filter can be partially specified, e.g. "/job:ps"
// "/job:worker/replica:3", etc.
Есть ли у кого-нибудь конкретное объяснение формата? Например, я хочу исключить /gpu: 0 в качестве опции, потому что я использую его для запуска других моделей.
Я пробовал
config = tf.ConfigProto()
config.device_filters.append('/gpu:1')
config.device_filters.append('/cpu:0')
with tf.Session(config=config):
# Do stuff
Но я все еще получаю ops, выделенные для gpu 0. Я не хочу переопределять устройства на индивидуальной основе.
1 ответ:
Поле
ConfigProto.device_filters
в настоящее время игнорируется TensorFlow, хотя оно предназначено для поддержки вашего варианта использования в будущем. Если вы хотите достичь того же конца выполнения операций на/gpu:1
и/cpu:0
, Вы можете сделать это следующим образом, используя "мягкое размещение":with tf.device("/gpu:1"): # Build your model in this with context. All nodes will get the # device "/gpu:1". with tf.Session(config=tf.ConfigProto(allow_soft_placement=True)): # Execute your mode in this with context. # Soft placement will use /gpu:1 for GPU-compatible ops, and /cpu:0 # for CPU-only ops.