


Si vous souhaitez apprendre l'intelligence artificielle, vous devez maîtriser cet ensemble de données Introduction et utilisation pratique du MNIST.
L'apprentissage de l'intelligence artificielle nécessite inévitablement certains ensembles de données. Par exemple, l'intelligence artificielle pour identifier la pornographie nécessite des images similaires. L'intelligence artificielle pour la reconnaissance vocale et les corpus sont indispensables. Les étudiants qui débutent dans l’intelligence artificielle s’inquiètent souvent des ensembles de données. Aujourd'hui, nous allons présenter un ensemble de données très simple mais très utile, qui est le MNIST. Cet ensemble de données nous permet d’apprendre et de pratiquer des algorithmes liés à l’intelligence artificielle.
L'ensemble de données MNIST est un ensemble de données très simple produit par le National Institute of Standards and Technology (NIST). Alors, de quoi parle cet ensemble de données ? Il s'agit en fait de chiffres arabes manuscrits (dix chiffres de 0 à 9).
Le NIST est toujours très sérieux lors de la production de l'ensemble de données. L'ensemble de formation dans l'ensemble de données se compose de chiffres manuscrits provenant de 250 personnes différentes, dont 50 % sont des étudiants du secondaire et 50 % sont des membres du personnel du Bureau du recensement. L'ensemble de test contient également la même proportion de données numériques manuscrites.
Comment télécharger l'ensemble de données MNIST
L'ensemble de données MNIST peut être téléchargé à partir de son site officiel (http://yann.lecun.com/exdb/mnist/) Puisqu'il s'agit d'un site Web étranger, le téléchargement peut être effectué. lent. Il contient quatre parties :
- Images de l'ensemble de formation : train-images-idx3-ubyte.gz (9,9 Mo, 47 Mo après décompression, contient 60 000 échantillons)
- Étiquettes de l'ensemble de formation : train-labels-idx1-ubyte . gz (29 Ko, 60 Ko après décompression, contient 60 000 balises)
- Image de l'ensemble de test : t10k-images-idx3-ubyte.gz (1,6 Mo, 7,8 Mo après décompression, contient 10 000 échantillons)
- Balises de l'ensemble de test :t10k- labels-idx1-ubyte.gz (5 Ko, 10 Ko après décompression, contient 10 000 étiquettes)
Ce qui précède contient deux types de contenu, l'un est constitué d'images, l'autre est constitué d'étiquettes, les images et les étiquettes correspondent une à une. Mais l’image ici n’est pas le fichier image que nous voyons habituellement, mais un fichier binaire. Cet ensemble de données stocke 60 000 images au format binaire. L'étiquette est le numéro réel correspondant à l'image.
Comme le montre la figure ci-dessous, cet article télécharge l'ensemble de données localement et décompresse le résultat. Pour faciliter la comparaison, le package compressé d'origine et les fichiers décompressés sont inclus.
Une brève analyse du format de l'ensemble de données
Tout le monde a découvert qu'après décompression, le package compressé n'est pas une image, mais chaque package compressé correspond à un problème indépendant. Dans ce fichier, des informations sur des dizaines de milliers d'images ou de tags sont stockées. Alors, comment ces informations sont-elles stockées dans ce fichier ?
En fait, le site officiel du MNIST donne une description détaillée. En prenant le fichier image de l'ensemble de formation comme exemple, la description du format de fichier donnée par le site officiel est la suivante :
Comme le montre l'image ci-dessus, les quatre premiers nombres à 32 chiffres sont les informations de description. de l’ensemble de formation. Le premier est le nombre magique, qui est une valeur fixe de 0x0803 ; le deuxième est le nombre d'images, 0xea60, qui est 60 000 ; les troisième et quatrième sont la taille de l'image, c'est-à-dire que l'image est de 28* ; 28 pixels. Ce qui suit décrit chaque pixel dans un octet. Puisqu'un octet est utilisé pour décrire un pixel dans ce fichier, vous pouvez savoir que la valeur d'un pixel peut être comprise entre 0 et 255. Où 0 signifie blanc et 255 signifie noir.
Le format des fichiers d'étiquettes est similaire à celui des fichiers image. Il y a deux nombres à 32 chiffres devant, dont le premier est le nombre magique, valeur fixe 0x0801 ; le second est utilisé pour décrire le nombre de balises. Les données suivantes sont la valeur de chaque balise, représentée par un octet. La plage de valeurs représentée ici est
Les données correspondant au fichier d'étiquettes de l'ensemble d'entraînement réel sont les suivantes. On voit qu'il est cohérent avec la description du format ci-dessus. De plus, nous pouvons voir que correspondant à cet ensemble d'étiquettes, les nombres représentés par les images précédentes doivent être respectivement 5, 0, 4, 1, etc. N'oubliez pas cela ici, il sera utilisé plus tard.
Nous connaissons le format de fichier de l'ensemble de données, faisons-le en pratique.
Traitement visuel des ensembles de données
Après avoir connu le format de stockage des données ci-dessus, nous pouvons analyser les données. Par exemple, l'article suivant implémente un petit programme pour analyser une image dans la collection d'images et obtenir des résultats visuels. Bien sûr, nous pouvons réellement savoir quelle est l'image en fonction de la valeur de l'ensemble d'étiquettes. Ce n'est qu'une expérience. Le résultat final est stocké dans un fichier texte, en utilisant le caractère « Y » pour représenter l'écriture manuscrite et le caractère « 0 » pour représenter la couleur de fond. Le code spécifique du programme est très simple et ne sera pas décrit en détail dans cet article.
# -*- coding: UTF-8 -*- def trans_to_txt(train_file, txt_file, index): with open(train_file, 'rb') as sf: with open(txt_file, "w") as wf: offset = 16 + (28*28*index) cur_pos = offset count = 28*28 strlen = 1 out_count = 1 while cur_pos < offset+count: sf.seek(cur_pos) data = sf.read(strlen) res = int(data[0]) #虽然在数据集中像素是1-255表示颜色,这里简化为Y if res > 0 : wf.write(" Y ") else: wf.write(" 0 ") #由于图片是28列,因此在此进行换行 if out_count % 28 == 0 : wf.write("n") cur_pos += strlen out_count += 1 trans_to_txt("../data/train-images.idx3-ubyte", "image.txt", 0)
Lorsque nous exécutons le code ci-dessus, nous pouvons obtenir un fichier nommé image.txt. Vous pouvez voir le contenu du fichier comme suit. Les notes rouges ont été ajoutées plus tard, principalement pour une meilleure visibilité. Comme vous pouvez le voir sur la photo, il s’agit en fait d’un « 5 » manuscrit.
Auparavant, nous analysions visuellement l'ensemble de données via l'interface Python native. Python possède de nombreuses fonctions de bibliothèque déjà implémentées, nous pouvons donc simplifier les fonctions ci-dessus grâce à une fonction de bibliothèque.
Analyse des données basées sur des bibliothèques tierces
C'est un peu compliqué à implémenter en utilisant l'interface Python native. Nous savons que Python possède de nombreuses bibliothèques tierces, nous pouvons donc utiliser des bibliothèques tierces pour analyser et afficher l'ensemble de données. Le code spécifique est le suivant.
# -*- coding: utf-8 -*- import os import struct import numpy as np # 读取数据集,以二维数组的方式返回图片信息和标签信息 def load_mnist(path, kind='train'): # 从指定目录加载数据集 labels_path = os.path.join(path, '%s-labels.idx1-ubyte' % kind) images_path = os.path.join(path, '%s-images.idx3-ubyte' % kind) with open(labels_path, 'rb') as lbpath: magic, n = struct.unpack('>II', lbpath.read(8)) labels = np.fromfile(lbpath, dtype=np.uint8) with open(images_path, 'rb') as imgpath: #解析图片信息,存储在images中 magic, num, rows, cols = struct.unpack('>IIII', imgpath.read(16)) images = np.fromfile(imgpath, dtype=np.uint8).reshape(len(labels), 784) return images, labels # 在终端打印某个图片的数据信息 def print_image(data, index): idx = 0; count = 0; for item in data[index]: if count % 28 == 0: print("") if item > 0: print("33[7;31mY 33[0m", end="") else: print("0 ", end="") count += 1 def main(): cur_path = os.getcwd() cur_path = os.path.join(cur_path, "..data") imgs, labels = load_mnist(cur_path) print_image(imgs, 0) if __name__ == "__main__": main()
Le code ci-dessus est divisé en deux étapes. La première étape consiste à analyser l'ensemble de données dans un tableau et la deuxième étape consiste à afficher une certaine image dans le tableau. L'affichage ici se fait également via un programme texte, mais il n'est pas stocké dans un fichier, mais imprimé sur le terminal. Par exemple, si nous imprimons toujours la première image, l'effet est le suivant :
La présentation des résultats ci-dessus ne simule l'image qu'à travers des caractères. En fait, nous pouvons utiliser des bibliothèques tierces pour obtenir une présentation d’image plus parfaite. Ensuite, nous expliquons comment présenter des images via la bibliothèque matplotlib. Cette bibliothèque est très utile et j'entrerai en contact avec cette bibliothèque plus tard.
Nous implémentons un
def show_image(data, index): fig, ax = plt.subplots(nrows=1, ncols=1, sharex=True, sharey=True, ) img = data[0].reshape(28, 28) ax.imshow(img, cmap='Greys', interpolation='nearest') ax.set_xticks([]) ax.set_yticks([]) plt.tight_layout() plt.show()
Vous pouvez voir à ce stade que
peut manquer de certaines bibliothèques tierces, telles que matplotlib, etc. lors de l'implémentation des fonctions ci-dessus. Pour le moment, nous devons l'installer manuellement. La méthode spécifique est la suivante :
pip install matplotlib -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
L'analyse des données basée sur TensorFlow
MNIST est si célèbre que TensorFlow la prend déjà en charge. Par conséquent, nous pouvons le charger et l'analyser via TensorFlow. Ci-dessous nous donnons le code implémenté avec TensorFlow.
# -*- coding: utf-8 -*- from tensorflow.examples.tutorials.mnist import input_data import pylab def show_mnist(): # 通过TensorFlow库解析数据 mnist = input_data.read_data_sets("../data", one_hot=True) im = mnist.train.images[0] im = im.reshape(28 ,28) # 进行绘图 pylab.imshow(im, cmap='Greys', interpolation='nearest') pylab.show() if __name__ == "__main__": show_mnist()
L'effet final obtenu par ce code est cohérent avec l'exemple précédent, je n'entrerai donc pas dans les détails ici.
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)

