


Utilisation de la visualisation logicielle et de l'apprentissage par transfert dans la prévision des défauts logiciels
La motivation de l'article est d'éviter la représentation intermédiaire du code source, de représenter le code source sous forme d'image et d'extraire directement les informations sémantiques du code pour améliorer les performances de prédiction des défauts.
Tout d’abord, consultez l’exemple de motivation ci-dessous. Bien que les deux exemples de File1.java et File2.java contiennent 1 instruction if, 2 instructions for et 4 appels de fonction, la sémantique et les caractéristiques structurelles du code sont différentes. Afin de vérifier si la conversion du code source en images peut aider à distinguer différents codes, l'auteur a mené une expérience : mapper le code source en pixels selon le nombre décimal ASCII des caractères, les organiser dans une matrice de pixels et obtenir une image de le code source. L'auteur souligne qu'il existe des différences entre les différentes images de code source.
Fig. 1 Exemple de motivation
Les principales contributions de l'article sont les suivantes :
Convertir le code en image et en extraire des informations sémantiques et structurelles
Proposer un cadre de bout en bout qui ; combine un mécanisme d'auto-attention et un apprentissage de migration pour mettre en œuvre la prédiction des défauts.
Le cadre de modèle proposé dans l'article est présenté dans la figure 2, qui est divisée en deux étapes : la visualisation du code source et la modélisation de l'apprentissage par transfert profond.
Fig. 2 Framework
1. Visualisation du code source
L'article convertit le code source en 6 images et le processus est illustré dans la figure 3. Convertissez les codes ASCII décimaux des caractères du code source en vecteurs entiers non signés de 8 bits, organisez ces vecteurs par lignes et colonnes et générez une matrice d'image. Les entiers 8 bits correspondent directement aux niveaux de gris. Afin de résoudre le problème du petit ensemble de données original, l'auteur a proposé dans l'article une méthode d'expansion de l'ensemble de données basée sur l'amélioration des couleurs : les valeurs des trois canaux de couleur de R, V et B sont disposées et combinés pour générer 6 images couleur. Cela semble assez déroutant ici. Après avoir modifié la valeur du canal, les informations sémantiques et structurelles devraient changer, n'est-ce pas ? Mais l’auteur l’explique dans une note de bas de page, comme le montre la figure 4.
Fig. 3 Processus de visualisation du code source
Fig. 4 Note de bas de page 2
2. Modélisation de l'apprentissage par transfert profond
L'article utilise le réseau DAN pour capturer les informations sémantiques et structurelles du code source. Afin d'améliorer la capacité du modèle à exprimer des informations importantes, l'auteur a ajouté une couche Attention à la structure DAN originale. Le processus de formation et de test est illustré à la figure 5, dans laquelle conv1-conv5 provient d'AlexNet et quatre couches entièrement connectées fc6-fc9 sont utilisées comme classificateurs. L'auteur a mentionné que pour un nouveau projet, la formation d'un modèle d'apprentissage profond nécessite une grande quantité de données étiquetées, ce qui est difficile. Par conséquent, l'auteur a d'abord formé un modèle pré-entraîné sur ImageNet 2012 et a utilisé les paramètres du modèle pré-entraîné comme paramètres initiaux pour affiner toutes les couches convolutives, réduisant ainsi la différence entre les images de code et les images dans ImageNet 2012.
Fig. 5 Processus de formation et de test
3. Formation et prédiction du modèle
Générez des images de code pour le code étiqueté dans le projet Source et le code non étiqueté dans le projet Target, et envoyez-les au modèle. en même temps ; ils sont partagés entre la couche convolutionnelle et la couche d’attention pour extraire leurs caractéristiques respectives. Calculez MK-MDD (Multi Kernel Variant Maximum Mean Discrepancy) entre la source et la cible dans la couche entièrement connectée. Puisque Target n’a pas d’étiquette, l’entropie croisée n’est calculée que pour Source. Le modèle est entraîné le long de la fonction de perte en utilisant une descente de gradient stochastique en mini-lots. Pour chaque
Dans la partie expérimentale, l'auteur a sélectionné tous les projets Java open source dans l'entrepôt de données PROMISE et a collecté leurs numéros de version, leurs noms de classe et s'il y avait des balises de bug. Téléchargez le code source depuis github en fonction du numéro de version et du nom de la classe. Enfin, les données de 10 projets Java ont été collectées. La structure de l'ensemble de données est illustrée à la figure 6.
Fig. 6 Structure de l'ensemble de données
Pour la prédiction des défauts intra-projet, l'article sélectionne le modèle de base suivant à des fins de comparaison :
Pour la prédiction des défauts entre projets, l'article sélectionne le modèle de base suivant à des fins de comparaison :
Pour résumer, même s'il s'agissait d'un article il y a deux ans, l'idée est encore relativement nouvelle et évite une série de représentations intermédiaires de code telles que comme AST. Convertissez le code directement en images pour extraire des fonctionnalités. Mais je suis toujours confus. L'image convertie à partir du code contient-elle vraiment les informations sémantiques et structurelles du code source ? Cela ne semble pas très explicable, haha. Nous devrons faire une analyse expérimentale plus tard.
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Titre : Explorez le logiciel Bonjour et comment le désinstaller Résumé : Cet article présentera les fonctions, le champ d'utilisation et comment désinstaller le logiciel Bonjour. Parallèlement, il sera également expliqué comment utiliser d'autres outils pour remplacer Bonjour afin de répondre aux besoins des utilisateurs. Introduction : Bonjour est un logiciel courant dans le domaine de la technologie informatique et réseau. Bien que cela puisse paraître peu familier à certains utilisateurs, cela peut être très utile dans certaines situations spécifiques. Si le logiciel Bonjour est installé mais que vous souhaitez maintenant le désinstaller, alors

