首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HuggingFace数据集- pyarrow.lib.ArrowMemoryError: realloc of size失败

HuggingFace数据集- pyarrow.lib.ArrowMemoryError: realloc of size失败
EN

Stack Overflow用户
提问于 2022-01-10 21:17:48
回答 1查看 1.3K关注 0票数 0

我试图使用Hugginface数据集来使用转换器进行语音识别,其中我有一对文本/音频。我正在创建一个Dataframe,这两个列表都没有问题:

代码语言:javascript
复制
d = pd.DataFrame.from_dict({"audio": ts_audios, "sentence": ts_sent})

但是,当试图将其包装到Dataset (来自Hugginface )时:

代码语言:javascript
复制
ds=Dataset.from_pandas(d)

它规定:

代码语言:javascript
复制
pyarrow.lib.ArrowMemoryError: realloc of size 4294967296 failed

问题是因为音频列表,它看起来如下:

代码语言:javascript
复制
[array([ 1.3715802e-05,  1.3041631e-05, -1.5017368e-06, ...,
       -1.1172481e-01, -1.2214723e-01,  0.0000000e+00], dtype=float32), array([-0.06073862, -0.12271373, -0.11600843, ..., -0.11915235,
       -0.13458692,  0.        ], dtype=float32), array([-0.07074431, -0.12263235, -0.1065825 , ..., -0.10845864,
       -0.12171803,  0.        ], dtype=float32), array([-0.02499148, -0.04160473, -0.03867628, ..., -0.01881211,
       -0.02035856,  0.        ], dtype=float32), array([-0.18304674, -0.03917564, -0.030768  , ..., -0.11494933,
       -0.112398  , -0.12073436], dtype=float32) .....]

如果我想使用来自Huggingface的变压器包,我必须使用Dataset格式。你知道我该怎么解决这个问题吗?

EN

回答 1

Stack Overflow用户

发布于 2022-01-12 10:29:18

注意,4294967296字节正好是4GB的内存。Huggingface数据集将以延迟模式加载数据,因此可以解决内存问题。您可以尝试使用datasets.audio来解决问题。以下是官方教程中的一个示例:

代码语言:javascript
复制
from datasets import load_dataset, load_metric, Audio
common_voice = load_dataset("common_voice", "tr", split="train")
common_voice[0]["audio"]
代码语言:javascript
复制
{'array': array([ 0.0000000e+00,  0.0000000e+00,  0.0000000e+00, ...,
    -8.8930130e-05, -3.8027763e-05, -2.9146671e-05], dtype=float32),
'path': '/root/.cache/huggingface/datasets/downloads/extracted/05be0c29807a73c9b099873d2f5975dae6d05e9f7d577458a2466ecb9a2b0c6b/cv-corpus-6.1-2020-12-11/tr/clips/common_voice_tr_21921195.mp3',
'sampling_rate': 48000}

或者,如果您获得了音频文件的路径,也可以使用cast_column加载音频文件。

代码语言:javascript
复制
my_audio_dataset = load_dataset("path_to_your_dataset",split="train")
my_audio_dataset = my_audio_dataset.cast_column("the_column_name_for_audio_files_path", Audio())
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70658978

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档