Sujets chauds

Ce site a rapporté le 27 juin que Jianying est un logiciel de montage vidéo développé par FaceMeng Technology, une filiale de ByteDance. Il s'appuie sur la plateforme Douyin et produit essentiellement du contenu vidéo court pour les utilisateurs de la plateforme. Il est compatible avec iOS, Android et. Windows, MacOS et autres systèmes d'exploitation. Jianying a officiellement annoncé la mise à niveau de son système d'adhésion et a lancé un nouveau SVIP, qui comprend une variété de technologies noires d'IA, telles que la traduction intelligente, la mise en évidence intelligente, l'emballage intelligent, la synthèse humaine numérique, etc. En termes de prix, les frais mensuels pour le clipping SVIP sont de 79 yuans, les frais annuels sont de 599 yuans (attention sur ce site : équivalent à 49,9 yuans par mois), l'abonnement mensuel continu est de 59 yuans par mois et l'abonnement annuel continu est de 59 yuans par mois. est de 499 yuans par an (équivalent à 41,6 yuans par mois) . En outre, le responsable de Cut a également déclaré que afin d'améliorer l'expérience utilisateur, ceux qui se sont abonnés au VIP d'origine

Améliorez la productivité, l’efficacité et la précision des développeurs en intégrant une génération et une mémoire sémantique améliorées par la récupération dans les assistants de codage IA. Traduit de EnhancingAICodingAssistantswithContextUsingRAGandSEM-RAG, auteur JanakiramMSV. Bien que les assistants de programmation d'IA de base soient naturellement utiles, ils ne parviennent souvent pas à fournir les suggestions de code les plus pertinentes et les plus correctes, car ils s'appuient sur une compréhension générale du langage logiciel et des modèles d'écriture de logiciels les plus courants. Le code généré par ces assistants de codage est adapté à la résolution des problèmes qu’ils sont chargés de résoudre, mais n’est souvent pas conforme aux normes, conventions et styles de codage des équipes individuelles. Cela aboutit souvent à des suggestions qui doivent être modifiées ou affinées pour que le code soit accepté dans l'application.

