forked from huggingface/course
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path38_saving-and-reloading-a-dataset.srt
143 lines (108 loc) · 5.41 KB
/
38_saving-and-reloading-a-dataset.srt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
1
00:00:06,560 --> 00:00:11,600
Enregistrement et rechargement d'un jeu de données. Dans cette vidéo, nous allons examiner l'enregistrement d'un jeu de données dans différents
2
00:00:11,600 --> 00:00:19,200
formats et explorer les moyens de recharger les données enregistrées. Lorsque vous téléchargez un jeu de données, les
3
00:00:19,200 --> 00:00:23,920
scripts de traitement et les données sont stockés localement sur votre ordinateur. Le cache permet à la bibliothèque Datasets
4
00:00:23,920 --> 00:00:29,600
d'éviter de retélécharger ou de traiter l'intégralité du jeu de données à chaque fois que vous l'utilisez. Les données sont stockées
5
00:00:29,600 --> 00:00:34,080
sous la forme d'Arrow tables dont l'emplacement peut être trouvé en accédant à l'attribut `cache_files`.
6
00:00:34,080 --> 00:00:39,360
Dans cet exemple, nous avons téléchargé le jeu de données allocine à partir du Hub d'Hugging Face
7
00:00:39,360 --> 00:00:43,840
et vous pouvez voir qu'il y a trois fichiers Arrow stockés dans le cache, un pour chaque échantillon.
8
00:00:45,120 --> 00:00:48,720
Mais dans de nombreux cas, vous souhaiterez enregistrer votre jeu de données dans un emplacement ou un format différent.
9
00:00:49,600 --> 00:00:53,760
Comme indiqué dans le tableau, la bibliothèque Datasets fournit quatre fonctions principales pour y parvenir.
10
00:00:54,880 --> 00:00:59,040
Vous connaissez probablement les formats CSV et JSON , qui sont tous deux parfaits si vous
11
00:00:59,040 --> 00:01:04,800
souhaitez enregistrer des jeux de données de petite à moyenne taille. Mais si votre jeu de données est volumineux, vous souhaiterez
12
00:01:04,800 --> 00:01:09,520
l'enregistrer au format Arrow ou Parquet. Les fichiers Arrow sont parfaits si vous prévoyez de recharger
13
00:01:09,520 --> 00:01:14,080
ou de traiter les données dans un avenir proche. Les fichiers Parquet sont conçus pour un stockage sur disque à long terme
14
00:01:14,080 --> 00:01:17,440
et sont très économes en espace. Examinons de plus près chaque format.
15
00:01:19,520 --> 00:01:25,520
Pour enregistrer un jeu de données ou un objet DatasetDict au format Arrow, nous utilisons la fonction `save_to_disk`. Comme
16
00:01:25,520 --> 00:01:30,240
vous pouvez le voir dans cet exemple, nous fournissons simplement le chemin dans lequel nous souhaitons enregistrer les données, et la bibliothèque Datasets
17
00:01:30,240 --> 00:01:34,720
créera automatiquement un dépôt pour chaque échantillon afin de stocker l'Arrow table et les métadonnées.
18
00:01:35,600 --> 00:01:38,880
Étant donné que nous avons affaire à un objet DatasetDict comportant plusieurs divisions,
19
00:01:38,880 --> 00:01:41,920
ces informations sont également stockées dans le fichier `dataset_dict.json`.
20
00:01:44,160 --> 00:01:48,000
Désormais, lorsque nous souhaitons recharger les jeux de données Arrow, nous utilisons la fonction `load_from_disk`.
21
00:01:48,640 --> 00:01:53,840
Nous passons simplement le chemin de notre dépôt de jeu de données et voilà ! Le jeu de données d'origine est récupéré.
22
00:01:55,760 --> 00:01:59,920
Si nous voulons enregistrer nos jeux de données au format CSV, nous utilisons la fonction `to_csv`.
23
00:02:00,800 --> 00:02:05,280
Dans ce cas, vous devrez boucler sur les échantillons de l'objet DatasetDict et enregistrer chaque jeu de données en tant
24
00:02:05,280 --> 00:02:11,280
que fichier CSV individuel. Étant donné que le fichier `to_csv` est basé sur celui de Pandas, vous pouvez transmettre
25
00:02:11,280 --> 00:02:16,240
des arguments mots clés pour configurer la sortie. Dans cet exemple, nous avons défini l'argument `index` sur
26
00:02:16,240 --> 00:02:23,440
`None` pour empêcher la colonne d'index du jeu de données d'être incluse dans les fichiers CSV. Pour recharger nos
27
00:02:23,440 --> 00:02:29,760
fichiers CSV, nous utilisons la fonction familière `load_dataset` avec le script de chargement csv et
28
00:02:29,760 --> 00:02:35,120
l'argument `data_files` qui spécifie les noms de fichiers associés à chaque échantillon. Comme vous pouvez le voir dans cet exemple,
29
00:02:35,120 --> 00:02:39,280
en fournissant toutes les échantillons et leurs noms de fichiers, nous avons récupéré l'objet DatasetDict d'origine.
30
00:02:41,840 --> 00:02:45,920
L'enregistrement d'un jeu de données aux formats JSON ou Parquet est très similaire au cas CSV.
31
00:02:46,480 --> 00:02:52,720
Nous utilisons soit la fonction `to_json` pour les fichiers JSON, soit la fonction `to_parquet` pour les fichiers Parquet. Et
32
00:02:52,720 --> 00:02:57,440
tout comme dans le cas CSV, nous devons boucler sur les échantillons et enregistrer chacune dans un fichier individuel.
33
00:02:59,680 --> 00:03:03,760
Une fois que nos jeux de données sont enregistrés en tant que fichiers JSON ou Parquet, nous pouvons les recharger à nouveau
34
00:03:03,760 --> 00:03:09,680
avec le script approprié dans la fonction `load_dataset` et nous devons juste donner l'argument `data_files` comme auparavant.
35
00:03:10,640 --> 00:03:14,160
Cet exemple montre comment recharger nos jeux de données enregistrés dans l'un ou l'autre format.
36
00:03:16,400 --> 00:03:26,000
Et avec cela, vous savez maintenant comment enregistrer vos jeux de données dans différents formats !