26 from daal.data_management
import HomogenNumericTable, FileDataSource, DataSource, InputDataArchive, OutputDataArchive
28 utils_folder = os.path.realpath(os.path.abspath(os.path.dirname(os.path.dirname(__file__))))
29 if utils_folder
not in sys.path:
30 sys.path.insert(0, utils_folder)
31 from utils
import printNumericTable
34 datasetFileName = os.path.join(
'..',
'data',
'batch',
'serialization.csv')
37 def serializeNumericTable(dataTable):
40 dataArch = InputDataArchive()
43 dataTable.serialize(dataArch)
46 length = dataArch.getSizeOfArchive()
49 buffer = np.zeros(length, dtype=np.ubyte)
50 dataArch.copyArchiveToArray(buffer)
55 def deserializeNumericTable(buffer):
58 dataArch = OutputDataArchive(buffer)
61 dataTable = HomogenNumericTable()
64 dataTable.deserialize(dataArch)
69 if __name__ ==
"__main__":
72 dataSource = FileDataSource(
73 datasetFileName, DataSource.doAllocateNumericTable, DataSource.doDictionaryFromContext
77 dataSource.loadDataBlock()
80 dataTable = dataSource.getNumericTable()
83 printNumericTable(dataTable,
"Data before serialization:")
86 buffer = serializeNumericTable(dataTable)
89 restoredDataTable = deserializeNumericTable(buffer)
92 printNumericTable(restoredDataTable,
"Data after deserialization:")