代码原地址:

https://www.mindspore.cn/tutorial/training/zh-CN/r1.2/use/load_dataset_text.html

=======================================================

完整代码:

import os

os.system("rm -f ./datasets/tokenizer.txt")

if not os.path.exists('./datasets'):
os.mkdir('./datasets')
file_handle=open('./datasets/tokenizer.txt',mode='w')
file_handle.write('Welcome to Beijing \n北京欢迎您! \n我喜欢English! \n')
file_handle.close() import mindspore.dataset as ds
import mindspore.dataset.text as text DATA_FILE = './datasets/tokenizer.txt'
dataset = ds.TextFileDataset(DATA_FILE, shuffle=False) ds.config.set_seed(58)
dataset = dataset.shuffle(buffer_size=3)
for data in dataset.create_dict_iterator(output_numpy=True):
print(text.to_str(data['text'])) print('='*30) replace_op1 = text.RegexReplace("Beijing", "Shanghai")
replace_op2 = text.RegexReplace("北京", "上海")
dataset = dataset.map(operations=replace_op1)
dataset = dataset.map(operations=replace_op2)
for data in dataset.create_dict_iterator(output_numpy=True):###need to mark
print(text.to_str(data['text'])) print('='*30) tokenizer = text.WhitespaceTokenizer() dataset = dataset.map(operations=tokenizer) for data in dataset.create_dict_iterator(num_epochs=1,output_numpy=True):
print(text.to_str(data['text']).tolist())

运行结果:

============================================================================

需要注意的一点是,如果将

dataset.create_dict_iterator(output_numpy=True)  改为

dataset.create_dict_iterator()


则会报错:

修改后的代码:

import os

os.system("rm -f ./datasets/tokenizer.txt")

if not os.path.exists('./datasets'):
os.mkdir('./datasets')
file_handle=open('./datasets/tokenizer.txt',mode='w')
file_handle.write('Welcome to Beijing \n北京欢迎您! \n我喜欢English! \n')
file_handle.close() import mindspore.dataset as ds
import mindspore.dataset.text as text DATA_FILE = './datasets/tokenizer.txt'
dataset = ds.TextFileDataset(DATA_FILE, shuffle=False) ds.config.set_seed(58)
dataset = dataset.shuffle(buffer_size=3)
for data in dataset.create_dict_iterator(output_numpy=True):
print(text.to_str(data['text'])) print('='*30) replace_op1 = text.RegexReplace("Beijing", "Shanghai")
replace_op2 = text.RegexReplace("北京", "上海")
dataset = dataset.map(operations=replace_op1)
dataset = dataset.map(operations=replace_op2)
for data in dataset.create_dict_iterator():###need to mark
print(text.to_str(data['text'])) print('='*30) tokenizer = text.WhitespaceTokenizer() dataset = dataset.map(operations=tokenizer) for data in dataset.create_dict_iterator(num_epochs=1,output_numpy=True):
print(text.to_str(data['text']).tolist())

报错信息:

