Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
magicwindyyd
mindspore
提交
5c2ded8d
M
mindspore
项目概览
magicwindyyd
/
mindspore
与 Fork 源项目一致
Fork自
MindSpore / mindspore
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
M
mindspore
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
5c2ded8d
编写于
4月 14, 2020
作者:
A
anzhengqi
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix schema.parse_columns function
上级
30de261c
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
41 addition
and
35 deletion
+41
-35
mindspore/dataset/engine/datasets.py
mindspore/dataset/engine/datasets.py
+41
-35
未找到文件。
mindspore/dataset/engine/datasets.py
浏览文件 @
5c2ded8d
...
...
@@ -2464,47 +2464,53 @@ class Schema:
Parse the columns and add it to self.
Args:
columns (dict or list[str]): names of columns.
columns (dict or list[dict]): dataset attribution information, decoded from schema file.
if list: columns element must be dict, 'name' and 'type' must be in keys, 'shape' optional.
if dict: columns.keys() as name, element in columns.values() is dict, and 'type' inside, 'shape' optional.
example 1)
[{'name': 'image', 'type': 'int8', 'shape': [3, 3]},
{'name': 'label', 'type': 'int8', 'shape': [1]}]
example 2)
{'image': {'shape': [3, 3], 'type': 'int8'}, 'label': {'shape': [1], 'type': 'int8'}}
Raises:
RuntimeError: If failed to parse
schema file
.
RuntimeError: If unknown items in
schema file
.
RuntimeError: If failed to parse
columns
.
RuntimeError: If unknown items in
columns
.
RuntimeError: If column's name field is missing.
RuntimeError: If column's type field is missing.
"""
if
columns
is
None
:
raise
TypeError
(
"Expected non-empty dict or string list."
)
self
.
columns
=
[]
for
col
in
columns
:
name
=
None
shape
=
None
data_type
=
None
col_details
=
None
if
isinstance
(
columns
,
list
):
col_details
=
col
if
"name"
in
col
:
name
=
col
[
"name"
]
elif
isinstance
(
columns
,
dict
):
col_details
=
columns
[
col
]
name
=
col
else
:
raise
RuntimeError
(
"Error parsing the schema file"
)
for
k
,
v
in
col_details
.
items
():
if
k
==
"shape"
:
shape
=
v
elif
k
==
"type"
:
data_type
=
v
elif
k
in
(
"t_impl"
,
"rank"
):
pass
else
:
raise
RuntimeError
(
"Unknown field %s"
%
k
)
if
name
is
None
:
raise
RuntimeError
(
"Column's name field is missing."
)
if
data_type
is
None
:
raise
RuntimeError
(
"Column's type field is missing."
)
self
.
add_column
(
name
,
data_type
,
shape
)
if
isinstance
(
columns
,
list
):
for
column
in
columns
:
try
:
name
=
column
.
pop
(
"name"
)
except
KeyError
:
raise
RuntimeError
(
"Column's name is missing"
)
try
:
de_type
=
column
.
pop
(
"type"
)
except
KeyError
:
raise
RuntimeError
(
"Column' type is missing"
)
shape
=
column
.
pop
(
"shape"
,
None
)
column
.
pop
(
"t_impl"
,
None
)
column
.
pop
(
"rank"
,
None
)
if
column
:
raise
RuntimeError
(
"Unknown field {}"
.
format
(
","
.
join
(
column
.
keys
())))
self
.
add_column
(
name
,
de_type
,
shape
)
elif
isinstance
(
columns
,
dict
):
for
key
,
value
in
columns
.
items
():
name
=
key
try
:
de_type
=
value
.
pop
(
"type"
)
except
KeyError
:
raise
RuntimeError
(
"Column' type is missing"
)
shape
=
value
.
pop
(
"shape"
,
None
)
value
.
pop
(
"t_impl"
,
None
)
value
.
pop
(
"rank"
,
None
)
if
value
:
raise
RuntimeError
(
"Unknown field {}"
.
format
(
","
.
join
(
value
.
keys
())))
self
.
add_column
(
name
,
de_type
,
shape
)
else
:
raise
RuntimeError
(
"columns must be dict or list, columns contain name, type, shape(optional)."
)
def
from_json
(
self
,
json_obj
):
"""
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录