|
|
|
@@ -15,6 +15,8 @@ |
|
|
|
"""test mindrecord exception""" |
|
|
|
import os |
|
|
|
import pytest |
|
|
|
|
|
|
|
import numpy as np |
|
|
|
from utils import get_data |
|
|
|
|
|
|
|
from mindspore import log as logger |
|
|
|
@@ -341,3 +343,532 @@ def test_mindpage_filename_not_exist(fixture_cv_file): |
|
|
|
|
|
|
|
_ = ["{}{}".format(CV_FILE_NAME, str(x).rjust(1, '0')) |
|
|
|
for x in range(FILES_NUM)] |
|
|
|
|
|
|
|
def test_invalid_schema(): |
|
|
|
mindrecord_file_name = "test.mindrecord" |
|
|
|
writer = FileWriter(mindrecord_file_name) |
|
|
|
|
|
|
|
# string => str |
|
|
|
schema = {"file_name": {"type": "str"}, |
|
|
|
"label": {"type": "int32"}, |
|
|
|
"score": {"type": "float64"}, |
|
|
|
"mask": {"type": "int64", "shape": [-1]}, |
|
|
|
"segments": {"type": "float32", "shape": [2, 2]}, |
|
|
|
"data": {"type": "bytes"}} |
|
|
|
with pytest.raises(Exception, match="Schema format is error"): |
|
|
|
writer.add_schema(schema, "data is so cool") |
|
|
|
writer.write_raw_data(data) |
|
|
|
writer.commit() |
|
|
|
|
|
|
|
os.remove("{}".format(mindrecord_file_name)) |
|
|
|
os.remove("{}.db".format(mindrecord_file_name)) |
|
|
|
|
|
|
|
# int32 => np.int32 |
|
|
|
schema = {"file_name": {"type": "string"}, |
|
|
|
"label": {"type": "np.int32"}, |
|
|
|
"score": {"type": "float64"}, |
|
|
|
"mask": {"type": "int64", "shape": [-1]}, |
|
|
|
"segments": {"type": "float32", "shape": [2, 2]}, |
|
|
|
"data": {"type": "bytes"}} |
|
|
|
with pytest.raises(Exception, match="Schema format is error"): |
|
|
|
writer.add_schema(schema, "data is so cool") |
|
|
|
writer.write_raw_data(data) |
|
|
|
writer.commit() |
|
|
|
|
|
|
|
os.remove("{}".format(mindrecord_file_name)) |
|
|
|
os.remove("{}.db".format(mindrecord_file_name)) |
|
|
|
|
|
|
|
# float64 => np.float64 |
|
|
|
schema = {"file_name": {"type": "string"}, |
|
|
|
"label": {"type": "int32"}, |
|
|
|
"score": {"type": "np.float64"}, |
|
|
|
"mask": {"type": "int64", "shape": [-1]}, |
|
|
|
"segments": {"type": "float32", "shape": [2, 2]}, |
|
|
|
"data": {"type": "bytes"}} |
|
|
|
with pytest.raises(Exception, match="Schema format is error"): |
|
|
|
writer.add_schema(schema, "data is so cool") |
|
|
|
writer.write_raw_data(data) |
|
|
|
writer.commit() |
|
|
|
|
|
|
|
os.remove("{}".format(mindrecord_file_name)) |
|
|
|
os.remove("{}.db".format(mindrecord_file_name)) |
|
|
|
|
|
|
|
# int64 => int8 |
|
|
|
schema = {"file_name": {"type": "string"}, |
|
|
|
"label": {"type": "int32"}, |
|
|
|
"score": {"type": "float64"}, |
|
|
|
"mask": {"type": "int8", "shape": [-1]}, |
|
|
|
"segments": {"type": "float32", "shape": [2, 2]}, |
|
|
|
"data": {"type": "bytes"}} |
|
|
|
with pytest.raises(Exception, match="Schema format is error"): |
|
|
|
writer.add_schema(schema, "data is so cool") |
|
|
|
writer.write_raw_data(data) |
|
|
|
writer.commit() |
|
|
|
|
|
|
|
os.remove("{}".format(mindrecord_file_name)) |
|
|
|
os.remove("{}.db".format(mindrecord_file_name)) |
|
|
|
|
|
|
|
# int64 => uint64 |
|
|
|
schema = {"file_name": {"type": "string"}, |
|
|
|
"label": {"type": "int32"}, |
|
|
|
"score": {"type": "float64"}, |
|
|
|
"mask": {"type": "uint64", "shape": [-1]}, |
|
|
|
"segments": {"type": "float32", "shape": [2, 2]}, |
|
|
|
"data": {"type": "bytes"}} |
|
|
|
with pytest.raises(Exception, match="Schema format is error"): |
|
|
|
writer.add_schema(schema, "data is so cool") |
|
|
|
writer.write_raw_data(data) |
|
|
|
writer.commit() |
|
|
|
|
|
|
|
os.remove("{}".format(mindrecord_file_name)) |
|
|
|
os.remove("{}.db".format(mindrecord_file_name)) |
|
|
|
|
|
|
|
# bytes => byte |
|
|
|
schema = {"file_name": {"type": "strint"}, |
|
|
|
"label": {"type": "int32"}, |
|
|
|
"score": {"type": "float64"}, |
|
|
|
"mask": {"type": "int64", "shape": [-1]}, |
|
|
|
"segments": {"type": "float32", "shape": [2, 2]}, |
|
|
|
"data": {"type": "byte"}} |
|
|
|
with pytest.raises(Exception, match="Schema format is error"): |
|
|
|
writer.add_schema(schema, "data is so cool") |
|
|
|
writer.write_raw_data(data) |
|
|
|
writer.commit() |
|
|
|
|
|
|
|
os.remove("{}".format(mindrecord_file_name)) |
|
|
|
os.remove("{}.db".format(mindrecord_file_name)) |
|
|
|
|
|
|
|
# float32 => float3 |
|
|
|
schema = {"file_name": {"type": "string"}, |
|
|
|
"label": {"type": "int32"}, |
|
|
|
"score": {"type": "float64"}, |
|
|
|
"mask": {"type": "int64", "shape": [-1]}, |
|
|
|
"segments": {"type": "float3", "shape": [2, 88]}, |
|
|
|
"data": {"type": "bytes"}} |
|
|
|
with pytest.raises(Exception, match="Schema format is error"): |
|
|
|
writer.add_schema(schema, "data is so cool") |
|
|
|
writer.write_raw_data(data) |
|
|
|
writer.commit() |
|
|
|
|
|
|
|
os.remove("{}".format(mindrecord_file_name)) |
|
|
|
os.remove("{}.db".format(mindrecord_file_name)) |
|
|
|
|
|
|
|
# string with shape |
|
|
|
schema = {"file_name": {"type": "string", "shape": [-1]}, |
|
|
|
"label": {"type": "int32"}, |
|
|
|
"score": {"type": "float64"}, |
|
|
|
"mask": {"type": "int64", "shape": [-1]}, |
|
|
|
"segments": {"type": "float32", "shape": [2, 2]}, |
|
|
|
"data": {"type": "bytes"}} |
|
|
|
with pytest.raises(Exception, match="Schema format is error"): |
|
|
|
writer.add_schema(schema, "data is so cool") |
|
|
|
writer.write_raw_data(data) |
|
|
|
writer.commit() |
|
|
|
|
|
|
|
os.remove("{}".format(mindrecord_file_name)) |
|
|
|
os.remove("{}.db".format(mindrecord_file_name)) |
|
|
|
|
|
|
|
# bytes with shape |
|
|
|
schema = {"file_name": {"type": "string"}, |
|
|
|
"label": {"type": "int32"}, |
|
|
|
"score": {"type": "float64"}, |
|
|
|
"mask": {"type": "int64", "shape": [-1]}, |
|
|
|
"segments": {"type": "float32", "shape": [2, 2]}, |
|
|
|
"data": {"type": "bytes", "shape": [100]}} |
|
|
|
with pytest.raises(Exception, match="Schema format is error"): |
|
|
|
writer.add_schema(schema, "data is so cool") |
|
|
|
writer.write_raw_data(data) |
|
|
|
writer.commit() |
|
|
|
|
|
|
|
os.remove("{}".format(mindrecord_file_name)) |
|
|
|
os.remove("{}.db".format(mindrecord_file_name)) |
|
|
|
|
|
|
|
def test_write_with_invalid_data(): |
|
|
|
mindrecord_file_name = "test.mindrecord" |
|
|
|
|
|
|
|
# field: file_name => filename |
|
|
|
with pytest.raises(Exception, match="Failed to write dataset"): |
|
|
|
remove_one_file(mindrecord_file_name) |
|
|
|
remove_one_file(mindrecord_file_name + ".db") |
|
|
|
|
|
|
|
data = [{"filename": "001.jpg", "label": 43, "score": 0.8, "mask": np.array([3, 6, 9], dtype=np.int64), |
|
|
|
"segments": np.array([[5.0, 1.6], [65.2, 8.3]], dtype=np.float32), |
|
|
|
"data": bytes("image bytes abc", encoding='UTF-8')}, |
|
|
|
{"filename": "002.jpg", "label": 91, "score": 5.4, "mask": np.array([1, 4, 7], dtype=np.int64), |
|
|
|
"segments": np.array([[5.1, 9.1], [2.0, 65.4]], dtype=np.float32), |
|
|
|
"data": bytes("image bytes def", encoding='UTF-8')}, |
|
|
|
{"filename": "003.jpg", "label": 61, "score": 6.4, "mask": np.array([7, 6, 3], dtype=np.int64), |
|
|
|
"segments": np.array([[0.0, 5.6], [3.0, 16.3]], dtype=np.float32), |
|
|
|
"data": bytes("image bytes ghi", encoding='UTF-8')}, |
|
|
|
{"filename": "004.jpg", "label": 29, "score": 8.1, "mask": np.array([2, 8, 0], dtype=np.int64), |
|
|
|
"segments": np.array([[5.9, 7.2], [4.0, 89.0]], dtype=np.float32), |
|
|
|
"data": bytes("image bytes jkl", encoding='UTF-8')}, |
|
|
|
{"filename": "005.jpg", "label": 78, "score": 7.7, "mask": np.array([3, 1, 2], dtype=np.int64), |
|
|
|
"segments": np.array([[0.6, 8.1], [5.3, 49.3]], dtype=np.float32), |
|
|
|
"data": bytes("image bytes mno", encoding='UTF-8')}, |
|
|
|
{"filename": "006.jpg", "label": 37, "score": 9.4, "mask": np.array([7, 6, 7], dtype=np.int64), |
|
|
|
"segments": np.array([[4.2, 6.3], [8.9, 81.8]], dtype=np.float32), |
|
|
|
"data": bytes("image bytes pqr", encoding='UTF-8')} |
|
|
|
] |
|
|
|
writer = FileWriter(mindrecord_file_name) |
|
|
|
schema = {"file_name": {"type": "string"}, |
|
|
|
"label": {"type": "int32"}, |
|
|
|
"score": {"type": "float64"}, |
|
|
|
"mask": {"type": "int64", "shape": [-1]}, |
|
|
|
"segments": {"type": "float32", "shape": [2, 2]}, |
|
|
|
"data": {"type": "bytes"}} |
|
|
|
writer.add_schema(schema, "data is so cool") |
|
|
|
writer.write_raw_data(data) |
|
|
|
writer.commit() |
|
|
|
|
|
|
|
# field: mask => masks |
|
|
|
with pytest.raises(Exception, match="Failed to write dataset"): |
|
|
|
remove_one_file(mindrecord_file_name) |
|
|
|
remove_one_file(mindrecord_file_name + ".db") |
|
|
|
|
|
|
|
data = [{"file_name": "001.jpg", "label": 43, "score": 0.8, "masks": np.array([3, 6, 9], dtype=np.int64), |
|
|
|
"segments": np.array([[5.0, 1.6], [65.2, 8.3]], dtype=np.float32), |
|
|
|
"data": bytes("image bytes abc", encoding='UTF-8')}, |
|
|
|
{"file_name": "002.jpg", "label": 91, "score": 5.4, "masks": np.array([1, 4, 7], dtype=np.int64), |
|
|
|
"segments": np.array([[5.1, 9.1], [2.0, 65.4]], dtype=np.float32), |
|
|
|
"data": bytes("image bytes def", encoding='UTF-8')}, |
|
|
|
{"file_name": "003.jpg", "label": 61, "score": 6.4, "masks": np.array([7, 6, 3], dtype=np.int64), |
|
|
|
"segments": np.array([[0.0, 5.6], [3.0, 16.3]], dtype=np.float32), |
|
|
|
"data": bytes("image bytes ghi", encoding='UTF-8')}, |
|
|
|
{"file_name": "004.jpg", "label": 29, "score": 8.1, "masks": np.array([2, 8, 0], dtype=np.int64), |
|
|
|
"segments": np.array([[5.9, 7.2], [4.0, 89.0]], dtype=np.float32), |
|
|
|
"data": bytes("image bytes jkl", encoding='UTF-8')}, |
|
|
|
{"file_name": "005.jpg", "label": 78, "score": 7.7, "masks": np.array([3, 1, 2], dtype=np.int64), |
|
|
|
"segments": np.array([[0.6, 8.1], [5.3, 49.3]], dtype=np.float32), |
|
|
|
"data": bytes("image bytes mno", encoding='UTF-8')}, |
|
|
|
{"file_name": "006.jpg", "label": 37, "score": 9.4, "masks": np.array([7, 6, 7], dtype=np.int64), |
|
|
|
"segments": np.array([[4.2, 6.3], [8.9, 81.8]], dtype=np.float32), |
|
|
|
"data": bytes("image bytes pqr", encoding='UTF-8')} |
|
|
|
] |
|
|
|
writer = FileWriter(mindrecord_file_name) |
|
|
|
schema = {"file_name": {"type": "string"}, |
|
|
|
"label": {"type": "int32"}, |
|
|
|
"score": {"type": "float64"}, |
|
|
|
"mask": {"type": "int64", "shape": [-1]}, |
|
|
|
"segments": {"type": "float32", "shape": [2, 2]}, |
|
|
|
"data": {"type": "bytes"}} |
|
|
|
writer.add_schema(schema, "data is so cool") |
|
|
|
writer.write_raw_data(data) |
|
|
|
writer.commit() |
|
|
|
|
|
|
|
# field: data => image |
|
|
|
with pytest.raises(Exception, match="Failed to write dataset"): |
|
|
|
remove_one_file(mindrecord_file_name) |
|
|
|
remove_one_file(mindrecord_file_name + ".db") |
|
|
|
|
|
|
|
data = [{"file_name": "001.jpg", "label": 43, "score": 0.8, "mask": np.array([3, 6, 9], dtype=np.int64), |
|
|
|
"segments": np.array([[5.0, 1.6], [65.2, 8.3]], dtype=np.float32), |
|
|
|
"image": bytes("image bytes abc", encoding='UTF-8')}, |
|
|
|
{"file_name": "002.jpg", "label": 91, "score": 5.4, "mask": np.array([1, 4, 7], dtype=np.int64), |
|
|
|
"segments": np.array([[5.1, 9.1], [2.0, 65.4]], dtype=np.float32), |
|
|
|
"image": bytes("image bytes def", encoding='UTF-8')}, |
|
|
|
{"file_name": "003.jpg", "label": 61, "score": 6.4, "mask": np.array([7, 6, 3], dtype=np.int64), |
|
|
|
"segments": np.array([[0.0, 5.6], [3.0, 16.3]], dtype=np.float32), |
|
|
|
"image": bytes("image bytes ghi", encoding='UTF-8')}, |
|
|
|
{"file_name": "004.jpg", "label": 29, "score": 8.1, "mask": np.array([2, 8, 0], dtype=np.int64), |
|
|
|
"segments": np.array([[5.9, 7.2], [4.0, 89.0]], dtype=np.float32), |
|
|
|
"image": bytes("image bytes jkl", encoding='UTF-8')}, |
|
|
|
{"file_name": "005.jpg", "label": 78, "score": 7.7, "mask": np.array([3, 1, 2], dtype=np.int64), |
|
|
|
"segments": np.array([[0.6, 8.1], [5.3, 49.3]], dtype=np.float32), |
|
|
|
"image": bytes("image bytes mno", encoding='UTF-8')}, |
|
|
|
{"file_name": "006.jpg", "label": 37, "score": 9.4, "mask": np.array([7, 6, 7], dtype=np.int64), |
|
|
|
"segments": np.array([[4.2, 6.3], [8.9, 81.8]], dtype=np.float32), |
|
|
|
"image": bytes("image bytes pqr", encoding='UTF-8')} |
|
|
|
] |
|
|
|
writer = FileWriter(mindrecord_file_name) |
|
|
|
schema = {"file_name": {"type": "string"}, |
|
|
|
"label": {"type": "int32"}, |
|
|
|
"score": {"type": "float64"}, |
|
|
|
"mask": {"type": "int64", "shape": [-1]}, |
|
|
|
"segments": {"type": "float32", "shape": [2, 2]}, |
|
|
|
"data": {"type": "bytes"}} |
|
|
|
writer.add_schema(schema, "data is so cool") |
|
|
|
writer.write_raw_data(data) |
|
|
|
writer.commit() |
|
|
|
|
|
|
|
# field: label => lable |
|
|
|
with pytest.raises(Exception, match="Failed to write dataset"): |
|
|
|
remove_one_file(mindrecord_file_name) |
|
|
|
remove_one_file(mindrecord_file_name + ".db") |
|
|
|
|
|
|
|
data = [{"file_name": "001.jpg", "lable": 43, "score": 0.8, "mask": np.array([3, 6, 9], dtype=np.int64), |
|
|
|
"segments": np.array([[5.0, 1.6], [65.2, 8.3]], dtype=np.float32), |
|
|
|
"data": bytes("image bytes abc", encoding='UTF-8')}, |
|
|
|
{"file_name": "002.jpg", "lable": 91, "score": 5.4, "mask": np.array([1, 4, 7], dtype=np.int64), |
|
|
|
"segments": np.array([[5.1, 9.1], [2.0, 65.4]], dtype=np.float32), |
|
|
|
"data": bytes("image bytes def", encoding='UTF-8')}, |
|
|
|
{"file_name": "003.jpg", "lable": 61, "score": 6.4, "mask": np.array([7, 6, 3], dtype=np.int64), |
|
|
|
"segments": np.array([[0.0, 5.6], [3.0, 16.3]], dtype=np.float32), |
|
|
|
"data": bytes("image bytes ghi", encoding='UTF-8')}, |
|
|
|
{"file_name": "004.jpg", "lable": 29, "score": 8.1, "mask": np.array([2, 8, 0], dtype=np.int64), |
|
|
|
"segments": np.array([[5.9, 7.2], [4.0, 89.0]], dtype=np.float32), |
|
|
|
"data": bytes("image bytes jkl", encoding='UTF-8')}, |
|
|
|
{"file_name": "005.jpg", "lable": 78, "score": 7.7, "mask": np.array([3, 1, 2], dtype=np.int64), |
|
|
|
"segments": np.array([[0.6, 8.1], [5.3, 49.3]], dtype=np.float32), |
|
|
|
"data": bytes("image bytes mno", encoding='UTF-8')}, |
|
|
|
{"file_name": "006.jpg", "lable": 37, "score": 9.4, "mask": np.array([7, 6, 7], dtype=np.int64), |
|
|
|
"segments": np.array([[4.2, 6.3], [8.9, 81.8]], dtype=np.float32), |
|
|
|
"data": bytes("image bytes pqr", encoding='UTF-8')} |
|
|
|
] |
|
|
|
writer = FileWriter(mindrecord_file_name) |
|
|
|
schema = {"file_name": {"type": "string"}, |
|
|
|
"label": {"type": "int32"}, |
|
|
|
"score": {"type": "float64"}, |
|
|
|
"mask": {"type": "int64", "shape": [-1]}, |
|
|
|
"segments": {"type": "float32", "shape": [2, 2]}, |
|
|
|
"data": {"type": "bytes"}} |
|
|
|
writer.add_schema(schema, "data is so cool") |
|
|
|
writer.write_raw_data(data) |
|
|
|
writer.commit() |
|
|
|
|
|
|
|
# field: score => scores |
|
|
|
with pytest.raises(Exception, match="Failed to write dataset"): |
|
|
|
remove_one_file(mindrecord_file_name) |
|
|
|
remove_one_file(mindrecord_file_name + ".db") |
|
|
|
|
|
|
|
data = [{"file_name": "001.jpg", "label": 43, "scores": 0.8, "mask": np.array([3, 6, 9], dtype=np.int64), |
|
|
|
"segments": np.array([[5.0, 1.6], [65.2, 8.3]], dtype=np.float32), |
|
|
|
"data": bytes("image bytes abc", encoding='UTF-8')}, |
|
|
|
{"file_name": "002.jpg", "label": 91, "scores": 5.4, "mask": np.array([1, 4, 7], dtype=np.int64), |
|
|
|
"segments": np.array([[5.1, 9.1], [2.0, 65.4]], dtype=np.float32), |
|
|
|
"data": bytes("image bytes def", encoding='UTF-8')}, |
|
|
|
{"file_name": "003.jpg", "label": 61, "scores": 6.4, "mask": np.array([7, 6, 3], dtype=np.int64), |
|
|
|
"segments": np.array([[0.0, 5.6], [3.0, 16.3]], dtype=np.float32), |
|
|
|
"data": bytes("image bytes ghi", encoding='UTF-8')}, |
|
|
|
{"file_name": "004.jpg", "label": 29, "scores": 8.1, "mask": np.array([2, 8, 0], dtype=np.int64), |
|
|
|
"segments": np.array([[5.9, 7.2], [4.0, 89.0]], dtype=np.float32), |
|
|
|
"data": bytes("image bytes jkl", encoding='UTF-8')}, |
|
|
|
{"file_name": "005.jpg", "label": 78, "scores": 7.7, "mask": np.array([3, 1, 2], dtype=np.int64), |
|
|
|
"segments": np.array([[0.6, 8.1], [5.3, 49.3]], dtype=np.float32), |
|
|
|
"data": bytes("image bytes mno", encoding='UTF-8')}, |
|
|
|
{"file_name": "006.jpg", "label": 37, "scores": 9.4, "mask": np.array([7, 6, 7], dtype=np.int64), |
|
|
|
"segments": np.array([[4.2, 6.3], [8.9, 81.8]], dtype=np.float32), |
|
|
|
"data": bytes("image bytes pqr", encoding='UTF-8')} |
|
|
|
] |
|
|
|
writer = FileWriter(mindrecord_file_name) |
|
|
|
schema = {"file_name": {"type": "string"}, |
|
|
|
"label": {"type": "int32"}, |
|
|
|
"score": {"type": "float64"}, |
|
|
|
"mask": {"type": "int64", "shape": [-1]}, |
|
|
|
"segments": {"type": "float32", "shape": [2, 2]}, |
|
|
|
"data": {"type": "bytes"}} |
|
|
|
writer.add_schema(schema, "data is so cool") |
|
|
|
writer.write_raw_data(data) |
|
|
|
writer.commit() |
|
|
|
|
|
|
|
# string type with int value |
|
|
|
with pytest.raises(Exception, match="Failed to write dataset"): |
|
|
|
remove_one_file(mindrecord_file_name) |
|
|
|
remove_one_file(mindrecord_file_name + ".db") |
|
|
|
|
|
|
|
data = [{"file_name": 1, "label": 43, "score": 0.8, "mask": np.array([3, 6, 9], dtype=np.int64), |
|
|
|
"segments": np.array([[5.0, 1.6], [65.2, 8.3]], dtype=np.float32), |
|
|
|
"data": bytes("image bytes abc", encoding='UTF-8')}, |
|
|
|
{"file_name": 2, "label": 91, "score": 5.4, "mask": np.array([1, 4, 7], dtype=np.int64), |
|
|
|
"segments": np.array([[5.1, 9.1], [2.0, 65.4]], dtype=np.float32), |
|
|
|
"data": bytes("image bytes def", encoding='UTF-8')}, |
|
|
|
{"file_name": 3, "label": 61, "score": 6.4, "mask": np.array([7, 6, 3], dtype=np.int64), |
|
|
|
"segments": np.array([[0.0, 5.6], [3.0, 16.3]], dtype=np.float32), |
|
|
|
"data": bytes("image bytes ghi", encoding='UTF-8')}, |
|
|
|
{"file_name": 4, "label": 29, "score": 8.1, "mask": np.array([2, 8, 0], dtype=np.int64), |
|
|
|
"segments": np.array([[5.9, 7.2], [4.0, 89.0]], dtype=np.float32), |
|
|
|
"data": bytes("image bytes jkl", encoding='UTF-8')}, |
|
|
|
{"file_name": 5, "label": 78, "score": 7.7, "mask": np.array([3, 1, 2], dtype=np.int64), |
|
|
|
"segments": np.array([[0.6, 8.1], [5.3, 49.3]], dtype=np.float32), |
|
|
|
"data": bytes("image bytes mno", encoding='UTF-8')}, |
|
|
|
{"file_name": 6, "label": 37, "score": 9.4, "mask": np.array([7, 6, 7], dtype=np.int64), |
|
|
|
"segments": np.array([[4.2, 6.3], [8.9, 81.8]], dtype=np.float32), |
|
|
|
"data": bytes("image bytes pqr", encoding='UTF-8')} |
|
|
|
] |
|
|
|
writer = FileWriter(mindrecord_file_name) |
|
|
|
schema = {"file_name": {"type": "string"}, |
|
|
|
"label": {"type": "int32"}, |
|
|
|
"score": {"type": "float64"}, |
|
|
|
"mask": {"type": "int64", "shape": [-1]}, |
|
|
|
"segments": {"type": "float32", "shape": [2, 2]}, |
|
|
|
"data": {"type": "bytes"}} |
|
|
|
writer.add_schema(schema, "data is so cool") |
|
|
|
writer.write_raw_data(data) |
|
|
|
writer.commit() |
|
|
|
|
|
|
|
# field with int64 type, but the real data is string |
|
|
|
with pytest.raises(Exception, match="Failed to write dataset"): |
|
|
|
remove_one_file(mindrecord_file_name) |
|
|
|
remove_one_file(mindrecord_file_name + ".db") |
|
|
|
|
|
|
|
data = [{"file_name": "001.jpg", "label": "cat", "score": 0.8, "mask": np.array([3, 6, 9], dtype=np.int64), |
|
|
|
"segments": np.array([[5.0, 1.6], [65.2, 8.3]], dtype=np.float32), |
|
|
|
"data": bytes("image bytes abc", encoding='UTF-8')}, |
|
|
|
{"file_name": "002.jpg", "label": "dog", "score": 5.4, "mask": np.array([1, 4, 7], dtype=np.int64), |
|
|
|
"segments": np.array([[5.1, 9.6], [2.0, 65.4]], dtype=np.float32), |
|
|
|
"data": bytes("image bytes def", encoding='UTF-8')}, |
|
|
|
{"file_name": "003.jpg", "label": "bird", "score": 6.4, "mask": np.array([7, 6, 3], dtype=np.int64), |
|
|
|
"segments": np.array([[0.0, 5.6], [3.0, 16.3]], dtype=np.float32), |
|
|
|
"data": bytes("image bytes ghi", encoding='UTF-8')}, |
|
|
|
{"file_name": "004.jpg", "label": "mouse", "score": 8.1, "mask": np.array([2, 8, 0], dtype=np.int64), |
|
|
|
"segments": np.array([[5.9, 7.2], [4.0, 89.0]], dtype=np.float32), |
|
|
|
"data": bytes("image bytes jkl", encoding='UTF-8')}, |
|
|
|
{"file_name": "005.jpg", "label": "tiger", "score": 7.7, "mask": np.array([3, 1, 2], dtype=np.int64), |
|
|
|
"segments": np.array([[0.6, 8.1], [5.3, 49.3]], dtype=np.float32), |
|
|
|
"data": bytes("image bytes mno", encoding='UTF-8')}, |
|
|
|
{"file_name": "006.jpg", "label": "lion", "score": 9.4, "mask": np.array([7, 6, 7], dtype=np.int64), |
|
|
|
"segments": np.array([[4.2, 6.3], [8.9, 81.8]], dtype=np.float32), |
|
|
|
"data": bytes("image bytes pqr", encoding='UTF-8')} |
|
|
|
] |
|
|
|
writer = FileWriter(mindrecord_file_name) |
|
|
|
schema = {"file_name": {"type": "string"}, |
|
|
|
"label": {"type": "int32"}, |
|
|
|
"score": {"type": "float64"}, |
|
|
|
"mask": {"type": "int64", "shape": [-1]}, |
|
|
|
"segments": {"type": "float32", "shape": [2, 2]}, |
|
|
|
"data": {"type": "bytes"}} |
|
|
|
writer.add_schema(schema, "data is so cool") |
|
|
|
writer.write_raw_data(data) |
|
|
|
writer.commit() |
|
|
|
|
|
|
|
# bytes field is string |
|
|
|
with pytest.raises(Exception, match="Failed to write dataset"): |
|
|
|
remove_one_file(mindrecord_file_name) |
|
|
|
remove_one_file(mindrecord_file_name + ".db") |
|
|
|
|
|
|
|
data = [{"file_name": "001.jpg", "label": 43, "score": 0.8, "mask": np.array([3, 6, 9], dtype=np.int64), |
|
|
|
"segments": np.array([[5.0, 1.6], [65.2, 8.3]], dtype=np.float32), |
|
|
|
"data": "image bytes abc"}, |
|
|
|
{"file_name": "002.jpg", "label": 91, "score": 5.4, "mask": np.array([1, 4, 7], dtype=np.int64), |
|
|
|
"segments": np.array([[5.1, 9.1], [2.0, 65.4]], dtype=np.float32), |
|
|
|
"data": "image bytes def"}, |
|
|
|
{"file_name": "003.jpg", "label": 61, "score": 6.4, "mask": np.array([7, 6, 3], dtype=np.int64), |
|
|
|
"segments": np.array([[0.0, 5.6], [3.0, 16.3]], dtype=np.float32), |
|
|
|
"data": "image bytes ghi"}, |
|
|
|
{"file_name": "004.jpg", "label": 29, "score": 8.1, "mask": np.array([2, 8, 0], dtype=np.int64), |
|
|
|
"segments": np.array([[5.9, 7.2], [4.0, 89.0]], dtype=np.float32), |
|
|
|
"data": "image bytes jkl"}, |
|
|
|
{"file_name": "005.jpg", "label": 78, "score": 7.7, "mask": np.array([3, 1, 2], dtype=np.int64), |
|
|
|
"segments": np.array([[0.6, 8.1], [5.3, 49.3]], dtype=np.float32), |
|
|
|
"data": "image bytes mno"}, |
|
|
|
{"file_name": "006.jpg", "label": 37, "score": 9.4, "mask": np.array([7, 6, 7], dtype=np.int64), |
|
|
|
"segments": np.array([[4.2, 6.3], [8.9, 81.8]], dtype=np.float32), |
|
|
|
"data": "image bytes pqr"} |
|
|
|
] |
|
|
|
writer = FileWriter(mindrecord_file_name) |
|
|
|
schema = {"file_name": {"type": "string"}, |
|
|
|
"label": {"type": "int32"}, |
|
|
|
"score": {"type": "float64"}, |
|
|
|
"mask": {"type": "int64", "shape": [-1]}, |
|
|
|
"segments": {"type": "float32", "shape": [2, 2]}, |
|
|
|
"data": {"type": "bytes"}} |
|
|
|
writer.add_schema(schema, "data is so cool") |
|
|
|
writer.write_raw_data(data) |
|
|
|
writer.commit() |
|
|
|
|
|
|
|
# field is not numpy type |
|
|
|
with pytest.raises(Exception, match="Failed to write dataset"): |
|
|
|
remove_one_file(mindrecord_file_name) |
|
|
|
remove_one_file(mindrecord_file_name + ".db") |
|
|
|
|
|
|
|
data = [{"file_name": "001.jpg", "label": 43, "score": 0.8, "mask": [3, 6, 9], |
|
|
|
"segments": np.array([[5.0, 1.6], [65.2, 8.3]], dtype=np.float32), |
|
|
|
"data": bytes("image bytes abc", encoding='UTF-8')}, |
|
|
|
{"file_name": "002.jpg", "label": 91, "score": 5.4, "mask": [1, 4, 7], |
|
|
|
"segments": np.array([[5.1, 9.1], [2.0, 65.4]], dtype=np.float32), |
|
|
|
"data": bytes("image bytes def", encoding='UTF-8')}, |
|
|
|
{"file_name": "003.jpg", "label": 61, "score": 6.4, "mask": [7, 6, 3], |
|
|
|
"segments": np.array([[0.0, 5.6], [3.0, 16.3]], dtype=np.float32), |
|
|
|
"data": bytes("image bytes ghi", encoding='UTF-8')}, |
|
|
|
{"file_name": "004.jpg", "label": 29, "score": 8.1, "mask": [2, 8, 0], |
|
|
|
"segments": np.array([[5.9, 7.2], [4.0, 89.0]], dtype=np.float32), |
|
|
|
"data": bytes("image bytes jkl", encoding='UTF-8')}, |
|
|
|
{"file_name": "005.jpg", "label": 78, "score": 7.7, "mask": [3, 1, 2], |
|
|
|
"segments": np.array([[0.6, 8.1], [5.3, 49.3]], dtype=np.float32), |
|
|
|
"data": bytes("image bytes mno", encoding='UTF-8')}, |
|
|
|
{"file_name": "006.jpg", "label": 37, "score": 9.4, "mask": [7, 6, 7], |
|
|
|
"segments": np.array([[4.2, 6.3], [8.9, 81.8]], dtype=np.float32), |
|
|
|
"data": bytes("image bytes pqr", encoding='UTF-8')} |
|
|
|
] |
|
|
|
writer = FileWriter(mindrecord_file_name) |
|
|
|
schema = {"file_name": {"type": "string"}, |
|
|
|
"label": {"type": "int32"}, |
|
|
|
"score": {"type": "float64"}, |
|
|
|
"mask": {"type": "int64", "shape": [-1]}, |
|
|
|
"segments": {"type": "float32", "shape": [2, 2]}, |
|
|
|
"data": {"type": "bytes"}} |
|
|
|
writer.add_schema(schema, "data is so cool") |
|
|
|
writer.write_raw_data(data) |
|
|
|
writer.commit() |
|
|
|
|
|
|
|
# not enough field |
|
|
|
with pytest.raises(Exception, match="Failed to write dataset"): |
|
|
|
remove_one_file(mindrecord_file_name) |
|
|
|
remove_one_file(mindrecord_file_name + ".db") |
|
|
|
|
|
|
|
data = [{"file_name": "001.jpg", "score": 0.8, "mask": np.array([3, 6, 9], dtype=np.int64), |
|
|
|
"segments": np.array([[5.0, 1.6], [65.2, 8.3]], dtype=np.float32), |
|
|
|
"data": bytes("image bytes abc", encoding='UTF-8')}, |
|
|
|
{"file_name": "002.jpg", "score": 5.4, "mask": np.array([1, 4, 7], dtype=np.int64), |
|
|
|
"segments": np.array([[5.1, 9.1], [2.0, 65.4]], dtype=np.float32), |
|
|
|
"data": bytes("image bytes def", encoding='UTF-8')}, |
|
|
|
{"file_name": "003.jpg", "score": 6.4, "mask": np.array([7, 6, 3], dtype=np.int64), |
|
|
|
"segments": np.array([[0.0, 5.6], [3.0, 16.3]], dtype=np.float32), |
|
|
|
"data": bytes("image bytes ghi", encoding='UTF-8')}, |
|
|
|
{"file_name": "004.jpg", "score": 8.1, "mask": np.array([2, 8, 0], dtype=np.int64), |
|
|
|
"segments": np.array([[5.9, 7.2], [4.0, 89.0]], dtype=np.float32), |
|
|
|
"data": bytes("image bytes jkl", encoding='UTF-8')}, |
|
|
|
{"file_name": "005.jpg", "score": 7.7, "mask": np.array([3, 1, 2], dtype=np.int64), |
|
|
|
"segments": np.array([[0.6, 8.1], [5.3, 49.3]], dtype=np.float32), |
|
|
|
"data": bytes("image bytes mno", encoding='UTF-8')}, |
|
|
|
{"file_name": "006.jpg", "score": 9.4, "mask": np.array([7, 6, 7], dtype=np.int64), |
|
|
|
"segments": np.array([[4.2, 6.3], [8.9, 81.8]], dtype=np.float32), |
|
|
|
"data": bytes("image bytes pqr", encoding='UTF-8')} |
|
|
|
] |
|
|
|
writer = FileWriter(mindrecord_file_name) |
|
|
|
schema = {"file_name": {"type": "string"}, |
|
|
|
"label": {"type": "int32"}, |
|
|
|
"score": {"type": "float64"}, |
|
|
|
"mask": {"type": "int64", "shape": [-1]}, |
|
|
|
"segments": {"type": "float32", "shape": [2, 2]}, |
|
|
|
"data": {"type": "bytes"}} |
|
|
|
writer.add_schema(schema, "data is so cool") |
|
|
|
writer.write_raw_data(data) |
|
|
|
writer.commit() |
|
|
|
|
|
|
|
# more field is ok |
|
|
|
remove_one_file(mindrecord_file_name) |
|
|
|
remove_one_file(mindrecord_file_name + ".db") |
|
|
|
|
|
|
|
data = [{"file_name": "001.jpg", "label": 43, "score": 0.8, "mask": np.array([3, 6, 9], dtype=np.int64), |
|
|
|
"segments": np.array([[5.0, 1.6], [65.2, 8.3]], dtype=np.float32), |
|
|
|
"data": bytes("image bytes abc", encoding='UTF-8'), "test": 0}, |
|
|
|
{"file_name": "002.jpg", "label": 91, "score": 5.4, "mask": np.array([1, 4, 7], dtype=np.int64), |
|
|
|
"segments": np.array([[5.1, 9.1], [2.0, 65.4]], dtype=np.float32), |
|
|
|
"data": bytes("image bytes def", encoding='UTF-8'), "test": 1}, |
|
|
|
{"file_name": "003.jpg", "label": 61, "score": 6.4, "mask": np.array([7, 6, 3], dtype=np.int64), |
|
|
|
"segments": np.array([[0.0, 5.6], [3.0, 16.3]], dtype=np.float32), |
|
|
|
"data": bytes("image bytes ghi", encoding='UTF-8'), "test": 2}, |
|
|
|
{"file_name": "004.jpg", "label": 29, "score": 8.1, "mask": np.array([2, 8, 0], dtype=np.int64), |
|
|
|
"segments": np.array([[5.9, 7.2], [4.0, 89.0]], dtype=np.float32), |
|
|
|
"data": bytes("image bytes jkl", encoding='UTF-8'), "test": 3}, |
|
|
|
{"file_name": "005.jpg", "label": 78, "score": 7.7, "mask": np.array([3, 1, 2], dtype=np.int64), |
|
|
|
"segments": np.array([[0.6, 8.1], [5.3, 49.3]], dtype=np.float32), |
|
|
|
"data": bytes("image bytes mno", encoding='UTF-8'), "test": 4}, |
|
|
|
{"file_name": "006.jpg", "label": 37, "score": 9.4, "mask": np.array([7, 6, 7], dtype=np.int64), |
|
|
|
"segments": np.array([[4.2, 6.3], [8.9, 81.8]], dtype=np.float32), |
|
|
|
"data": bytes("image bytes pqr", encoding='UTF-8'), "test": 5} |
|
|
|
] |
|
|
|
writer = FileWriter(mindrecord_file_name) |
|
|
|
schema = {"file_name": {"type": "string"}, |
|
|
|
"label": {"type": "int32"}, |
|
|
|
"score": {"type": "float64"}, |
|
|
|
"mask": {"type": "int64", "shape": [-1]}, |
|
|
|
"segments": {"type": "float32", "shape": [2, 2]}, |
|
|
|
"data": {"type": "bytes"}} |
|
|
|
writer.add_schema(schema, "data is so cool") |
|
|
|
writer.write_raw_data(data) |
|
|
|
writer.commit() |
|
|
|
|
|
|
|
remove_one_file(mindrecord_file_name) |
|
|
|
remove_one_file(mindrecord_file_name + ".db") |