Caffe2 - C++ API
A deep learning, cross platform ML framework
cast.h
1 #pragma once
2 
3 #include <caffe2/utils/proto_utils.h>
4 
5 namespace caffe2 {
6 
7 namespace cast {
8 
9 inline TensorProto_DataType GetCastDataType(const ArgumentHelper& helper, std::string arg) {
10  TensorProto_DataType to;
11  if (helper.HasSingleArgumentOfType<string>(arg)) {
12  string s = helper.GetSingleArgument<string>(arg, "float");
13  std::transform(s.begin(), s.end(), s.begin(), ::toupper);
14 #ifndef CAFFE2_USE_LITE_PROTO
15  CAFFE_ENFORCE(TensorProto_DataType_Parse(s, &to), "Unknown 'to' argument: ", s);
16 #else
17 
18 // Manually implement in the lite proto case.
19 #define X(t) \
20  if (s == #t) { \
21  return TensorProto_DataType_##t; \
22  }
23 
24  X(FLOAT);
25  X(INT32);
26  X(BYTE);
27  X(STRING);
28  X(BOOL);
29  X(UINT8);
30  X(INT8);
31  X(UINT16);
32  X(INT16);
33  X(INT64);
34  X(FLOAT16);
35  X(DOUBLE);
36 #undef X
37  CAFFE_THROW("Unhandled type argument: ", s);
38 
39 #endif
40  } else {
41  to = static_cast<TensorProto_DataType>(
42  helper.GetSingleArgument<int>(arg, TensorProto_DataType_FLOAT));
43  }
44  return to;
45 }
46 
47 }; // namespace cast
48 
49 }; // namespace caffe2
A global dictionary that holds information about what Caffe2 modules have been loaded in the current ...
Definition: blob.h:13