MCPcopy Create free account
hub / github.com/MegEngine/MegCC / parse_tensor

Function parse_tensor

runtime/src/parse.c:109–154  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

107}
108
109TinyNNStatus parse_tensor(
110 Tensor* tensor, ns(Tensor_table_t) fbs_tensor, int tensor_id) {
111 //! dtype
112 ns(DType_table_t) fbs_dtype = ns(Tensor_dtype(fbs_tensor));
113 tensor->dtype.type_enum = dtype_from_fbs(ns(DType_type(fbs_dtype)));
114 tensor->dtype.param = dtype_param_from_fbs(fbs_dtype);
115
116 //! name
117 const char* name = ns(Tensor_name(fbs_tensor));
118 if (strlen(name) > 0) {
119 tensor->name = get_string(name);
120 } else {
121 char name[20] = "tensor:";
122 sprintf(name, "tensor:%d", tensor_id);
123 tensor->name = get_string(name);
124 }
125 //! use_count
126 tensor->use_count = ns(Tensor_use_count(fbs_tensor));
127 tensor->is_dynamic = ns(Tensor_dynamic(fbs_tensor));
128 //! offset
129 tensor->offset = ns(Tensor_offset(fbs_tensor));
130 LOG_DEBUG(
131 "Tensor info: name=%s, use_count=%d, offset=%zu, is_dynamic=%d\n",
132 tensor->name, tensor->use_count, tensor->offset, tensor->is_dynamic);
133 //! layout
134 ns(Layout_table_t) fbs_layout = ns(Tensor_layout(fbs_tensor));
135 flatbuffers_int32_vec_t fbs_dims = ns(Layout_dims(fbs_layout));
136 flatbuffers_int32_vec_t fbs_stride = ns(Layout_stride(fbs_layout));
137 tensor->layout.nr_dim = flatbuffers_int32_vec_len(fbs_dims);
138 LOG_DEBUG("Tensor layout: [");
139 for (int i = 0; i < tensor->layout.nr_dim; i++) {
140 tensor->layout.dims[i] = flatbuffers_int32_vec_at(fbs_dims, i);
141 LOG_DEBUG_NO_PREFIX("%d,", tensor->layout.dims[i]);
142 tensor->layout.stride[i] = flatbuffers_int32_vec_at(fbs_stride, i);
143 }
144 //! format
145 tensor->layout.format = format_from_fbs(ns(Layout_format(fbs_layout)));
146 LOG_DEBUG_NO_PREFIX(
147 "], format=%s, Dtype=%s\n", format2string(tensor->layout.format),
148 dtype2string(tensor->dtype.type_enum));
149
150 tensor->is_weight = 0;
151
152 tensor->size = tensor_length_in_byte(tensor);
153 return TinyNN_SUCCESS;
154}
155
156TinyNNStatus parse_weight(
157 Tensor* weight, ns(Weight_table_t) fbs_weight, Device* host_dev) {

Callers 1

parse_device_modelFunction · 0.85

Calls 7

dtype_from_fbsFunction · 0.85
dtype_param_from_fbsFunction · 0.85
get_stringFunction · 0.85
format_from_fbsFunction · 0.85
format2stringFunction · 0.85
dtype2stringFunction · 0.85
tensor_length_in_byteFunction · 0.85

Tested by

no test coverage detected