在 ‘__init__.py‘ 中找不到引用 XXXXX

文章讲述了作者在学习过程中遇到的一个关于Python编程的困惑,即在`__init__.py`中找不到对start的引用。问题在于无意中遗漏的缩进,一个小空格导致的错误。作者提醒读者在遇到类似问题时,注意检查缩进和细节。
摘要由CSDN通过智能技术生成

有人在学习中遇到过这个问题么?

今天是个简短的注意事项

缩进!缩进!!缩进啊!!!

谁懂啊  找了半天原因,字母也都一个一个对过去了,符号也都看了没问题,怎么都不知道为什么说在   '__init__.py' 中找不到引用 'start' 

我寻思着我都已经定义好了啊,就在前两行明晃晃的挂着呢!!!

然后突然脑子一灵光,把 while 前面打了个空格

哟吼  好了呢

至此问题解决

真就每天踩一坑,坑坑不一样,好了,以后问题原因又要多一项检查对象了

在yolov5_v6.2版本,可以使用k-means算法来自动计算聚类心点,以便更好地初始化锚框。 具体步骤如下: 1. 打开yolov5/data/下的coco.names文件,将其的类别名称复制到一个txt文件,每行一个类别名称。 2. 打开yolov5/utils/下的datasets.py文件,将KMeans类添加到文件,代码如下: ``` from sklearn.cluster import KMeans class KMeans: def __init__(self, n_clusters=9, max_iter=300, random_state=0): self.n_clusters = n_clusters self.max_iter = max_iter self.random_state = random_state def fit(self, X): kmeans = KMeans( n_clusters=self.n_clusters, max_iter=self.max_iter, random_state=self.random_state ).fit(X) self.cluster_centers_ = kmeans.cluster_centers_ def predict(self, X): return KMeans.predict(kmeans, X) ``` 3. 打开yolov5/utils/下的general.py文件,将load_dataset函数修改为如下代码: ``` from utils.datasets import KMeans def load_dataset(data, args, augment=False): paths, labels = [], [] for path, label in zip(data['train'], data['train_labels']): if os.path.isfile(path): paths.append(path) labels.append(label) # Load labels with open(args.classes) as f: classes = [line.strip() for line in f.readlines()] # Compute anchor boxes if args.anchor_t: if os.path.isfile(args.anchor_t): # Load anchor boxes from file with open(args.anchor_t) as f: anchors = np.array([x.split(',') for x in f.read().strip().split('\n')], dtype=np.float32) else: # Compute anchor boxes using k-means clustering n = len(paths) # number of samples m = args.anchor_t # number of anchors dataset = [] for i in tqdm(range(n)): img_path = paths[i] img = cv2.imread(img_path) img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) # convert to RGB h, w = img.shape[:2] for j, (xmin, ymin, xmax, ymax, cls_id) in enumerate(labels[i]): # Normalize box coordinates to range [0, 1] xmin, xmax = xmin / w, xmax / w ymin, ymax = ymin / h, ymax / h # Compute box width and height box_w, box_h = xmax - xmin, ymax - ymin # Append box width and height to dataset dataset.append([box_w, box_h]) kmeans = KMeans(n_clusters=m).fit(dataset) anchors = kmeans.cluster_centers_ # Save anchor boxes to file with open(args.anchor_t, 'w') as f: for anchor in anchors: f.write(','.join(str(x) for x in anchor) + '\n') else: anchors = [] # Create dataset if len(paths) > 0: dataset = Dataset( paths=paths, labels=labels, classes=classes, anchors=anchors, img_size=args.img_size, augment=augment ) else: dataset = None return dataset ``` 4. 执行以下命令来生成锚框: ``` python train.py --data coco.yaml --cfg ./models/yolov5s.yaml --weights '' --verbose --kmeans ``` 其,--kmeans参数表示使用k-means算法来计算锚框。 5. 训练模型前,需要确认yolov5/data/下已经生成了anchors.txt文件,如果没有生成,可以执行以下命令: ``` python train.py --data coco.yaml --cfg ./models/yolov5s.yaml --weights '' --verbose --kmeans --notest ``` 其,--notest参数表示不进行测试,只生成anchors.txt文件。 以上就是在yolov5_v6.2版本使用k-means算法计算锚框的步骤。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值