1

我正在使用基于 xception_65 和 xception_71 架构的预训练(在城市景观数据集上) DeepLab模型进行语义分割推理。我观察到:

  1. 与 xception_71 相比,xception_65 在创建分割掩码方面更好。
  2. xception_71 明显快于 xception_65。

由于 xception_71 有 71 层,这比 xception_65 中的层数(65 层)多,它不应该有更高的推理时间还是我在某个地方错了?

(与 xception_71 相比,xception_65 中的更少

您可以在colab:segmentation_deeplab.ipynb检查代码以重现结果。

%%time

print('Model:', MODEL_NAME)
seg_map = MODEL.run(original_im)

xception_65

模型:xception65_cityscapes_trainfine
CPU 时间:用户 1.08 秒,系统:815 毫秒,总计:1.89 秒挂
壁时间:1.71 秒

xception_71

模型:xception71_cityscapes_trainfine
CPU 时间:用户 146 毫秒,系统:28 毫秒,总计:174 毫秒
挂墙时间:649 毫秒

4

1 回答 1

3

从你的笔记本:

_DOWNLOAD_URL_PREFIX = 'http://download.tensorflow.org/models/'
_MODEL_URLS = {
    'xception65_cityscapes_trainfine':
        'deeplabv3_cityscapes_train_2018_02_06.tar.gz',
    'xception71_cityscapes_trainfine':
        'deeplab_cityscapes_xception71_trainfine_2018_09_08.tar.gz',
}

注意exception65链接到 adeeplabv3 tag.gz但是xeception71链接到香草deeplab tar.gz

Deeplab 是一个全系列的模型。你exception65是一个较小的骨干,在一个更新的更强大的分段器下,这就是它表现更好的原因。


要确认模型的内容,试试这个(从12):

%load_ext tensorboard

def graph_to_tensorboard(graph, out_dir):
  with tf.Session():
    train_writer = tf.summary.FileWriter(out_dir)
    train_writer.add_graph(graph)


graph_to_tensorboard(MODEL.graph, out_dir="logs")

%tensorboard --logdir logs
于 2019-08-02T04:52:04.707 回答