赞
踩
pip install datasets
但是国内下载一般由于网络下载失败:ConnectionError: Couldn’t reach ‘reach-vb/pokemon-blip-captions’ on the Hub (ConnectionError)
解决办法(先vp*下载):
下载使用
from datasets import Dataset, load_dataset, load_from_disk
dataset = load_dataset("reach-vb/pokemon-blip-captions")
dataset.save_to_disk(r"E:\allchat\pokemon") # 保存到该目录下
dataset
加载使用
from datasets import Dataset, load_dataset, load_from_disk
dataset = load_from_disk(r"E:\allchat\pokemon")
dataset
2)pandas下载
import pandas as pd
import os
from PIL import Image
import io
df = pd.read_parquet("hf://datasets/svjack/pokemon-blip-captions-en-zh/data/train-00000-of-00001-78e564002aa9c8f0.parquet")
查看图片,它是byte文件
Image.open(io.BytesIO(df["image"][0]["bytes"]))
然后就可以按自己需求处理数据保存
import pandas as pd
from PIL import Image
import io
import os
# 假设你的 DataFrame 名为 df
# 如果不是,请将 df 替换为你的 DataFrame 的实际名称
# 创建保存图像的文件夹
image_folder = "pokemon_images"
os.makedirs(image_folder, exist_ok=True)
# 创建一个新的列表来存储文件名
file_names = []
# 遍历 DataFrame 的每一行
for index, row in df.iterrows():
# 从 bytes 创建图像
image = Image.open(io.BytesIO(row['image']['bytes']))
# 创建文件名
file_name = f"pokemon_{index}.jpg"
file_names.append(file_name)
# 保存图像
image.save(os.path.join(image_folder, file_name))
# 添加文件名列到 DataFrame
df['file_name'] = file_names
# 创建新的 DataFrame,只包含我们需要的列
new_df = df[['file_name', 'en_text', 'zh_text']]
# 保存为 CSV 文件
csv_file = "pokemon_data.csv"
new_df.to_csv(csv_file, index=False)
print(f"Images saved in {image_folder}")
print(f"CSV file saved as {csv_file}")
上面代码也可以现在数据,比如只取50个
import pandas as pd
from PIL import Image
import io
import os
# 假设你的 DataFrame 名为 df
# 如果不是,请将 df 替换为你的 DataFrame 的实际名称
# 创建保存图像的文件夹
image_folder = "pokemon"
os.makedirs(image_folder, exist_ok=True)
# 创建一个新的列表来存储文件名
file_names = []
# 遍历 DataFrame 的每一行
for index, row in df.head(50).iterrows():
# 从 bytes 创建图像
image = Image.open(io.BytesIO(row['image']['bytes']))
# 创建文件名
file_name = f"pokemon_{index}.jpg"
file_names.append(file_name)
# 保存图像
image.save(os.path.join(image_folder, file_name))
# 添加文件名列到 DataFrame
# 添加文件名列到 DataFrame
df.loc[:49, 'file_name'] = file_names
# 创建新的 DataFrame,只包含我们需要的列
new_df = df.loc[:49, ['file_name', 'en_text', 'zh_text']]
# 保存为 CSV 文件
csv_file = "pokemon.csv"
new_df.to_csv(csv_file, index=False)
print(f"Images saved in {image_folder}")
print(f"CSV file saved as {csv_file}")
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。