MindSpore怎么用?手把手教你!~第二期 数据加载和处理(Windows平台及报错探究)

数据加载和处理

加载图像数据集

下载数据集:

 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,所以没遇到这个报错。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值