TensorFlow 中设备过滤器的格式是什么?
What is the format for device filters in TensorFlow?
因此会话配置原型有一个 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
但我仍在为 gpu 0 分配操作。我不想在每个操作的基础上覆盖设备。
ConfigProto.device_filters
字段目前被 TensorFlow 忽略,尽管它旨在支持您将来的用例。如果你想在 /gpu:1
和 /cpu:0
上实现 运行 操作的相同结果,你可以使用 "soft placement":
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.
因此会话配置原型有一个 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
但我仍在为 gpu 0 分配操作。我不想在每个操作的基础上覆盖设备。
ConfigProto.device_filters
字段目前被 TensorFlow 忽略,尽管它旨在支持您将来的用例。如果你想在 /gpu:1
和 /cpu:0
上实现 运行 操作的相同结果,你可以使用 "soft placement":
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.