コード例 #1
0
def _softmax_param_to_attr(node, caffe_layer):
    softmax_param = caffe_layer.softmax_param
    if softmax_param.HasField('engine'):
        attr_value = attr_value_pb2.AttrValue()
        _make_engine_attr(attr_value, softmax_param.engine)
    if softmax_param.HasField('axis'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.i = softmax_param.axis
        node.attr['axis'].CopyFrom(attr_value)
コード例 #2
0
def _clip_param_to_attr(node, caffe_layer):
    clip_param = caffe_layer.clip_param
    if clip_param.HasField('min'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.f = clip_param.min
        node.attr['min'].CopyFrom(attr_value)
    if clip_param.HasField('max'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.f = clip_param.max
        node.attr['max'].CopyFrom(attr_value)
コード例 #3
0
def _bias_param_to_attr(node, caffe_layer):
    bias_param = caffe_layer.bias_param
    if bias_param.HasField('axis'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.i = bias_param.axis
        node.attr['axis'].CopyFrom(attr_value)
    if bias_param.HasField('num_axes'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.i = bias_param.num_axes
        node.attr['num_axes'].CopyFrom(attr_value)
コード例 #4
0
def _tile_param_to_attr(node, caffe_layer):
    tile_param = caffe_layer.tile_param
    if tile_param.HasField('axis'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.i = tile_param.axis
        node.attr['axis'].CopyFrom(attr_value)
    if tile_param.HasField('tiles'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.i = tile_param.tiles
        node.attr['tiles'].CopyFrom(attr_value)
コード例 #5
0
def _flatten_param_to_attr(node, caffe_layer):
    flatten_param = caffe_layer.flatten_param
    if flatten_param.HasField('axis'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.i = flatten_param.axis
        node.attr['axis'].CopyFrom(attr_value)
    if flatten_param.HasField('end_axis'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.i = flatten_param.end_axis
        node.attr['end_axis'].CopyFrom(attr_value)
コード例 #6
0
def _power_param_to_attr(node, caffe_layer):
    power_param = caffe_layer.power_param
    if power_param.HasField('power'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.f = power_param.power
        node.attr['power'].CopyFrom(attr_value)
    if power_param.HasField('scale'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.f = power_param.scale
        node.attr['scale'].CopyFrom(attr_value)
コード例 #7
0
def _concat_param_to_attr(node, caffe_layer):
    concat_param = caffe_layer.concat_param
    if concat_param.HasField('axis'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.i = concat_param.axis
        node.attr['axis'].CopyFrom(attr_value)
    if concat_param.HasField('concat_dim'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.i = concat_param.concat_dim
        node.attr['concat_dim'].CopyFrom(attr_value)
コード例 #8
0
def _relu_param_to_attr(node, caffe_layer):
    relu_param = caffe_layer.relu_param
    if relu_param.HasField('negative_slope'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.f = relu_param.negative_slope
        node.attr['negative_slope'].CopyFrom(attr_value)
    if relu_param.HasField('engine'):
        attr_value = attr_value_pb2.AttrValue()
        _make_engine_attr(attr_value, relu_param.engine)
        node.attr['engine'].CopyFrom(attr_value)
コード例 #9
0
def _crop_param_to_attr(node, caffe_layer):
    crop_param = caffe_layer.crop_param
    if crop_param.HasField('axis'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.i = crop_param.axis
        node.attr['axis'].CopyFrom(attr_value)
    if len(crop_param.offset):
        offset_value = attr_value_pb2.AttrValue.ListValue()
        offset_value.i.extend(crop_param.offset)
        attr_value = attr_value_pb2.AttrValue()
        attr_value.list.CopyFrom(offset_value)
        node.attr['offset'].CopyFrom(attr_value)
コード例 #10
0
def _accuracy_param_to_attr(node, caffe_layer):
    accuracy_param = caffe_layer.accuracy_param
    if accuracy_param.HasField('top_k'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.i = accuracy_param.top_k
        node.attr['top_k'].CopyFrom(attr_value)
    if accuracy_param.HasField('axis'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.i = accuracy_param.axis
        node.attr['axis'].CopyFrom(attr_value)
    if accuracy_param.HasField('ignore_label'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.i = accuracy_param.ignore_label
        node.attr['ignore_label'].CopyFrom(attr_value)
コード例 #11
0
def _spp_param_to_attr(node, caffe_layer):
    spp_param = caffe_layer.spp_param
    if spp_param.HasField('pyramid_height'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.i = spp_param.pyramid_height
        node.attr['pyramid_height'].CopyFrom(attr_value)
    if spp_param.HasField('pool'):
        attr_value = attr_value_pb2.AttrValue()
        _make_pooling_attr(attr_value, spp_param.pool)
        node.attr['pool'].CopyFrom(attr_value)
    if spp_param.HasField('engine'):
        attr_value = attr_value_pb2.AttrValue()
        _make_engine_attr(attr_value, spp_param.engine)
        node.attr['engine'].CopyFrom(attr_value)
コード例 #12
0
def _log_param_to_attr(node, caffe_layer):
    log_param = caffe_layer.log_param
    if log_param.HasField('base'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.f = log_param.base
        node.attr['base'].CopyFrom(attr_value)
    if log_param.HasField('scale'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.f = log_param.scale
        node.attr['scale'].CopyFrom(attr_value)
    if log_param.HasField('shift'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.f = log_param.shift
        node.attr['shift'].CopyFrom(attr_value)
コード例 #13
0
def _slice_param_to_attr(node, caffe_layer):
    slice_param = caffe_layer.slice_param
    if slice_param.HasField('axis'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.i = slice_param.axis
        node.attr['axis'].CopyFrom(attr_value)
    if slice_param.HasField('slice_point'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.i = slice_param.slice_point
        node.attr['slice_point'].CopyFrom(attr_value)
    if slice_param.HasField('slice_dim'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.i = slice_param.slice_dim
        node.attr['slice_dim'].CopyFrom(attr_value)
コード例 #14
0
def _argmax_param_to_attr(node, caffe_layer):
    argmax_param = caffe_layer.argmax_param
    if argmax_param.HasField('out_max_val'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.b = argmax_param.out_max_val
        node.attr['out_max_val'].CopyFrom(attr_value)
    if argmax_param.HasField('top_k'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.i = argmax_param.top_k
        node.attr['top_k'].CopyFrom(attr_value)
    if argmax_param.HasField('axis'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.i = argmax_param.axis
        node.attr['axis'].CopyFrom(attr_value)
コード例 #15
0
def _batch_norm_param_to_attr(node, caffe_layer):
    bn_param = caffe_layer.batch_norm_param
    if bn_param.HasField('use_global_stats'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.b = bn_param.use_global_stats
        node.attr['use_global_stats'].CopyFrom(attr_value)
    if bn_param.HasField('moving_average_fraction'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.f = bn_param.moving_average_fraction
        node.attr['moving_average_fraction'].CopyFrom(attr_value)
    if bn_param.HasField('eps'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.f = bn_param.eps
        node.attr['eps'].CopyFrom(attr_value)
コード例 #16
0
def _reshape_param_to_attr(node, caffe_layer):
    reshape_param = caffe_layer.reshape_param
    if reshape_param.HasField('shape'):
        attr_value = attr_value_pb2.AttrValue()
        _make_shape_attr(attr_value, reshape_param.shape)
        node.attr['shape'].CopyFrom(attr_value)
    if reshape_param.HasField('axis'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.i = reshape_param.axis
        node.attr['axis'].CopyFrom(attr_value)
    if reshape_param.HasField('num_axes'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.i = reshape_param.num_axes
        node.attr['num_axes'].CopyFrom(attr_value)
コード例 #17
0
def _eltwise_param_to_attr(node, caffe_layer):
    eltwise_param = caffe_layer.eltwise_param
    if eltwise_param.HasField('operation'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.i = eltwise_param.operation
        node.attr['operation'].CopyFrom(attr_value)
    if len(eltwise_param.coeff):
        coeff_value = attr_value_pb2.AttrValue.ListValue()
        coeff_value.f.extend(eltwise_param.coeff)
        attr_value = attr_value_pb2.AttrValue()
        attr_value.list.CopyFrom(coeff_value)
        node.attr['coeff'].CopyFrom(attr_value)
    if eltwise_param.HasField('stable_prod_grad'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.b = eltwise_param.stable_prod_grad
        node.attr['stable_prod_grad'].CopyFrom(attr_value)
コード例 #18
0
    def _add_node_shapetype(self, node, shape_name):
        """ build an internal node shape map if given the weights information """
        if shape_name in self.shapes:
            tensor_shape = tensor_shape_pb2.TensorShapeProto()
            for shape_i in self.shapes[shape_name]:
                shape_dim = tensor_shape_pb2.TensorShapeProto.Dim()
                shape_dim.size = shape_i
                tensor_shape.dim.extend([shape_dim])
            attr_value = attr_value_pb2.AttrValue()
            attr_value.shape.CopyFrom(tensor_shape)
            node.attr['shape'].CopyFrom(attr_value)

        # add optional dtype
        if shape_name in self.types:
            attr_value = attr_value_pb2.AttrValue()
            attr_value.type = self.types[shape_name]
            node.attr['dtype'].CopyFrom(attr_value)
コード例 #19
0
def _transform_param_to_attr(node, caffe_layer):
    transform_param = caffe_layer.transform_param
    if transform_param.HasField('scale'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.f = transform_param.scale
        node.attr['scale'].CopyFrom(attr_value)
    if transform_param.HasField('mirror'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.b = transform_param.mirror
        node.attr['mirror'].CopyFrom(attr_value)
    if transform_param.HasField('crop_size'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.i = transform_param.crop_size
        node.attr['crop_size'].CopyFrom(attr_value)
    if transform_param.HasField('mean_file'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.s = bytes(transform_param.mean_file, "utf-8")
        node.attr['mean_file'].CopyFrom(attr_value)
    if len(transform_param.mean_value):
        mean_value_list = attr_value_pb2.AttrValue.ListValue()
        mean_value_list.f.extend(transform_param.mean_value)
        attr_value = attr_value_pb2.AttrValue()
        attr_value.list.CopyFrom(mean_value_list)
        node.attr['mean_value'].CopyFrom(attr_value)
    if transform_param.HasField('force_color'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.b = transform_param.force_color
        node.attr['force_color'].CopyFrom(attr_value)
    if transform_param.HasField('force_gray'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.b = transform_param.force_gray
        node.attr['force_gray'].CopyFrom(attr_value)
コード例 #20
0
def _data_param_to_attr(node, caffe_layer):
    data_param = caffe_layer.data_param
    if data_param.HasField('source'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.s = bytes(data_param.source, "utf-8")
        node.attr['source'].CopyFrom(attr_value)
    if data_param.HasField('batch_size'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.i = data_param.batch_size
        node.attr['batch_size'].CopyFrom(attr_value)
    if data_param.HasField('rand_skip'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.i = data_param.rand_skip
        node.attr['rand_skip'].CopyFrom(attr_value)
    if data_param.HasField('backend'):
        attr_value = attr_value_pb2.AttrValue()
        _make_backend_attr(attr_value, data_param.backend)
        node.attr['backend'].CopyFrom(attr_value)
    if data_param.HasField('scale'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.f = data_param.scale
        node.attr['scale'].CopyFrom(attr_value)
    if data_param.HasField('mean_file'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.s = data_param.mean_file
        node.attr['mean_file'].CopyFrom(attr_value)
    if data_param.HasField('crop_size'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.i = data_param.crop_size
        node.attr['crop_size'].CopyFrom(attr_value)
    if data_param.HasField('mirror'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.b = data_param.mirror
        node.attr['mirror'].CopyFrom(attr_value)
    if data_param.HasField('force_encoded_color'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.b = data_param.force_encoded_color
        node.attr['force_encoded_color'].CopyFrom(attr_value)
    if data_param.HasField('prefetch'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.i = data_param.prefetch
        node.attr['prefetch'].CopyFrom(attr_value)
コード例 #21
0
def _inner_product_param_to_attr(node, caffe_layer):
    inner_product_param = caffe_layer.inner_product_param
    if inner_product_param.HasField('num_output'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.i = inner_product_param.num_output
        node.attr['num_output'].CopyFrom(attr_value)
    if inner_product_param.HasField('bias_term'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.b = inner_product_param.bias_term
        node.attr['bias_term'].CopyFrom(attr_value)
    if inner_product_param.HasField('weight_filler'):
        attr_value = attr_value_pb2.AttrValue()
        weight_filler = inner_product_param.weight_filler
        _make_filler_attr(attr_value, weight_filler)
        node.attr['weight_filler'].CopyFrom(attr_value)
    if inner_product_param.HasField('bias_filler'):
        attr_value = attr_value_pb2.AttrValue()
        bias_filler = inner_product_param.bias_filler
        _make_filler_attr(attr_value, bias_filler)
        node.attr['bias_filler'].CopyFrom(attr_value)
    if inner_product_param.HasField('axis'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.i = inner_product_param.axis
        node.attr['axis'].CopyFrom(attr_value)
    if inner_product_param.HasField('transpose'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.b = inner_product_param.transpose
        node.attr['transpose'].CopyFrom(attr_value)
コード例 #22
0
def _lrn_param_to_attr(node, caffe_layer):
    lrn_param = caffe_layer.lrn_param
    if lrn_param.HasField('local_size'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.i = lrn_param.local_size
        node.attr['local_size'].CopyFrom(attr_value)
    if lrn_param.HasField('alpha'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.f = lrn_param.alpha
        node.attr['alpha'].CopyFrom(attr_value)
    if lrn_param.HasField('beta'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.f = lrn_param.beta
        node.attr['beta'].CopyFrom(attr_value)
    if lrn_param.HasField('norm_region'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.i = lrn_param.norm_region
        node.attr['norm_region'].CopyFrom(attr_value)
    if lrn_param.HasField('k'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.f = lrn_param.k
        node.attr['k'].CopyFrom(attr_value)
    if lrn_param.HasField('engine'):
        attr_value = attr_value_pb2.AttrValue()
        _make_engine_attr(attr_value, lrn_param.engine)
        node.attr['engine'].CopyFrom(attr_value)
コード例 #23
0
def _scale_param_to_attr(node, caffe_layer):
    scale_param = caffe_layer.scale_param
    if scale_param.HasField('axis'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.i = scale_param.axis
        node.attr['axis'].CopyFrom(attr_value)
    if scale_param.HasField('num_axes'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.i = scale_param.num_axes
        node.attr['num_axes'].CopyFrom(attr_value)
    if scale_param.HasField('filler'):
        attr_value = attr_value_pb2.AttrValue()
        _make_filler_attr(attr_value, scale_param.filler)
        node.attr['filler'].CopyFrom(attr_value)
    if scale_param.HasField('bias_term'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.b = scale_param.bias_term
        node.attr['bias_term'].CopyFrom(attr_value)
    if scale_param.HasField('bias_filler'):
        attr_value = attr_value_pb2.AttrValue()
        _make_filler_attr(attr_value, scale_param.bias_filler)
        node.attr['bias_filler'].CopyFrom(attr_value)
コード例 #24
0
def _make_filler_attr(attr, filler):
    """ Convert an caffe filler message into TensorBoard Attribute Message.
    It's built into a map from name to AttrValue

    Args:
        attr: a AttrValue message for TensorBoard proto
        filler: a FillerParameter message on caffe proto
    """
    name_attr_list = attr_value_pb2.NameAttrList()
    name_attr_list.name = "filler"

    if filler.HasField('type'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.s = bytes(filler.type, "utf-8")
        name_attr_list.attr['type'].CopyFrom(attr_value)
    if filler.HasField('value'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.f = filler.value
        name_attr_list.attr['value'].CopyFrom(attr_value)
    if filler.HasField('min'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.f = filler.min
        name_attr_list.attr['min'].CopyFrom(attr_value)
    if filler.HasField('max'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.f = filler.max
        name_attr_list.attr['max'].CopyFrom(attr_value)
    if filler.HasField('mean'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.f = filler.mean
        name_attr_list.attr['mean'].CopyFrom(attr_value)
    if filler.HasField('std'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.f = filler.std
        name_attr_list.attr['std'].CopyFrom(attr_value)
    if filler.HasField('sparse'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.i = filler.sparse
        name_attr_list.attr['sparse'].CopyFrom(attr_value)
    if filler.HasField('variance_norm'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.i = filler.variance_norm
        name_attr_list.attr['variance_norm'].CopyFrom(attr_value)
    attr.func.CopyFrom(name_attr_list)
コード例 #25
0
    def convert_to_nodes(self, onnx_node):
        new_node = node_def_pb2.NodeDef()
        new_node.op = onnx_node.op_type

        for onnx_input in onnx_node.input:
            if onnx_input not in self._nodes_version:
                in_node = node_def_pb2.NodeDef()
                # These input tensors are filled by weights. So the op_type for
                # them is set to `Initialization`
                in_node.op = "Initialization"
                self._nodes_version[onnx_input] = 0
                in_node.name = '{}_{}'.format(onnx_input,
                                              self._nodes_version[onnx_input])
                self.tb_nodes[in_node.name] = in_node
                self._tb_graph.node.extend([in_node])
            new_node.input.append('{}_{}'.format(
                onnx_input, self._nodes_version[onnx_input]))

        if len(onnx_node.output) == 0:
            # For those nodes who don't have output, the node name is the
            # operation type for current tensorboard ir node
            new_node.name = self._MakeSSAName(onnx_node.op_type)
        else:
            # For those nodes who have more than one outputs, the first output
            # is as the node name. The other outputs are built as the sibling
            # operation node for tensorboard ir
            new_node.name = self._MakeSSAName(onnx_node.output[0])
            # build sibling operation node for other outputs
            for onnx_output in onnx_node.output[1:]:
                out_node = node_def_pb2.NodeDef()
                out_node.name = self._MakeSSAName(onnx_output)
                out_node.op = "Sibling"
                out_node.input.extend([new_node.name])
                self.tb_nodes[out_node.name] = out_node
                self._tb_graph.node.extend([out_node])

        # handle onnx node attribute
        for onnx_attr in onnx_node.attribute:
            attr_value = attr_value_pb2.AttrValue()
            _make_onnxattr_to_tbattr(onnx_attr, attr_value)
            new_node.attr[onnx_attr.name].CopyFrom(attr_value)

        self.tb_nodes[new_node.name] = new_node
        self._tb_graph.node.extend([new_node])
コード例 #26
0
def _window_data_param_to_attr(node, caffe_layer):
    window_data_param = caffe_layer.window_data_param
    if window_data_param.HasField('source'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.s = bytes(window_data_param.source, "utf-8")
        node.attr['source'].CopyFrom(attr_value)
    if window_data_param.HasField('scale'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.f = window_data_param.scale
        node.attr['scale'].CopyFrom(attr_value)
    if window_data_param.HasField('mean_file'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.s = bytes(window_data_param.mean_file, "utf-8")
    if window_data_param.HasField('batch_size'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.i = window_data_param.batch_size
        node.attr['batch_size'].CopyFrom(attr_value)
    if window_data_param.HasField('crop_size'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.i = window_data_param.crop_size
        node.attr['crop_size'].CopyFrom(attr_value)
    if window_data_param.HasField('mirror'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.b = window_data_param.mirror
        node.attr['mirror'].CopyFrom(attr_value)
    if window_data_param.HasField('fg_threshold'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.f = window_data_param.fg_threshold
        node.attr['fg_threshold'].CopyFrom(attr_value)
    if window_data_param.HasField('bg_threshold'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.f = window_data_param.bg_threshold
        node.attr['bg_threshold'].CopyFrom(attr_value)
    if window_data_param.HasField('fg_fraction'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.f = window_data_param.fg_fraction
        node.attr['fg_fraction'].CopyFrom(attr_value)
    if window_data_param.HasField('context_pad'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.i = window_data_param.context_pad
        node.attr['context_pad'].CopyFrom(attr_value)
    if window_data_param.HasField('crop_mode'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.s = bytes(window_data_param.crop_mode, "utf-8")
        node.attr['crop_mode'].CopyFrom(attr_value)
    if window_data_param.HasField('cache_images'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.b = window_data_param.cache_images
        node.attr['cache_images'].CopyFrom(attr_value)
    if window_data_param.HasField('root_folder'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.s = bytes(window_data_param.root_folder, "utf-8")
        node.attr['root_folder'].CopyFrom(attr_value)
コード例 #27
0
def _threshold_param_to_attr(node, caffe_layer):
    threshold_param = caffe_layer.threshold_param
    if threshold_param.HasField('threshold'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.f = threshold_param.threshold
        node.attr['threshold'].CopyFrom(attr_value)
コード例 #28
0
def _tanh_param_to_attr(node, caffe_layer):
    tanh_param = caffe_layer.tanh_param
    if tanh_param.HasField('engine'):
        attr_value = attr_value_pb2.AttrValue()
        _make_engine_attr(attr_value, tanh_param.engine)
コード例 #29
0
def _swish_param_to_attr(node, caffe_layer):
    swish_param = caffe_layer.swish_param
    if swish_param.HasField('beta'):
        attr_value = attr_value_pb2.AttrValue()
        attr_value.f = swish_param.beta
        node.attr['beta'].CopyFrom(attr_value)
コード例 #30
0
def _sigmoid_param_to_attr(node, caffe_layer):
    sigmoid_param = caffe_layer.sigmoid_param
    if sigmoid_param.HasField('engine'):
        attr_value = attr_value_pb2.AttrValue()
        _make_engine_attr(attr_value, sigmoid_param.engine)