Для тензорного потока SavedModel в формате pbtxt, где определяется размещение устройства операции / узла? - PullRequest
0 голосов
/ 18 ноября 2018

У меня есть SavedModel с saved_model.pbtxt и variables\, который был предварительно обучен на одном графическом процессоре из этого репо: https://github.com/sthalles/deeplab_v3. Я пытаюсь обслуживать это SavedModel с тензорным обслуживанием и он может использовать только GPU: 0 на машине с несколькими GPU. Из https://github.com/tensorflow/serving/issues/311 я узнал, что обслуживание с тензорным потоком загружает график с тензорным потоком, и эта модель обучалась на одном графическом процессоре. Я пытался сохранить модель с флагом clear_devices=True, но без помощи, все еще работал на GPU: 0.

Затем я пытаюсь прочитать GraphDef в saved_model.pbtxt, из https://www.tensorflow.org/guide/extend/model_files#device Я знаю, что устройство, назначенное одному узлу / операции, определено в NodeDef.

Моя проблема заключается в том, что в этом saved_model.pbtxt для некоторых операций / узлов в NodeDef был назначен только ЦП как device: "/device:CPU:0", в то время как графический процессор не был специально назначен. Все эти операции, выполняемые на GPU, не имеют тега device в своих NodeDef.

Интересно, где информация о размещении устройства для операций с графическим процессором была сохранена в SavedModel и можно ли изменить информацию об устройстве в виде графика? Спасибо за вашу помощь.

Например, в этом saved_model.pbtxt операция ЦП была определена как:

node {
     name: "save/RestoreV2/tensor_names"
     op: "Const"
     device: "/device:CPU:0"
     ...
     }

Операция вычисления была:

node {
  name: "resnet_v2_50/block1/unit_1/bottleneck_v2/conv2/kernel/Regularizer/l2_regularizer"
  op: "Mul"
  input: "resnet_v2_50/block1/unit_1/bottleneck_v2/conv2/kernel/Regularizer/l2_regularizer/scale"
  input: "resnet_v2_50/block1/unit_1/bottleneck_v2/conv2/kernel/Regularizer/l2_regularizer/L2Loss"
  attr {
    key: "T"
    value {
      type: DT_FLOAT
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@resnet_v2_50/block1/unit_1/bottleneck_v2/conv2/weights"
      }
    }
  }
  attr {
    key: "_output_shapes"
    value {
      list {
        shape {
        }
      }
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...