日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

【问题记录】raise IndexError(‘index {} is out of range‘.format(idx)) index 0 is out of range

發(fā)布時(shí)間:2024/9/30 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【问题记录】raise IndexError(‘index {} is out of range‘.format(idx)) index 0 is out of range 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

先記錄一些語(yǔ)法:
X[:, m:n]即取矩陣X的所有行中的的第m到n-1列數(shù)據(jù),含左不含右。
X[0,:]就是取矩陣X的第0行的所有元素,X[1,:]取矩陣X的第一行的所有元素。

今天訓(xùn)練模型輸入python3 train.py --model_def config/yolov3-custom.cfg --data_config config/custom.data
第一次出現(xiàn)這個(gè)錯(cuò)誤,記錄解決方案:
查了看到有人說(shuō)什么加上except:continue;大概跟我出的錯(cuò)不一樣,總之我沒(méi)法按照這樣解決問(wèn)題,先截圖一下我出問(wèn)題的界面:
File “train.py”, line 62, in
model = Darknet(opt.model_def).to(device)
File “/hexinyi/PyTorch-YOLOv3/models.py”, line 240, in init
self.yolo_layers = [layer[0] for layer in self.module_list if isinstance(layer[0], YOLOLayer)]
File “/hexinyi/PyTorch-YOLOv3/models.py”, line 240, in
self.yolo_layers = [layer[0] for layer in self.module_list if isinstance(layer[0], YOLOLayer)]
File “/usr/local/lib/python3.6/dist-packages/torch/nn/modules/container.py”, line 68, in getitem
return self._get_item_by_idx(self._modules.values(), idx)
File “/usr/local/lib/python3.6/dist-packages/torch/nn/modules/container.py”, line 60, in _get_item_by_idx
raise IndexError(‘index {} is out of range’.format(idx))
IndexError: index 0 is out of range

首先出現(xiàn)這個(gè)問(wèn)題是在我新增了數(shù)據(jù)集的圖片并且增加了種類數(shù)目之后(classes numbers)
然后我檢查我的train.txt和label等txt文件是否寫(xiě)錯(cuò)了或者下標(biāo)溢出了,但是都沒(méi)有發(fā)現(xiàn)錯(cuò)誤,



然后我檢查自己的config文件,懷疑可能是配置的問(wèn)題,因?yàn)閏lass的數(shù)目發(fā)生修改之后yolo層的config也需要修改:

然后發(fā)現(xiàn)我確實(shí)有寫(xiě)錯(cuò),之前以為只有一層yolo,然后仔細(xì)看才發(fā)現(xiàn)有兩層yolo:


然后每一個(gè)yolo之前的[convolutional]都需要修改其中的filters=21(因?yàn)槭莾深?#xff0c;3*7)
[yolo]的classes 修改為 2(原來(lái)是1) 改完之后 bash create_custom_model.sh,生成一個(gè)新的yolov3-custom.cfg,
其中cfg中有的要改的地方還沒(méi)發(fā)生改變就手動(dòng)修改過(guò)來(lái),然后會(huì)彈出一個(gè)窗口說(shuō)file changed,選擇overwrite。

[net] # Testing batch=1 subdivisions=1 # Training # batch=64 # subdivisions=2 width=416 height=416 channels=3 momentum=0.9 decay=0.0005 angle=0 saturation = 1.5 exposure = 1.5 hue=.1 learning_rate=0.001 burn_in=1000 max_batches = 500200 policy=steps steps=400000,450000 scales=.1,.1 [convolutional] batch_normalize=1 filters=16 size=3 stride=1 pad=1 activation=leaky [maxpool] size=2 stride=2 [convolutional] batch_normalize=1 filters=32 size=3 stride=1 pad=1 activation=leaky [maxpool] size=2 stride=2 [convolutional] batch_normalize=1 filters=64 size=3 stride=1 pad=1 activation=leaky [maxpool] size=2 stride=2 [convolutional] batch_normalize=1 filters=128 size=3 stride=1 pad=1 activation=leaky [maxpool] size=2 stride=2 [convolutional] batch_normalize=1 filters=256 size=3 stride=1 pad=1 activation=leaky [maxpool] size=2 stride=2 [convolutional] batch_normalize=1 filters=512 size=3 stride=1 pad=1 activation=leaky [maxpool] size=2 stride=1 [convolutional] batch_normalize=1 filters=1024 size=3 stride=1 pad=1 activation=leaky [convolutional] batch_normalize=1 filters=256 size=1 stride=1 pad=1 activation=leaky [convolutional] batch_normalize=1 filters=512 size=3 stride=1 pad=1 activation=leaky [convolutional] #這里要修改filters size=1 stride=1 pad=1 filters=21 activation=linear [yolo] #注意這里 mask = 3,4,5 anchors = 10,14, 23,27, 37,58, 81,82, 135,169, 344,319 classes=2 num=6 jitter=.3 ignore_thresh = .7 truth_thresh = 1 random=1 [route] layers = -4 [convolutional] batch_normalize=1 filters=128 size=1 stride=1 pad=1 activation=leaky [upsample] stride=2 [route] layers = -1, 8 [convolutional] batch_normalize=1 filters=256 size=3 stride=1 pad=1 activation=leaky [convolutional] #修改filter size=1 stride=1 pad=1 filters=21 activation=linear [yolo] #這里要修改classes mask = 0,1,2 anchors = 10,14, 23,27, 37,58, 81,82, 135,169, 344,319 classes=2 num=6 jitter=.3 ignore_thresh = .7 truth_thresh = 1 random=1

再次運(yùn)行輸入python3 train.py --model_def config/yolov3-custom.cfg --data_config config/custom.data
成功了:

另外發(fā)現(xiàn)剛開(kāi)始的epoch的mAP都非常低,到后來(lái)逐漸增高。


在第二十多epoch的時(shí)候已經(jīng)達(dá)到百分之七十。
然后總結(jié)就是修改數(shù)據(jù)集后一定要注意cfg文件是否要修改。

總結(jié)

以上是生活随笔為你收集整理的【问题记录】raise IndexError(‘index {} is out of range‘.format(idx)) index 0 is out of range的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。