首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >getLayerNames()和getUnconnecteddOutLayers()函数的工作和输出是什么?

getLayerNames()和getUnconnecteddOutLayers()函数的工作和输出是什么?
EN

Stack Overflow用户
提问于 2019-08-29 16:47:38
回答 2查看 5K关注 0票数 6

我几乎在互联网上到处寻找,但我找不到以下函数的工作和输出。特别是他们在YOLO算法中所做的事情。

代码语言:javascript
复制
getLayerNames()
getUnconnectedOutLayers()

代码如下:

代码语言:javascript
复制
import cv2 
import numpy as np 
import time 
#Loading Yolo 
net = cv2.dnn.readNet("yolov3.weights", "yolov3.cfg") 
classes = [] 
with open("coco.names", "r") as f: 
  classes = [line.strip() for line in f.readlines()] 
layer_names = net.getLayerNames() 
outputlayers=[layer_names[i[0] - 1] for i in net.getUnconnectedOutLayers()] 
EN

回答 2

Stack Overflow用户

发布于 2019-09-22 11:10:28

如图所示,YOLOv3有3个输出层(82、94和106)。

getLayerNames():获取网络所有层的名称。

getUnconnectedOutLayers():获取输出层的索引。

这两个函数用于获取输出层(82,94,106)。为了简单起见,我更喜欢使用以下代码:

代码语言:javascript
复制
import cv2 
import numpy as np 
import time 
#Loading Yolo 
net = cv2.dnn.readNet("yolov3.weights", "yolov3.cfg") 
classes = [] 
with open("coco.names", "r") as f: 
  classes = [line.strip() for line in f.readlines()] 
outputlayers = net.getUnconnectedOutLayersNames()  

REFERENCE FOR THE IMAGE (外部链接)

票数 5
EN

Stack Overflow用户

发布于 2020-03-15 23:17:58

我的理解是:

net.getLayerNames():它提供网络中使用的所有层的列表。就像我目前正在使用yolov3一样。它给了我一个254层的列表。

net.getUnconnectedOutLayers():它提供来自net.getLayerNames()的列表中的最终层数。我认为它给出了未使用的层数(最后一层)。对于yolov3,它给了我三个数字,200,227,254。为了获得相应的索引,我们需要执行layer_names[i - 1]。希望这些能有所帮助。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57706412

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档