我正在使用基于xception_65和xception_71架构的预训练(在城市景观数据集上)DeepLab模型进行语义分割推理。我观察到:
- 与xception_71相比,xception_65在创建分割掩码方面更好。
- 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 毫秒
从你的笔记本:
_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
如何链接到deeplabv3
tag.gz
,但xeception71
链接到原版deeplab
tar.gz
Deeplab是一个完整的模型系列。您的exception65
是一个较小的主干,在更新更强大的分段器下,这就是为什么它表现得更好。
要确认模型的内容,请尝试以下操作(从 1、2 开始):
%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