24 from daal.data_management
import HomogenNumericTable, FileDataSource, DataSource, InputDataArchive, OutputDataArchive
26 utils_folder = os.path.realpath(os.path.abspath(os.path.dirname(os.path.dirname(__file__))))
27 if utils_folder
not in sys.path:
28 sys.path.insert(0, utils_folder)
29 from utils
import printNumericTable
32 datasetFileName = os.path.join(
'..',
'data',
'batch',
'serialization.csv')
35 def serializeNumericTable(dataTable):
38 dataArch = InputDataArchive()
41 dataTable.serialize(dataArch)
44 length = dataArch.getSizeOfArchive()
47 buffer = np.zeros(length, dtype=np.ubyte)
48 dataArch.copyArchiveToArray(buffer)
53 def deserializeNumericTable(buffer):
56 dataArch = OutputDataArchive(buffer)
59 dataTable = HomogenNumericTable()
62 dataTable.deserialize(dataArch)
67 if __name__ ==
"__main__":
70 dataSource = FileDataSource(
71 datasetFileName, DataSource.doAllocateNumericTable, DataSource.doDictionaryFromContext
75 dataSource.loadDataBlock()
78 dataTable = dataSource.getNumericTable()
81 printNumericTable(dataTable,
"Data before serialization:")
84 buffer = serializeNumericTable(dataTable)
87 restoredDataTable = deserializeNumericTable(buffer)
90 printNumericTable(restoredDataTable,
"Data after deserialization:")