Pour en savoir plus sur l'AIGC, veuillez visiter : 51CTOAI.x Community https://www.51cto.com/aigc/Translator|Jingyan Reviewer|Chonglou est différent de la banque de questions traditionnelle que l'on peut voir partout sur Internet. nécessite de sortir des sentiers battus. Les grands modèles linguistiques (LLM) sont de plus en plus importants dans les domaines de la science des données, de l'intelligence artificielle générative (GenAI) et de l'intelligence artificielle. Ces algorithmes complexes améliorent les compétences humaines et stimulent l’efficacité et l’innovation dans de nombreux secteurs, devenant ainsi la clé permettant aux entreprises de rester compétitives. LLM a un large éventail d'applications. Il peut être utilisé dans des domaines tels que le traitement du langage naturel, la génération de texte, la reconnaissance vocale et les systèmes de recommandation. En apprenant de grandes quantités de données, LLM est capable de générer du texte

Les grands modèles linguistiques (LLM) sont formés sur d'énormes bases de données textuelles, où ils acquièrent de grandes quantités de connaissances du monde réel. Ces connaissances sont intégrées à leurs paramètres et peuvent ensuite être utilisées en cas de besoin. La connaissance de ces modèles est « réifiée » en fin de formation. À la fin de la pré-formation, le modèle arrête effectivement d’apprendre. Alignez ou affinez le modèle pour apprendre à exploiter ces connaissances et répondre plus naturellement aux questions des utilisateurs. Mais parfois, la connaissance du modèle ne suffit pas, et bien que le modèle puisse accéder à du contenu externe via RAG, il est considéré comme bénéfique de l'adapter à de nouveaux domaines grâce à un réglage fin. Ce réglage fin est effectué à l'aide de la contribution d'annotateurs humains ou d'autres créations LLM, où le modèle rencontre des connaissances supplémentaires du monde réel et les intègre.

