Ejemplo n.º 1
0
def np_dtype_to_lgf_dtype(np_dtype):
    """Converts a numpy dtype to a dtypes_pb.DType()."""
    t, p = NP_TYPES.get(np_dtype, (dtypes_pb2.DT_INVALID, 0))
    ret = dtypes_pb2.DType()
    ret.t = t
    ret.p = p
    return ret
Ejemplo n.º 2
0
 def tf_dtype_to_lgf_dtype(tf_dtype):
     lgf_dtype = dtypes_pb2.DType()
     if tf_dtype.base_dtype in ImportTFSavedModelBase.DATA_TYPE_MAP:
         t, p = ImportTFSavedModelBase.DATA_TYPE_MAP[tf_dtype.base_dtype]
         lgf_dtype.t = t
         lgf_dtype.p = p
     return lgf_dtype
 def onnx_dtype_to_lgf_dtype(self, mapping_number):
     t, p = ImportONNXModel.DATA_TYPE_MAP.get(mapping_number,
                                              (dtypes_pb2.DT_INVALID, 0))
     ret = dtypes_pb2.DType()
     ret.t = t
     ret.p = p
     return ret
Ejemplo n.º 4
0
    def dtypes(self):
        """Returns default dtypes of edges (can be overloaded).

        Assume float32 for all edges by default.
        """
        dtype = dtypes_pb2.DType()
        dtype.t = self._dtype
        dtype.p = 32
        return {name: dtype for name in self.names}
    def _modify_opu_node(self, opu_node):
        # New opu node
        new_opu_node = lgf_pb2.LNF()
        new_opu_node.CopyFrom(opu_node)

        # Get dtypes for histograms
        before_adc_dtype = dtypes_pb2.DType()
        before_adc_dtype.t = dtypes_pb2.DT_FLOAT
        before_adc_dtype.p = 32
        after_adc_dtype = opu_node.outputs[0].dtype

        # Get num bins for histograms
        before_adc_num_bins = self._get_num_bins(before_adc_dtype)
        after_adc_num_bins = self._get_num_bins(after_adc_dtype)

        # Get hist keys from node
        matmul = opu_op_transform.OPUOpTransform.get_matmul_from_opu_node(
            new_opu_node)
        hist_keys_before_adc = matmul.hist_keys_before_adc
        hist_keys_after_adc = matmul.hist_keys_after_adc

        # Initialize some things
        hist_keys_before_adc.quant_type = common_pb2.QT_PER_TILE
        hist_keys_after_adc.quant_type = common_pb2.QT_PER_TILE

        # Histogram for each tile
        weight_shape = opu_node.inputs[lgf_pb2.MatMulNode.PHASES_INDEX].shape
        for x in range(weight_shape.d[0]):
            for y in range(weight_shape.d[1]):
                # Add keys to node
                hist_keys_before_adc.keys.append(
                    self._get_new_hist_key(node=opu_node,
                                           x=x,
                                           y=y,
                                           suffix="before_adc"))
                hist_keys_after_adc.keys.append(
                    self._get_new_hist_key(node=opu_node,
                                           x=x,
                                           y=y,
                                           suffix="after_adc"))

                # Initialize histograms
                self._hist_coll.initialize_empty_histogram(
                    hist_keys_before_adc.keys[-1], before_adc_num_bins)
                self._hist_coll.initialize_empty_histogram(
                    hist_keys_after_adc.keys[-1], after_adc_num_bins)

        return base_transform.BaseTransform.create_transform_result(
            to_replace=[new_opu_node])
Ejemplo n.º 6
0
def create_dtype(t, p):
    res = dtypes_pb2.DType()
    res.t = t
    res.p = p
    return res