python daal test

import os
import sys

from daal.algorithms import low_order_moments
from daal.data_management import FileDataSource, DataSourceIface
from daal.data_management import (readOnly, NumericTableIface, BlockDescriptor, BlockDescriptor_Float32, BlockDescriptor_Intc, packed_mask)

#utils_folder = os.path.realpath(os.path.abspath(os.path.dirname(os.path.dirname(__file__))))
#if utils_folder not in sys.path:
#    sys.path.insert(0, utils_folder)
#from utils import printNumericTable

dataFileName = 'covcormoments_dense.csv'


def getArrayFromNumericTable(data_table):
    num_rows = data_table.getNumberOfRows()
    num_cols = data_table.getNumberOfColumns()
    layout = data_table.getDataLayout()
    data_table_dict = data_table.getDictionary()
    try:
        # see # https://software.intel.com/sites/products/documentation/doclib/daal/daal-user-and-reference-guides/daal_cpp_api/data__utils_8h_source.htm
        # for numeral values of types
        data_type = data_table_dict[0].indexType
    except:
        data_type = 1 # default to Float64

    if data_type == 0:
        block = BlockDescriptor_Float32()
    elif data_type in [2, 4, 6, 8]:
        block = BlockDescriptor_Intc()
    else:
        block = BlockDescriptor() # Use Float64 by default

    data_table.getBlockOfRows(0, num_rows, readOnly, block)
    retValue = block.getArray()
    data_table.releaseBlockOfRows(block)

    return retValue




def printResults(res):

     mi = getArrayFromNumericTable(res.get(low_order_moments.minimum))
     print (value of minimum:)
     print (mi)
#    print(res.get(low_order_moments.minimum))
#    print(res.get(low_order_moments.minimum))
#    print(res.get(low_order_moments.maximum))
#    print(res.get(low_order_moments.sum))
#    print(res.get(low_order_moments.sumSquares))
#    print(res.get(low_order_moments.sumSquaresCentered))
#    print(res.get(low_order_moments.mean))
#    print(res.get(low_order_moments.secondOrderRawMoment))
#    print(res.get(low_order_moments.variance))
#    print(res.get(low_order_moments.standardDeviation))
#    print(res.get(low_order_moments.variation))

if __name__ == "__main__":

    # Initialize FileDataSource to retrieve input data from .csv file
    dataSource = FileDataSource(
        dataFileName,
        DataSourceIface.doAllocateNumericTable,
        DataSourceIface.doDictionaryFromContext
    )

    # Retrieve the data from input file
    dataSource.loadDataBlock()

    # Create algorithm for computing low order moments in batch processing mode
    algorithm = low_order_moments.Batch()

    # Set input arguments of the algorithm
    algorithm.input.set(low_order_moments.data, dataSource.getNumericTable())

    # Get computed low order moments
    res = algorithm.compute()

    printResults(res)

  

原文地址:https://www.cnblogs.com/bonelee/p/9877973.html