La première couche de convolution 1, le nombre de noyaux de convolution est de 96 ; la deuxième couche de convolution 2, le nombre de convolutions est de 256 ; l'entrée est la sortie de la deuxième couche, le nombre de noyaux de convolution ; est 384 ; la quatrième couche de convolution est 4, l'entrée est la sortie de la troisième couche et le nombre de noyaux de convolution est 384 ; la cinquième couche de convolution est 5, l'entrée est la sortie de la quatrième couche et le le nombre de noyaux de convolution est Le nombre est 256.
L'environnement d'exploitation de ce tutoriel : système Windows 7, ordinateur Dell G3.
Le réseau AlexNet a été conçu par Hinton, champion du concours ImageNet 2012, et son élève Alex Krizhevsky. Après cette année, des réseaux de neurones de plus en plus profonds ont été proposés, comme les excellents vgg et GoogleLeNet. La précision de son modèle de données officiellement fourni atteint 57,1 % et celle du top 1 à 5 atteint 80,2 %. C'est déjà tout à fait remarquable pour les algorithmes de classification d'apprentissage automatique traditionnels. L'image montre la structure du réseau d'Alexnet dans Caffe, en utilisant deux serveurs GPU, vous verrez donc deux organigrammes. Le modèle de réseau AlexNet est interprété comme suit :
est interprété comme suit :
第一层:卷积层1,输入为 224×224×3 224 \times 224 \times 3224×224×3的图像,卷积核的数量为96,论文中两片GPU分别计算48个核; 卷积核的大小为 11×11×3 11 \times 11 \times 311×11×3; stride = 4, stride表示的是步长, pad = 0, 表示不扩充边缘;卷积后的图形大小是怎样的呢? wide = (224 + 2 * padding - kernel_size) / stride + 1 = 54height = (224 + 2 * padding - kernel_size) / stride + 1 = 54dimention = 96然后进行 (Local Response Normalized), 后面跟着池化pool_size = (3, 3), stride = 2, pad = 0 最终获得第一层卷积的feature map最终第一层卷积的输出为 第二层:卷积层2, 输入为上一层卷积的feature map, 卷积的个数为256个,论文中的两个GPU分别有128个卷积核。卷积核的大小为:5×5×48 5 \times 5 \times 485×5×48; pad = 2, stride = 1; 然后做 LRN, 最后 max_pooling, pool_size = (3, 3), stride = 2; 第三层:卷积3, 输入为第二层的输出,卷积核个数为384, kernel_size = (3×3×256 3 \times 3 \times 2563×3×256), padding = 1, 第三层没有做LRN和Pool 第四层:卷积4, 输入为第三层的输出,卷积核个数为384, kernel_size = (3×3 3 \times 33×3), padding = 1, 和第三层一样,没有LRN和Pool 第五层:卷积5, 输入为第四层的输出,卷积核个数为256, kernel_size = (3×3 3 \times 33×3), padding = 1。然后直接进行max_pooling, pool_size = (3, 3), stride = 2;第6,7,8层是全连接层,每一层的神经元的个数为4096,最终输出softmax为1000,因为上面介绍过,ImageNet这个比赛的分类个数为1000。全连接层中使用了RELU和Dropout。
python3 draw_net.py --rankdir TB ../models/bvlc_alexnet/train_val.prototxt AlexNet_structure.jpg
(4) a proposé la couche LRN pour créer un mécanisme de compétition pour l'activité des neurones locaux, rendant la valeur avec une réponse plus grande relativement plus grande et inhibant d'autres neurones avec un feedback plus petit, améliorant ainsi la capacité de généralisation du modèle.
(5) La formation multi-GPU peut augmenter l'échelle de la formation réseau. (6) Entrée d'images de données ImageNet à un million de niveaux. Il existe trois méthodes d'augmentation des données utilisées dans AlexNet :
Transformation (recadrage) ; Transformation de réflexion (retournement) ;
Transformation de l'éclairage et des couleurs (instabilité des couleurs) : effectuez d'abord une traduction aléatoire sur l'image, puis retournez-la horizontalement. Lors du test, effectuez d'abord 5 transformations de traduction en haut à gauche, en haut à droite, en bas à gauche. en bas à droite et au milieu, puis après le retournement, faites la moyenne des résultats
peut être résumé comme suit :
Utilisez l'augmentation des données pour ; améliorer l'ensemble de données (augmentation des données)
Retournement horizontal des images, recadrage aléatoire, transformation de traduction, transformation de couleur, transformation d'éclairage, etc. Utilisez plusieurs GPU pour la formation Divisez les résultats ; de la couche supérieure en 2 parties en fonction de la dimension du canal et envoyez-les respectivement à 2 GPU, comme la couche de 27 × 27 × 96 pixels sortie par la couche précédente (divisée en deux groupes de couches de 27 × 27 × 48 pixels et placée dans deux GPU différents pour le fonctionnement);Préparez l'ensemble de données, modifiez le train.prototxt du réseau Alexnet, configurez le solveur, déployez le fichier.prototxt, créez un nouveau script train.sh et démarrez la formation.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!