Récemment, de nombreux amis m'ont demandé quoi faire si WPSOffice ne pouvait pas ouvrir les fichiers PPT. Ensuite, apprenons comment résoudre le problème de l'incapacité de WPSOffice à ouvrir les fichiers PPT. J'espère que cela pourra aider tout le monde. 1. Ouvrez d'abord WPSOffice et accédez à la page d'accueil, comme indiqué dans la figure ci-dessous. 2. Saisissez ensuite le mot-clé « réparation de documents » dans la barre de recherche ci-dessus, puis cliquez pour ouvrir l'outil de réparation de documents, comme indiqué dans la figure ci-dessous. 3. Importez ensuite le fichier PPT pour réparation, comme indiqué dans la figure ci-dessous.

CrystalDiskMark est un petit outil de référence pour disques durs qui mesure rapidement les vitesses de lecture/écriture séquentielles et aléatoires. Ensuite, laissez l'éditeur vous présenter CrystalDiskMark et comment utiliser crystaldiskmark~ 1. Introduction à CrystalDiskMark CrystalDiskMark est un outil de test de performances de disque largement utilisé pour évaluer la vitesse et les performances de lecture et d'écriture des disques durs mécaniques et des disques SSD (SSD). ). Performances d’E/S aléatoires. Il s'agit d'une application Windows gratuite qui fournit une interface conviviale et divers modes de test pour évaluer différents aspects des performances du disque dur. Elle est largement utilisée dans les revues de matériel.
![Le logiciel Corsair iCUE ne détecte pas la RAM [Corrigé]](https://img.php.cn/upload/article/000/465/014/170831448976874.png?x-oss-process=image/resize,m_fill,h_207,w_330)
Cet article explorera les étapes que les utilisateurs peuvent suivre lorsque le logiciel CorsairiCUE ne reconnaît pas la RAM d'un système Windows. Bien que le logiciel CorsairiCUE soit conçu pour permettre aux utilisateurs de contrôler l'éclairage RVB de leur ordinateur, certains utilisateurs ont constaté que le logiciel ne fonctionnait pas correctement, entraînant une incapacité à détecter les modules RAM. Pourquoi l'ICUE ne récupère-t-elle pas ma mémoire ? La principale raison pour laquelle ICUE ne peut pas identifier correctement la RAM est généralement liée à des conflits logiciels en arrière-plan. De plus, des paramètres d'écriture SPD incorrects peuvent également être à l'origine de ce problème. Problème résolu avec le logiciel CorsairIcue ne détectant pas la RAM Si le logiciel CorsairIcue ne détecte pas la RAM sur votre ordinateur Windows, veuillez utiliser les suggestions suivantes.

CrystalDiskInfo est un logiciel utilisé pour vérifier les périphériques matériels informatiques. Dans ce logiciel, nous pouvons vérifier notre propre matériel informatique, tel que la vitesse de lecture, le mode de transmission, l'interface, etc. ! Alors en plus de ces fonctions, comment utiliser CrystalDiskInfo et qu'est-ce que CrystalDiskInfo exactement ? Laissez-moi faire le tri pour vous ! 1. L'origine de CrystalDiskInfo En tant que l'un des trois composants principaux d'un ordinateur hôte, un disque SSD est le support de stockage d'un ordinateur et est responsable du stockage des données informatiques. Un bon disque SSD peut accélérer la lecture et la lecture des fichiers. affecter l’expérience du consommateur. Lorsque les consommateurs reçoivent de nouveaux appareils, ils peuvent utiliser des logiciels tiers ou d'autres disques SSD pour

De nombreux utilisateurs utilisent le logiciel Adobe Illustrator CS6 dans leurs bureaux, alors savez-vous comment définir l'incrément du clavier dans Adobe Illustrator CS6. Ensuite, l'éditeur vous proposera la méthode de définition de l'incrément du clavier dans Adobe Illustrator CS6. jetez un oeil ci-dessous. Étape 1 : Démarrez le logiciel Adobe Illustrator CS6, comme indiqué dans la figure ci-dessous. Étape 2 : Dans la barre de menu, cliquez successivement sur la commande [Modifier] → [Préférences] → [Général]. Étape 3 : La boîte de dialogue [Incrément du clavier] apparaît, entrez le nombre requis dans la zone de texte [Incrément du clavier] et enfin cliquez sur le bouton [OK]. Étape 4 : utilisez la touche de raccourci [Ctrl]

Bonjour est un protocole réseau et un logiciel lancé par Apple pour découvrir et configurer les services réseau au sein d'un réseau local. Son rôle principal est de découvrir et de communiquer automatiquement entre les appareils connectés au même réseau. Bonjour a été introduit pour la première fois dans la version MacOSX10.2 en 2002 et est désormais installé et activé par défaut dans le système d'exploitation d'Apple. Depuis lors, Apple a ouvert la technologie Bonjour à d'autres fabricants, de sorte que de nombreux autres systèmes d'exploitation et appareils peuvent également prendre en charge Bonjour.

Lorsque nous utilisons le navigateur Edge, il arrive parfois que des logiciels incompatibles tentent d'être chargés ensemble, alors que se passe-t-il ? Laissez ce site présenter soigneusement aux utilisateurs comment résoudre le problème lié à la tentative de chargement de logiciels incompatibles avec Edge. Comment résoudre le problème de la tentative de chargement d'un logiciel incompatible avec Edge Solution 1 : Recherchez IE dans le menu Démarrer et accédez-y directement avec IE. Solution 2 : Remarque : La modification du registre peut entraîner une panne du système, alors soyez prudent. Modifiez les paramètres du registre. 1. Entrez regedit pendant le fonctionnement. 2. Recherchez le chemin\HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Micros
