- Tableau à N dimensions
Il s'agit de la principale structure de données de l'apprentissage automatique et des réseaux de neurones.
![](https://img-blog.csdnimg.cn/img_convert/c6afd46b931d49a3b616d3659b5a6630.png)
![](https://img-blog.csdnimg.cn/img_convert/e9fab548b8aa4a3c83b30d35f9372b31.png)
- La création d'un tableau nécessite
Forme : telle qu'une matrice 3*4
Le type de chaque élément : par exemple, float 32 bits
La valeur de chaque élément : par exemple, tous les 0. ou des nombres aléatoires
![](https://img-blog.csdnimg.cn/img_convert/17c8b9291c354b56a3559eb1919a3f81.png)
- Opérations sur les données
Tout d’abord, importez la torche
![](https://img-blog.csdnimg.cn/img_convert/4fe612053fd34e618d8f4efdf64bf280.png)
Un tenseur représente un tableau de valeurs. Ce tableau peut avoir plusieurs dimensions.
![](https://img-blog.csdnimg.cn/img_convert/51369cb6fd294405a43d0b6824faa7a2.png)
La forme d'un tenseur et le nombre total d'éléments dans le tenseur sont accessibles via la propriété de forme du tenseur.
![](https://img-blog.csdnimg.cn/img_convert/9bd7647aa24f42a2a040642a120d3006.png)
Si vous souhaitez modifier la forme d'un tenseur sans modifier le nombre d'éléments et les valeurs des éléments, vous pouvez appeler la fonction reshape
![](https://img-blog.csdnimg.cn/img_convert/9d75b732480c482dad8efb958c27cab4.png)
Utilisez uniquement des 0, des 1, d'autres constantes ou des nombres échantillonnés aléatoirement à partir d'une distribution spécifique.
![](https://img-blog.csdnimg.cn/img_convert/03a0ccf7bef6482a92ddc62c410d9773.png)
Deux étages, trois rangées, quatre colonnes
Donnez à chaque élément du tenseur souhaité une valeur définie en fournissant une liste Python (ou liste imbriquée) contenant la valeur numérique
![](https://img-blog.csdnimg.cn/img_convert/2789493bae03401899136fc8eaef4670.png)
Les opérateurs arithmétiques standards courants (+, -, *, /, **) peuvent être mis à niveau vers des opérations par éléments
![](https://img-blog.csdnimg.cn/img_convert/770476e744714527ba3737e864092064.png)
![](https://img-blog.csdnimg.cn/img_convert/e234fcc339fa4ae38141a4b42740a96a.png)
Plusieurs tenseurs peuvent être concaténés ensemble
![](https://img-blog.csdnimg.cn/img_convert/0de7756ba5ba42fa8eef4f913fcf20c7.png)
0 représente l'épissage dans la direction y, 1 représente l'épissage dans la direction x
Construire des vecteurs binaires via des opérateurs logiques
![](https://img-blog.csdnimg.cn/img_convert/85d930aa998a4fca89ba3d2f84c48c88.png)
La sommation de tous les éléments d'un tenseur produit un tenseur avec un seul élément 5
![](https://img-blog.csdnimg.cn/img_convert/0bcd252bca314074b46c57dbb6e4d112.png)
Même si les formes sont différentes, nous pouvons toujours effectuer des opérations élément par élément en appelant le mécanisme de diffusion
![](https://img-blog.csdnimg.cn/img_convert/420505cb70684354acd0e226ba06b0a0.png)
Copiez d'abord, puis ajoutez
![](https://img-blog.csdnimg.cn/img_convert/9fc771141ee24c8eadc923804d2a0f67.png)
accès aux éléments
![](https://img-blog.csdnimg.cn/img_convert/3e3858f94d8341c985641f0a44170547.png)
Vous pouvez utiliser [-1] pour sélectionner le dernier élément et [1:3] pour sélectionner les deuxième et troisième éléments.
![](https://img-blog.csdnimg.cn/img_convert/1ef200a22a434c82be1dbc1a3eec0881.png)
Il est également possible d'écrire des éléments dans une matrice en spécifiant l'index
![](https://img-blog.csdnimg.cn/img_convert/d8ccecb7f8f043f39b10718877779d45.png)
Pour attribuer la même valeur à plusieurs éléments, il suffit d'indexer tous les éléments et de leur attribuer des valeurs
![](https://img-blog.csdnimg.cn/img_convert/feb545ce7374469e87616a4a932e080b.png)
L'exécution de certaines opérations peut entraîner l'allocation de mémoire pour de nouveaux résultats
![](https://img-blog.csdnimg.cn/img_convert/dabdc5bdb7894d15b380ac10b9cda48f.png)
Effectuer des opérations sur place
![](https://img-blog.csdnimg.cn/img_convert/f2c801f4fb2b464ebab23806f39c4e03.png)
x n'est pas réutilisé dans les calculs ultérieurs. Nous pouvons également utiliser x[:]=x+y ou x+=y pour réduire la surcharge mémoire de l'opération.
![](https://img-blog.csdnimg.cn/img_convert/0b891604f94d4ba09b3a7ccc02aa2d64.png)
Convertir en tenseur NumPy
![](https://img-blog.csdnimg.cn/img_convert/09933a44d6c14c3a8ec4c8962bba2553.png)
Convertir un tenseur de taille 1 en scalaire Python
![](https://img-blog.csdnimg.cn/img_convert/6bff042ee256446eadb458138fe02816.png)
- Prétraitement des données
Créez un ensemble de données artificielles et stockez-le dans un fichier CSV (valeurs séparées par des virgules)
![](https://img-blog.csdnimg.cn/img_convert/c39dcedaf9b542d1a4094a8a0a118979.png)
Charger l'ensemble de données d'origine à partir du fichier CSV créé
![](https://img-blog.csdnimg.cn/img_convert/f5f481d143694e0a9df43f3d13ce2f61.png)
Pour gérer les données manquantes, les méthodes typiques incluent l'interpolation et la suppression
![](https://img-blog.csdnimg.cn/img_convert/d48a79fdecae4e56ba8601774861f471.png)
Pour les valeurs catégorielles ou discrètes dans les entrées, nous traitons « NAN » comme une catégorie
![](https://img-blog.csdnimg.cn/img_convert/1b52718b11724945aa9cc36396084ac5.png)