WARNING: 'ControlDepend' is deprecated from version 1.1 and will be removed in a future version, use 'Depend' instead.
[WARNING] ME(5047:140238748528768,MainProcess):2021-07-11-02:12:43.597.916 [mindspore/ops/operations/array_ops.py:2302] WARN_DEPRECATED: The usage of Pack is deprecated. Please use Stack.
我喜欢English!
Welcome to Beijing
北京欢迎您!
==============================
Traceback (most recent call last):
  File "/tmp/pycharm_project_753/x.py", line 34, in <module>
    for data in dataset.create_dict_iterator():###need to mark
  File "/usr/local/python-3.7.5/lib/python3.7/site-packages/mindspore/dataset/engine/iterators.py", line 125, in __next__
    data = self._get_next()
  File "/usr/local/python-3.7.5/lib/python3.7/site-packages/mindspore/dataset/engine/iterators.py", line 169, in _get_next
    return {k: self._transform_tensor(t) for k, t in self._iterator.GetNextAsMap().items()}
  File "/usr/local/python-3.7.5/lib/python3.7/site-packages/mindspore/dataset/engine/iterators.py", line 169, in <dictcomp>
    return {k: self._transform_tensor(t) for k, t in self._iterator.GetNextAsMap().items()}
  File "/usr/local/python-3.7.5/lib/python3.7/site-packages/mindspore/dataset/engine/iterators.py", line 84, in <lambda>
    self._transform_tensor = lambda t: Tensor(t.as_array())
  File "/usr/local/python-3.7.5/lib/python3.7/site-packages/mindspore/common/tensor.py", line 74, in __init__
    raise TypeError(f"For Tensor, the input_data is a numpy array, "
TypeError: For Tensor, the input_data is a numpy array, but it's data type is not in supported list: ['int8', 'int16', 'int32', 'int64', 'uint8', 'uint16', 'uint32', 'uint64', 'float16', 'float32', 'float64', 'bool_'].

进程已结束,退出代码为 1



其原因就是如果设置output_numpy=True,
那么输出的就是numpy类型数据,由于输入的是numpy类型数据,那么在内部进行数据处理时不对数据类型进行转换。

而如果设置output_numpy=False (默认设置),
那么输出的就是Tensor类型数据,由于输入的是numpy类型数据,那么在内部进行数据处理时就需要对数据类型进行转换。

根据报错信息:
TypeError: For Tensor, the input_data is a numpy array, but it's data type is not in supported list: ['int8', 'int16', 'int32', 'int64', 'uint8', 'uint16', 'uint32', 'uint64', 'float16', 'float32', 'float64', 'bool_'].

我们可以知道如果内部需要对数据类型转换的话,那么输入数据必须是以下类型:
['int8', 'int16', 'int32', 'int64', 'uint8', 'uint16', 'uint32', 'uint64', 'float16', 'float32', 'float64', 'bool_'].
或者是可以转换为这些类型的数据,而我们调用 dataset.create_dict_iterator 时其内部输入的数据是 字符型(str), 因此无法转换从而报错。

===============================================================

不过这里不得不吐槽以下MindSpore框架的报错信息写的真是很需要猜,不然真是看不懂,要是没有些经验的话这种报错信息也是难以懂的。

MindSpore框架 加载文本数据集 示例的更多相关文章

  1. 用华为MindSpore框架训练数据库类型的数据集

    技术背景 在前面一篇博客我们讲到三种用python去读取一个文件的指定行的操作,最终给出的一个结论大概是,对于大型的数据而言,最快的找到指定行的方法是Linux系统自带的sed指令,那么是否只有这一种 ...

  2. 未能加载文件或程序集“AspNetPager”或它的某一个依赖项。参数错误(转)

    未能加载文件或程序集“AspNetPager”或它的某一个依赖项.参数错误. 看你的的开发框架用的是多少的2.0, 3.0, 3.5, 4.0 那么删除的框架的文件夹也相对应的变化   删除 C:\W ...

  3. 未能加载文件或程序集“DeveloperKit10.1/DotNet/ESRI.ArcGIS.ADF.Local.或它的某一个依赖项

    使用VS2010进行ArcGIS Engine 10.1进行开发过程中,出现: 错误 1 未能加载文件或程序集“file:///D:/ArcGIS/DeveloperKit10.0/DotNet/ES ...

  4. 使用Autofac部署IIS6.0时未能加载文件或程序集“System.Core, Version=2.0.5.0...“

    错误信息 .net4.0项目中使用autofac这个IOC容器,在部署在win2003+iis6时出现以下错误. “/”应用程序中的服务器错误. --------------------------- ...

  5. 【Win 10 应用开发】在代码中加载文本资源

    记得前一次,老周给大伙,不,小伙伴们介绍了如何填写 .resw 文件,并且在 XAML 中使用 x:Uid 标记来加载.也顺便给大伙儿分析了运行时是如何解析 .resw 文件的. 本来说好了,后续老周 ...

  6. 未能加载文件或程序集“file:///C:\Program Files (x86)\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0

    未能加载文件或程序集"file:///C:\Program Files (x86)\SAP BusinessObjects\Crystal Reports for .NET Framewor ...

  7. [c#.net]未能加载文件或程序集“”或它的某一个依赖项。系统找不到指定的文件

    问题是这样嘀: 项目采用了三层架构和工厂模式,并借鉴了PetShop的架构,因为这个项目也是采用分布式的数据库,目前只有三个数据库,主要出于提高访问性能考虑. 原来是按照网上对PetShop的介绍来给 ...

  8. c# 未能加载文件或程序集

    最近做项目时碰到这个问题了,goole.百度了半天,整理了以下几种可能: DLL文件名与加载时的DLL文件名不一致, DLL文件根本不存在,即出现丢失情况, 加载DLL路径错误,即DLL文件存在,但加 ...

  9. 未能加载文件或程序集“file:///D:/Program Files (x86)/ArcGIS/DeveloperKit10.0/DotNet/ESRI.ArcGIS.3DAnalyst.dll”或它的某一个依赖项。试图加载格式不正确的程序。 行 129,位置 5。

    能加载文件或程序集“file:///C:/Program Files (x86)/ArcGIS/DeveloperKit10.0/DotNet/ESRI.ArcGIS.ADF.Local.dll”或它 ...

  10. .net应用程序安装部署时异常 Error 1001. 在初始化安装时发生异常 System.BadImageFormatException:未能加载文件或程序集 的解决办法【成功解决】

    采用.net 4.0框架开发的一个桌面应用程序在某学校的一体机(Windows7的32位操作系统)上做安装部署时抛出异常,安装程序回滚,多次尝试仍不成功. Error 1001. 在初始化安装时发生异 ...

随机推荐

  1. BigDecimal的小数位

    在使用BigDecimal的divide方法进行除法运算时,需要传入两个参数:被除数和除数.如果要对除法结果进行保留小数位数的处理,可以使用该方法的重载形式,传入一个指定小数位数和舍入规则的MathC ...

  2. redis查询 第1个数据库,而不是默认的第0个数据库

    redis查询 第1个数据库,而不是默认的第0个数据库 spring.redis.database = 1 默认: spring.redis.database = 0 car-test:0>ge ...

  3. Unity中使用ProtocolBuffer

    Unity中使用ProtocolBuffer unityProtocolBufferUnity ProtocolBuggerC# ProtocolBuffer Unity中使用ProtocolBuff ...

  4. python + pytestTestreport生成测试报告_报告没有生成图标和报告样式错乱

    pytestreport 生成测试报告的问题 1.生成报告html页面的样式错乱 2.生成报告html页面的图标没有展示 3. 生成报告html页面的查询详情按钮点击没有相应 问题排除: 浏览器开发者 ...

  5. iOS登陆界面切换到注册界面并返回的UI设计(简易向)

    功能实现 从登陆界面进入注册界面 从注册界面返回登陆界面 功能实现思路 在网上搜了搜发现各位大神用的是navigation,但个人感觉没(zhen)大(ting)必(bu)要(dong).所以在这里提 ...

  6. 开启PHP-GD库

    话不多说,上教程 环境 CentOS7 1. 安装php-gd yum install php-gd 2. 定位gd.so位置 rpm -qal | grep gd.so #第一行即是 3. 定位配置 ...

  7. 《编译原理》阅读笔记:p18

    <编译原理>学习第 3 天,p18总结,总计 14页. 一.技术总结 1.assembler (1)计算机结构 要想学习汇编的时候更好的理解,要先了解计算机的结构,以下是本人学习汇编时总结 ...

  8. Python使用Matplotlib画以日期为X轴的图

    Python使用Matplotlib画以日期为X轴的图 步骤: 用pd把字符串格式的日期转成date格式. 使用 AutoDateLocator 设置x轴的属性. 1 from matplotlib ...

  9. js - 面向对象--手稿

  10. 转载 | ofd转pdf最好用的软件,ofd文件如何转化成pdf?

    1.背景 需要将ofd转换为pdf 2.使用方法 使用taurusxin 开发的软件Ofd2Pdf.exe即可实现,软件版权归原作者所有.这里表示感谢! 3.下载地址 官网:https://githu ...