50 from daal.data_management
import HomogenNumericTable, FileDataSource, DataSource, InputDataArchive, OutputDataArchive
52 utils_folder = os.path.realpath(os.path.abspath(os.path.dirname(os.path.dirname(__file__))))
53 if utils_folder
not in sys.path:
54 sys.path.insert(0, utils_folder)
55 from utils
import printNumericTable
58 datasetFileName = os.path.join(
'..',
'data',
'batch',
'serialization.csv')
61 def serializeNumericTable(dataTable):
64 dataArch = InputDataArchive()
67 dataTable.serialize(dataArch)
70 length = dataArch.getSizeOfArchive()
73 buffer = np.zeros(length, dtype=np.ubyte)
74 dataArch.copyArchiveToArray(buffer)
79 def deserializeNumericTable(buffer):
82 dataArch = OutputDataArchive(buffer)
85 dataTable = HomogenNumericTable()
88 dataTable.deserialize(dataArch)
93 if __name__ ==
"__main__":
96 dataSource = FileDataSource(
97 datasetFileName, DataSource.doAllocateNumericTable, DataSource.doDictionaryFromContext
101 dataSource.loadDataBlock()
104 dataTable = dataSource.getNumericTable()
107 printNumericTable(dataTable,
"Data before serialization:")
110 buffer = serializeNumericTable(dataTable)
113 restoredDataTable = deserializeNumericTable(buffer)
116 printNumericTable(restoredDataTable,
"Data after deserialization:")