상세 컨텐츠

본문 제목

check layers of pb file with OpenCV

Coding

by linguana 2021. 6. 11. 14:43

본문

cv2로 .pb 파일의 레이어를 확인할 수 있다.

import cv2

net = cv2.dnn.readNetFromTensorflow('path_to.pb')
layersNames = net.getLayerNames()
print(layersNames)

다음은 frozen_east_text_detection.pb를 확인한 결과이다.

더보기

['resnet_v1_50/conv1/Conv2D', 
'resnet_v1_50/conv1/BatchNorm/FusedBatchNorm', 
'resnet_v1_50/conv1/Relu', 
'resnet_v1_50/pool1/MaxPool', 
'resnet_v1_50/block1/unit_1/bottleneck_v1/conv1/Conv2D', 
'resnet_v1_50/block1/unit_1/bottleneck_v1/conv1/BatchNorm/FusedBatchNorm', 
'resnet_v1_50/block1/unit_1/bottleneck_v1/conv1/Relu', 
'resnet_v1_50/block1/unit_1/bottleneck_v1/conv2/Conv2D', 
'resnet_v1_50/block1/unit_1/bottleneck_v1/conv2/BatchNorm/FusedBatchNorm', 
'resnet_v1_50/block1/unit_1/bottleneck_v1/conv2/Relu', 
'resnet_v1_50/block1/unit_1/bottleneck_v1/conv3/Conv2D', 
'resnet_v1_50/block1/unit_1/bottleneck_v1/conv3/BatchNorm/FusedBatchNorm', 
'resnet_v1_50/block1/unit_1/bottleneck_v1/shortcut/Conv2D', 
'resnet_v1_50/block1/unit_1/bottleneck_v1/shortcut/BatchNorm/FusedBatchNorm', 
'resnet_v1_50/block1/unit_1/bottleneck_v1/add', 
'resnet_v1_50/block1/unit_1/bottleneck_v1/Relu', 
'resnet_v1_50/block1/unit_2/bottleneck_v1/conv1/Conv2D', 
'resnet_v1_50/block1/unit_2/bottleneck_v1/conv1/BatchNorm/FusedBatchNorm', 
'resnet_v1_50/block1/unit_2/bottleneck_v1/conv1/Relu', 
'resnet_v1_50/block1/unit_2/bottleneck_v1/conv2/Conv2D', 
'resnet_v1_50/block1/unit_2/bottleneck_v1/conv2/BatchNorm/FusedBatchNorm',
'resnet_v1_50/block1/unit_2/bottleneck_v1/conv2/Relu', 
'resnet_v1_50/block1/unit_2/bottleneck_v1/conv3/Conv2D', 
'resnet_v1_50/block1/unit_2/bottleneck_v1/conv3/BatchNorm/FusedBatchNorm', 
'resnet_v1_50/block1/unit_2/bottleneck_v1/add', 
'resnet_v1_50/block1/unit_2/bottleneck_v1/Relu', 
'resnet_v1_50/block1/unit_3/bottleneck_v1/conv1/Conv2D', 
'resnet_v1_50/block1/unit_3/bottleneck_v1/conv1/BatchNorm/FusedBatchNorm', 
'resnet_v1_50/block1/unit_3/bottleneck_v1/conv1/Relu', 
'resnet_v1_50/block1/unit_3/bottleneck_v1/conv2/Conv2D', 
'resnet_v1_50/block1/unit_3/bottleneck_v1/conv2/BatchNorm/FusedBatchNorm', 
'resnet_v1_50/block1/unit_3/bottleneck_v1/conv2/Relu', 
'resnet_v1_50/block1/unit_3/bottleneck_v1/conv3/Conv2D', 
'resnet_v1_50/block1/unit_3/bottleneck_v1/conv3/BatchNorm/FusedBatchNorm', 
'resnet_v1_50/block1/unit_3/bottleneck_v1/shortcut/MaxPool', 
'resnet_v1_50/block1/unit_3/bottleneck_v1/add', 
'resnet_v1_50/block1/unit_3/bottleneck_v1/Relu', 
'resnet_v1_50/block2/unit_1/bottleneck_v1/conv1/Conv2D', 
'resnet_v1_50/block2/unit_1/bottleneck_v1/conv1/BatchNorm/FusedBatchNorm', 
'resnet_v1_50/block2/unit_1/bottleneck_v1/conv1/Relu', 
'resnet_v1_50/block2/unit_1/bottleneck_v1/conv2/Conv2D', 
'resnet_v1_50/block2/unit_1/bottleneck_v1/conv2/BatchNorm/FusedBatchNorm', 
'resnet_v1_50/block2/unit_1/bottleneck_v1/conv2/Relu', 
'resnet_v1_50/block2/unit_1/bottleneck_v1/conv3/Conv2D', 
'resnet_v1_50/block2/unit_1/bottleneck_v1/conv3/BatchNorm/FusedBatchNorm', 
'resnet_v1_50/block2/unit_1/bottleneck_v1/shortcut/Conv2D', 
'resnet_v1_50/block2/unit_1/bottleneck_v1/shortcut/BatchNorm/FusedBatchNorm', 
'resnet_v1_50/block2/unit_1/bottleneck_v1/add', 
'resnet_v1_50/block2/unit_1/bottleneck_v1/Relu', 
'resnet_v1_50/block2/unit_2/bottleneck_v1/conv1/Conv2D', 
'resnet_v1_50/block2/unit_2/bottleneck_v1/conv1/BatchNorm/FusedBatchNorm', 
'resnet_v1_50/block2/unit_2/bottleneck_v1/conv1/Relu', 
'resnet_v1_50/block2/unit_2/bottleneck_v1/conv2/Conv2D', 
'resnet_v1_50/block2/unit_2/bottleneck_v1/conv2/BatchNorm/FusedBatchNorm', 
'resnet_v1_50/block2/unit_2/bottleneck_v1/conv2/Relu', 
'resnet_v1_50/block2/unit_2/bottleneck_v1/conv3/Conv2D', 
'resnet_v1_50/block2/unit_2/bottleneck_v1/conv3/BatchNorm/FusedBatchNorm', 
'resnet_v1_50/block2/unit_2/bottleneck_v1/add', 
'resnet_v1_50/block2/unit_2/bottleneck_v1/Relu', 
'resnet_v1_50/block2/unit_3/bottleneck_v1/conv1/Conv2D', 
'resnet_v1_50/block2/unit_3/bottleneck_v1/conv1/BatchNorm/FusedBatchNorm', 
'resnet_v1_50/block2/unit_3/bottleneck_v1/conv1/Relu', 
'resnet_v1_50/block2/unit_3/bottleneck_v1/conv2/Conv2D', 
'resnet_v1_50/block2/unit_3/bottleneck_v1/conv2/BatchNorm/FusedBatchNorm', 
'resnet_v1_50/block2/unit_3/bottleneck_v1/conv2/Relu', 
'resnet_v1_50/block2/unit_3/bottleneck_v1/conv3/Conv2D', 
'resnet_v1_50/block2/unit_3/bottleneck_v1/conv3/BatchNorm/FusedBatchNorm', 
'resnet_v1_50/block2/unit_3/bottleneck_v1/add', 
'resnet_v1_50/block2/unit_3/bottleneck_v1/Relu', 
'resnet_v1_50/block2/unit_4/bottleneck_v1/conv1/Conv2D', 
'resnet_v1_50/block2/unit_4/bottleneck_v1/conv1/BatchNorm/FusedBatchNorm', 
'resnet_v1_50/block2/unit_4/bottleneck_v1/conv1/Relu', 
'resnet_v1_50/block2/unit_4/bottleneck_v1/conv2/Conv2D', 
'resnet_v1_50/block2/unit_4/bottleneck_v1/conv2/BatchNorm/FusedBatchNorm', 
'resnet_v1_50/block2/unit_4/bottleneck_v1/conv2/Relu', 
'resnet_v1_50/block2/unit_4/bottleneck_v1/conv3/Conv2D', 
'resnet_v1_50/block2/unit_4/bottleneck_v1/conv3/BatchNorm/FusedBatchNorm', 
'resnet_v1_50/block2/unit_4/bottleneck_v1/shortcut/MaxPool', 
'resnet_v1_50/block2/unit_4/bottleneck_v1/add', 
'resnet_v1_50/block2/unit_4/bottleneck_v1/Relu', 
'resnet_v1_50/block3/unit_1/bottleneck_v1/conv1/Conv2D', 
'resnet_v1_50/block3/unit_1/bottleneck_v1/conv1/BatchNorm/FusedBatchNorm', 
'resnet_v1_50/block3/unit_1/bottleneck_v1/conv1/Relu', 
'resnet_v1_50/block3/unit_1/bottleneck_v1/conv2/Conv2D', 
'resnet_v1_50/block3/unit_1/bottleneck_v1/conv2/BatchNorm/FusedBatchNorm', 
'resnet_v1_50/block3/unit_1/bottleneck_v1/conv2/Relu', 
'resnet_v1_50/block3/unit_1/bottleneck_v1/conv3/Conv2D', 
'resnet_v1_50/block3/unit_1/bottleneck_v1/conv3/BatchNorm/FusedBatchNorm', 
'resnet_v1_50/block3/unit_1/bottleneck_v1/shortcut/Conv2D', 
'resnet_v1_50/block3/unit_1/bottleneck_v1/shortcut/BatchNorm/FusedBatchNorm', 
'resnet_v1_50/block3/unit_1/bottleneck_v1/add', 
'resnet_v1_50/block3/unit_1/bottleneck_v1/Relu', 
'resnet_v1_50/block3/unit_2/bottleneck_v1/conv1/Conv2D', 
'resnet_v1_50/block3/unit_2/bottleneck_v1/conv1/BatchNorm/FusedBatchNorm', 
'resnet_v1_50/block3/unit_2/bottleneck_v1/conv1/Relu', 
'resnet_v1_50/block3/unit_2/bottleneck_v1/conv2/Conv2D', 
'resnet_v1_50/block3/unit_2/bottleneck_v1/conv2/BatchNorm/FusedBatchNorm', 
'resnet_v1_50/block3/unit_2/bottleneck_v1/conv2/Relu', 
'resnet_v1_50/block3/unit_2/bottleneck_v1/conv3/Conv2D', 
'resnet_v1_50/block3/unit_2/bottleneck_v1/conv3/BatchNorm/FusedBatchNorm', 
'resnet_v1_50/block3/unit_2/bottleneck_v1/add', 
'resnet_v1_50/block3/unit_2/bottleneck_v1/Relu', 
'resnet_v1_50/block3/unit_3/bottleneck_v1/conv1/Conv2D', 'resnet_v1_50/block3/unit_3/bottleneck_v1/conv1/BatchNorm/FusedBatchNorm', 'resnet_v1_50/block3/unit_3/bottleneck_v1/conv1/Relu', 'resnet_v1_50/block3/unit_3/bottleneck_v1/conv2/Conv2D', 'resnet_v1_50/block3/unit_3/bottleneck_v1/conv2/BatchNorm/FusedBatchNorm', 'resnet_v1_50/block3/unit_3/bottleneck_v1/conv2/Relu', 'resnet_v1_50/block3/unit_3/bottleneck_v1/conv3/Conv2D', 'resnet_v1_50/block3/unit_3/bottleneck_v1/conv3/BatchNorm/FusedBatchNorm', 'resnet_v1_50/block3/unit_3/bottleneck_v1/add', 'resnet_v1_50/block3/unit_3/bottleneck_v1/Relu', 'resnet_v1_50/block3/unit_4/bottleneck_v1/conv1/Conv2D', 'resnet_v1_50/block3/unit_4/bottleneck_v1/conv1/BatchNorm/FusedBatchNorm', 'resnet_v1_50/block3/unit_4/bottleneck_v1/conv1/Relu', 'resnet_v1_50/block3/unit_4/bottleneck_v1/conv2/Conv2D', 'resnet_v1_50/block3/unit_4/bottleneck_v1/conv2/BatchNorm/FusedBatchNorm', 'resnet_v1_50/block3/unit_4/bottleneck_v1/conv2/Relu', 'resnet_v1_50/block3/unit_4/bottleneck_v1/conv3/Conv2D', 'resnet_v1_50/block3/unit_4/bottleneck_v1/conv3/BatchNorm/FusedBatchNorm', 'resnet_v1_50/block3/unit_4/bottleneck_v1/add', 'resnet_v1_50/block3/unit_4/bottleneck_v1/Relu', 'resnet_v1_50/block3/unit_5/bottleneck_v1/conv1/Conv2D', 'resnet_v1_50/block3/unit_5/bottleneck_v1/conv1/BatchNorm/FusedBatchNorm', 'resnet_v1_50/block3/unit_5/bottleneck_v1/conv1/Relu', 
'resnet_v1_50/block3/unit_5/bottleneck_v1/conv2/Conv2D', 'resnet_v1_50/block3/unit_5/bottleneck_v1/conv2/BatchNorm/FusedBatchNorm', 'resnet_v1_50/block3/unit_5/bottleneck_v1/conv2/Relu', 'resnet_v1_50/block3/unit_5/bottleneck_v1/conv3/Conv2D', 'resnet_v1_50/block3/unit_5/bottleneck_v1/conv3/BatchNorm/FusedBatchNorm', 'resnet_v1_50/block3/unit_5/bottleneck_v1/add', 'resnet_v1_50/block3/unit_5/bottleneck_v1/Relu', 'resnet_v1_50/block3/unit_6/bottleneck_v1/conv1/Conv2D', 'resnet_v1_50/block3/unit_6/bottleneck_v1/conv1/BatchNorm/FusedBatchNorm', 'resnet_v1_50/block3/unit_6/bottleneck_v1/conv1/Relu', 'resnet_v1_50/block3/unit_6/bottleneck_v1/conv2/Conv2D', 'resnet_v1_50/block3/unit_6/bottleneck_v1/conv2/BatchNorm/FusedBatchNorm', 'resnet_v1_50/block3/unit_6/bottleneck_v1/conv2/Relu', 'resnet_v1_50/block3/unit_6/bottleneck_v1/conv3/Conv2D', 'resnet_v1_50/block3/unit_6/bottleneck_v1/conv3/BatchNorm/FusedBatchNorm', 'resnet_v1_50/block3/unit_6/bottleneck_v1/shortcut/MaxPool', 'resnet_v1_50/block3/unit_6/bottleneck_v1/add', 'resnet_v1_50/block3/unit_6/bottleneck_v1/Relu', 'resnet_v1_50/block4/unit_1/bottleneck_v1/conv1/Conv2D', 'resnet_v1_50/block4/unit_1/bottleneck_v1/conv1/BatchNorm/FusedBatchNorm', 'resnet_v1_50/block4/unit_1/bottleneck_v1/conv1/Relu', 'resnet_v1_50/block4/unit_1/bottleneck_v1/conv2/Conv2D', 'resnet_v1_50/block4/unit_1/bottleneck_v1/conv2/BatchNorm/FusedBatchNorm', 'resnet_v1_50/block4/unit_1/bottleneck_v1/conv2/Relu', 'resnet_v1_50/block4/unit_1/bottleneck_v1/conv3/Conv2D', 'resnet_v1_50/block4/unit_1/bottleneck_v1/conv3/BatchNorm/FusedBatchNorm', 'resnet_v1_50/block4/unit_1/bottleneck_v1/shortcut/Conv2D', 'resnet_v1_50/block4/unit_1/bottleneck_v1/shortcut/BatchNorm/FusedBatchNorm', 'resnet_v1_50/block4/unit_1/bottleneck_v1/add', 'resnet_v1_50/block4/unit_1/bottleneck_v1/Relu', 'resnet_v1_50/block4/unit_2/bottleneck_v1/conv1/Conv2D', 'resnet_v1_50/block4/unit_2/bottleneck_v1/conv1/BatchNorm/FusedBatchNorm', 'resnet_v1_50/block4/unit_2/bottleneck_v1/conv1/Relu', 'resnet_v1_50/block4/unit_2/bottleneck_v1/conv2/Conv2D', 'resnet_v1_50/block4/unit_2/bottleneck_v1/conv2/BatchNorm/FusedBatchNorm', 
'resnet_v1_50/block4/unit_2/bottleneck_v1/conv2/Relu', 'resnet_v1_50/block4/unit_2/bottleneck_v1/conv3/Conv2D', 'resnet_v1_50/block4/unit_2/bottleneck_v1/conv3/BatchNorm/FusedBatchNorm', 'resnet_v1_50/block4/unit_2/bottleneck_v1/add', 'resnet_v1_50/block4/unit_2/bottleneck_v1/Relu', 'resnet_v1_50/block4/unit_3/bottleneck_v1/conv1/Conv2D', 'resnet_v1_50/block4/unit_3/bottleneck_v1/conv1/BatchNorm/FusedBatchNorm', 'resnet_v1_50/block4/unit_3/bottleneck_v1/conv1/Relu', 'resnet_v1_50/block4/unit_3/bottleneck_v1/conv2/Conv2D', 'resnet_v1_50/block4/unit_3/bottleneck_v1/conv2/BatchNorm/FusedBatchNorm', 'resnet_v1_50/block4/unit_3/bottleneck_v1/conv2/Relu', 'resnet_v1_50/block4/unit_3/bottleneck_v1/conv3/Conv2D', 'resnet_v1_50/block4/unit_3/bottleneck_v1/conv3/BatchNorm/FusedBatchNorm', 'resnet_v1_50/block4/unit_3/bottleneck_v1/add', 'resnet_v1_50/block4/unit_3/bottleneck_v1/Relu', 'feature_fusion/ResizeBilinear', 'feature_fusion/concat', 'feature_fusion/Conv/Conv2D', 'feature_fusion/Conv/BatchNorm/FusedBatchNorm', 'feature_fusion/Conv/Relu', 'feature_fusion/Conv_1/Conv2D', 'feature_fusion/Conv_1/BatchNorm/FusedBatchNorm', 'feature_fusion/Conv_1/Relu', 'feature_fusion/ResizeBilinear_1', 'feature_fusion/concat_1', 'feature_fusion/Conv_2/Conv2D', 'feature_fusion/Conv_2/BatchNorm/FusedBatchNorm', 'feature_fusion/Conv_2/Relu', 'feature_fusion/Conv_3/Conv2D', 'feature_fusion/Conv_3/BatchNorm/FusedBatchNorm', 'feature_fusion/Conv_3/Relu', 'feature_fusion/ResizeBilinear_2', 'feature_fusion/concat_2', 'feature_fusion/Conv_4/Conv2D', 'feature_fusion/Conv_4/BatchNorm/FusedBatchNorm', 'feature_fusion/Conv_4/Relu', 'feature_fusion/Conv_5/Conv2D', 'feature_fusion/Conv_5/BatchNorm/FusedBatchNorm', 'feature_fusion/Conv_5/Relu', 'feature_fusion/Conv_6/Conv2D', 'feature_fusion/Conv_6/BatchNorm/FusedBatchNorm', 'feature_fusion/Conv_6/Relu', 'feature_fusion/Conv_9/Conv2D', 'feature_fusion/Conv_9/Sigmoid', 'feature_fusion/sub', 'feature_fusion/mul_7', 'feature_fusion/Conv_8/Conv2D', 'feature_fusion/Conv_8/Sigmoid', 'feature_fusion/mul_6', 
'feature_fusion/concat_3', 
'feature_fusion/Conv_7/Conv2D', 
'feature_fusion/Conv_7/Sigmoid']

'Coding' 카테고리의 다른 글

Image Download with urllib.request  (0) 2021.06.29
Inspecting Pretrained Tensorflow model  (0) 2021.06.10
Deep Learning Book  (0) 2021.06.10
파이토치 기본예제 손코딩하기  (0) 2021.06.09
1. Tensors  (0) 2021.06.07

관련글 더보기