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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

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

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

今天訓練模型輸入python3 train.py --model_def config/yolov3-custom.cfg --data_config config/custom.data
第一次出現這個錯誤,記錄解決方案:
查了看到有人說什么加上except:continue;大概跟我出的錯不一樣,總之我沒法按照這樣解決問題,先截圖一下我出問題的界面:
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

首先出現這個問題是在我新增了數據集的圖片并且增加了種類數目之后(classes numbers)
然后我檢查我的train.txt和label等txt文件是否寫錯了或者下標溢出了,但是都沒有發現錯誤,



然后我檢查自己的config文件,懷疑可能是配置的問題,因為class的數目發生修改之后yolo層的config也需要修改:

然后發現我確實有寫錯,之前以為只有一層yolo,然后仔細看才發現有兩層yolo:


然后每一個yolo之前的[convolutional]都需要修改其中的filters=21(因為是兩類,3*7)
[yolo]的classes 修改為 2(原來是1) 改完之后 bash create_custom_model.sh,生成一個新的yolov3-custom.cfg,
其中cfg中有的要改的地方還沒發生改變就手動修改過來,然后會彈出一個窗口說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

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

另外發現剛開始的epoch的mAP都非常低,到后來逐漸增高。


在第二十多epoch的時候已經達到百分之七十。
然后總結就是修改數據集后一定要注意cfg文件是否要修改。

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。