数据加载和处理
加载图像数据集
下载数据集:
import mindspore.dataset as ds
import os
import requests
requests.packages.urllib3.disable_warnings()
def download_dataset(dataset_url, path):
filename = dataset_url.split("/")[-1]
save_path = os.path.join(path, filename)
if os.path.exists(save_path):
return
if not os.path.exists(path):
os.makedirs(path)
res = requests.get(dataset_url, stream=True, verify=False)
with open(save_path, "wb") as f:
for chunk in res.iter_content(chunk_size=512):
if chunk:
f.write(chunk)
print(
"The {} file is downloaded and saved in the path {} after processing".
format(os.path.basename(dataset_url), path))
train_path = "datasets/MNIST_Data/train"
test_path = "datasets/MNIST_Data/test"
download_dataset(
"https://mindspore-website.obs.myhuaweicloud.com/notebook/datasets/mnist/train-labels-idx1-ubyte",
train_path)
download_dataset(
"https://mindspore-website.obs.myhuaweicloud.com/notebook/datasets/mnist/train-images-idx3-ubyte",
train_path)
download_dataset(
"https://mindspore-website.obs.myhuaweicloud.com/notebook/datasets/mnist/t10k-labels-idx1-ubyte",
test_path)
download_dataset(
"https://mindspore-website.obs.myhuaweicloud.com/notebook/datasets/mnist/t10k-images-idx3-ubyte",
test_path)
结果:
加载数据集:
DATA_DIR = './datasets/MNIST_Data/train' mnist_dataset = ds.MnistDataset(DATA_DIR, num_samples=6, shuffle=False)
可视化数据集:
数据处理:
先看一下未处理前数据label:
混洗后:
再对数据分批:
重复操作两次:
数据增强:
原始图片经缩放后被随机裁剪至150x150大小。
加载文本数据集
准备:
加载数据集:
数据混洗:
对数据集进行文本替换
报错了,大概是版本原因,视频里用的1.5版本,我这里是1.6版本,查了下源码,发现text确实没有RegexReplace()了,大概是版本淘汰了。
数据分词
又报错了,查了下相关帖子,发现支持分词器的地址:(选中部分)
然而这个网站空的:
看一下分词器demo,于是输入下面网站:(https://gitee.com/mindspore/docs/blob/master/docs/programming_guide/source_zh_cn/tokenizer.md)
又没了。。。
看到下面还有一个解决方案:
试一试更改直接import WhitespaceTokenizer能找到吗:
直接import失败,说明这个大概又被版本淘汰了。。
查看源码到底支持哪些:
支持挺多的,试一试UnicodeCharTokenizer:
分成功了,按照字节分词结果正确,
发现很有趣的事情,在text模块的源码里,其实是有WhitespaceTokenizer()的代码的:
为什么不能用呢?因为在init里这个接口没有对外暴露:
源码里写得很清楚,在Windows系统里WhitespaceTokenizer()不对外暴露,这就是报错的根本原因,上面遇到的找不到属性RegexReplace()也是这个原因。视频里看起来是用的Linux,所以没遇到这个报错。