MCPcopy Create free account
hub / github.com/DeepRec-AI/DeepRec / Proto2Tensor

Function Proto2Tensor

serving/processor/tests/flatbuf_test/cpp/benchmark.cc:302–351  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

300}
301
302tensorflow::Tensor Proto2Tensor(const tensorflow::eas::ArrayProto& input) {
303 tensorflow::TensorShape tensor_shape;
304 tensorflow::int64 total_size = 1;
305 for (int i = 0; i < input.array_shape().dim_size(); ++i) {
306 tensor_shape.AddDim(input.array_shape().dim(i));
307 total_size *= input.array_shape().dim(i);
308 }
309
310 switch (input.dtype()) {
311 case tensorflow::eas::DT_FLOAT: {
312 if (total_size != input.float_val_size()) {
313 LOG(FATAL) << "Invalid input.";
314 }
315 tensorflow::Tensor tensor(tensorflow::DT_FLOAT, tensor_shape);
316 auto flat = tensor.flat<float>();
317 memcpy(flat.data(), input.float_val().data(),
318 input.float_val_size() * sizeof(float));
319
320 return tensor;
321 }
322 case tensorflow::eas::DT_INT64: {
323 if (total_size != input.int64_val_size()) {
324 LOG(FATAL) << "Invalid input.";
325 }
326 tensorflow::Tensor tensor(tensorflow::DT_INT64, tensor_shape);
327 auto flat = tensor.flat<tensorflow::int64>();
328 memcpy(flat.data(), input.int64_val().data(),
329 input.int64_val_size() * sizeof(int64_t));
330
331 return tensor;
332 }
333 case tensorflow::eas::DT_STRING: {
334 if (total_size != input.string_val_size()) {
335 LOG(FATAL) << "Invalid input.";
336 }
337 tensorflow::Tensor tensor(tensorflow::DT_STRING, tensor_shape);
338 auto flat = tensor.flat<std::string>();
339 for (int i = 0; i < input.string_val_size(); i++) {
340 flat(i) = input.string_val(i);
341 }
342 return tensor;
343 }
344 default: {
345 LOG(FATAL) << "Input Tensor Not Support this DataType";
346 break;
347 }
348 }
349
350 return tensorflow::Tensor();
351}
352
353
354int main() {

Callers 1

mainFunction · 0.70

Calls 6

TensorClass · 0.50
dim_sizeMethod · 0.45
AddDimMethod · 0.45
dimMethod · 0.45
dtypeMethod · 0.45
dataMethod · 0.45

Tested by

no test coverage detected