L'ensemble de données ScienceAI Question Answering (QA) joue un rôle essentiel dans la promotion de la recherche sur le traitement du langage naturel (NLP). Des ensembles de données d'assurance qualité de haute qualité peuvent non seulement être utilisés pour affiner les modèles, mais également évaluer efficacement les capacités des grands modèles linguistiques (LLM), en particulier la capacité à comprendre et à raisonner sur les connaissances scientifiques. Bien qu’il existe actuellement de nombreux ensembles de données scientifiques d’assurance qualité couvrant la médecine, la chimie, la biologie et d’autres domaines, ces ensembles de données présentent encore certaines lacunes. Premièrement, le formulaire de données est relativement simple, et la plupart sont des questions à choix multiples. Elles sont faciles à évaluer, mais limitent la plage de sélection des réponses du modèle et ne peuvent pas tester pleinement la capacité du modèle à répondre aux questions scientifiques. En revanche, les questions et réponses ouvertes

Editeur | KX Dans le domaine de la recherche et du développement de médicaments, il est crucial de prédire avec précision et efficacité l'affinité de liaison des protéines et des ligands pour le criblage et l'optimisation des médicaments. Cependant, les études actuelles ne prennent pas en compte le rôle important des informations sur la surface moléculaire dans les interactions protéine-ligand. Sur cette base, des chercheurs de l'Université de Xiamen ont proposé un nouveau cadre d'extraction de caractéristiques multimodales (MFE), qui combine pour la première fois des informations sur la surface des protéines, la structure et la séquence 3D, et utilise un mécanisme d'attention croisée pour comparer différentes modalités. alignement. Les résultats expérimentaux démontrent que cette méthode atteint des performances de pointe dans la prédiction des affinités de liaison protéine-ligand. De plus, les études d’ablation démontrent l’efficacité et la nécessité des informations sur la surface des protéines et de l’alignement des caractéristiques multimodales dans ce cadre. Les recherches connexes commencent par "S

L'apprentissage automatique est une branche importante de l'intelligence artificielle qui donne aux ordinateurs la possibilité d'apprendre à partir de données et d'améliorer leurs capacités sans être explicitement programmés. L'apprentissage automatique a un large éventail d'applications dans divers domaines, de la reconnaissance d'images et du traitement du langage naturel aux systèmes de recommandation et à la détection des fraudes, et il change notre façon de vivre. Il existe de nombreuses méthodes et théories différentes dans le domaine de l'apprentissage automatique, parmi lesquelles les cinq méthodes les plus influentes sont appelées les « Cinq écoles d'apprentissage automatique ». Les cinq grandes écoles sont l’école symbolique, l’école connexionniste, l’école évolutionniste, l’école bayésienne et l’école analogique. 1. Le symbolisme, également connu sous le nom de symbolisme, met l'accent sur l'utilisation de symboles pour le raisonnement logique et l'expression des connaissances. Cette école de pensée estime que l'apprentissage est un processus de déduction inversée, à travers les connaissances existantes.

Dans le monde du développement front-end, VSCode est devenu l'outil de choix pour d'innombrables développeurs grâce à ses fonctions puissantes et son riche écosystème de plug-ins. Ces dernières années, avec le développement rapide de la technologie de l'intelligence artificielle, des assistants de code IA sur VSCode ont vu le jour, améliorant considérablement l'efficacité du codage des développeurs. Les assistants de code IA sur VSCode ont poussé comme des champignons après la pluie, améliorant considérablement l'efficacité du codage des développeurs. Il utilise la technologie de l'intelligence artificielle pour analyser intelligemment le code et fournir une complétion précise du code, une correction automatique des erreurs, une vérification grammaticale et d'autres fonctions, ce qui réduit considérablement les erreurs des développeurs et le travail manuel fastidieux pendant le processus de codage. Aujourd'hui, je recommanderai 12 assistants de code d'IA de développement frontal VSCode pour vous aider dans votre parcours de programmation.
