Salut tout le monde,
Toutes mes excuses, c'est la première fois que j'utilise la détection d'objets de quelque sorte que ce soit, et en fait la première fois que j'utilise python. En essayant d'entraîner mon ensemble de données, j'obtiens des résultats en tant que nan.
L'erreur que je reçois est :
RuntimeWarning : valeur invalide rencontrée dans sqrt
obj[4] = np.sqrt(obj[4])
Exemple de fichier XML d'annotation
<annotation>
<folder>images</folder>
<filename>000006.png</filename>
<segmented>0</segmented>
<size>
<width>225</width>
<height>225</height>
<depth>3</depth>
</size>
<object>
<name>person</name>
<pose>Unspecified</pose>
<truncated>0</truncated>
<difficult>0</difficult>
<bndbox>
<xmin>35</xmin>
<ymin>93</ymin>
<xmax>45</xmax>
<ymax>45</ymax>
</bndbox>
</object>
<object>
<name>person</name>
<pose>Unspecified</pose>
<truncated>0</truncated>
<difficult>0</difficult>
<bndbox>
<xmin>69</xmin>
<ymin>94</ymin>
<xmax>77</xmax>
<ymax>77</ymax>
</bndbox>
</object>
<object>
<name>person</name>
<pose>Unspecified</pose>
<truncated>0</truncated>
<difficult>0</difficult>
<bndbox>
<xmin>129</xmin>
<ymin>85</ymin>
<xmax>136</xmax>
<ymax>136</ymax>
</bndbox>
</object>
<object>
<name>person</name>
<pose>Unspecified</pose>
<truncated>0</truncated>
<difficult>0</difficult>
<bndbox>
<xmin>145</xmin>
<ymin>98</ymin>
<xmax>153</xmax>
<ymax>153</ymax>
</bndbox>
</object>
<object>
<name>person</name>
<pose>Unspecified</pose>
<truncated>0</truncated>
<difficult>0</difficult>
<bndbox>
<xmin>81</xmin>
<ymin>143</ymin>
<xmax>92</xmax>
<ymax>92</ymax>
</bndbox>
</object>
<object>
<name>person</name>
<pose>Unspecified</pose>
<truncated>0</truncated>
<difficult>0</difficult>
<bndbox>
<xmin>185</xmin>
<ymin>188</ymin>
<xmax>195</xmax>
<ymax>195</ymax>
</bndbox>
</object>
<object>
<name>person</name>
<pose>Unspecified</pose>
<truncated>0</truncated>
<difficult>0</difficult>
<bndbox>
<xmin>77</xmin>
<ymin>189</ymin>
<xmax>93</xmax>
<ymax>93</ymax>
</bndbox>
</object>
<object>
<name>person</name>
<pose>Unspecified</pose>
<truncated>0</truncated>
<difficult>0</difficult>
<bndbox>
<xmin>75</xmin>
<ymin>204</ymin>
<xmax>89</xmax>
<ymax>89</ymax>
</bndbox>
</object>
</annotation>
fichier cfg
[net]
batch=64
subdivisions=8
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
max_batches = 40100
policy=steps
steps=-1,100,20000,30000
scales=.1,10,.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
size=3
stride=1
pad=1
filters=1024
activation=leaky
[convolutional]
size=1
stride=1
pad=1
filters=30
activation=linear
[region]
anchors = 1.08,1.19, 3.42,4.41, 6.63,11.38, 9.42,5.11, 16.62,10.52
bias_match=1
classes=1
coords=4
num=5
softmax=1
jitter=.2
rescore=1
object_scale=5
noobject_scale=1
class_scale=1
coord_scale=1
absolute=1
thresh = .5
random=1
J'espère que quelqu'un pourra m'orienter dans la bonne direction. C'est la première fois que j'essaie de former mon propre modèle.
Merci,
Lee
Si le train utilise votre jeu de données personnalisé, et c'est la formation initiale.
vous devriez utiliser 'burn_in' car le gradient et la perte sont très instables dans le train initial.
vérifiez le code et recherchez « vu » dans https://github.com/marvis/pytorch-yolo2/blob/master/train.py
J'ai les mêmes questions... Avez-vous une idée à ce sujet ?
Ce script vous aide apparemment à identifier quand les Nans commencent à se produire
https://gist.github.com/yuq-1s/ce63a306f1d39d1c0c80d33f7855f3b5
Mais je ne sais pas comment l'utiliser avec darkflow - si vous y parvenez, faites-le moi savoir
Vous obtenez nan parce que le Ymin est plus grand que Ymax :
<bndbox>
<xmin>69</xmin>
<ymin>94</ymin>
<xmax>77</xmax>
<ymax>77</ymax>
</bndbox>
Assurez-vous que Min est inférieur à Max pour X et Y.
Commentaire le plus utile
Vous obtenez nan parce que le Ymin est plus grand que Ymax :
Assurez-vous que Min est inférieur à Max pour X et Y.