Caffe2 - C++ API
A deep learning, cross platform ML framework
cast.h
1 
17 #pragma once
18 
19 #include <caffe2/utils/proto_utils.h>
20 
21 namespace caffe2 {
22 
23 namespace cast {
24 
25 inline TensorProto_DataType GetCastDataType(const ArgumentHelper& helper, std::string arg) {
26  TensorProto_DataType to;
27  if (helper.HasSingleArgumentOfType<string>(arg)) {
28 #ifndef CAFFE2_USE_LITE_PROTO
29  string s = helper.GetSingleArgument<string>(arg, "float");
30  std::transform(s.begin(), s.end(), s.begin(), ::toupper);
31  CAFFE_ENFORCE(TensorProto_DataType_Parse(s, &to), "Unknown 'to' argument: ", s);
32 #else
33  CAFFE_THROW("String cast op not supported");
34 #endif
35  } else {
36  to = static_cast<TensorProto_DataType>(
37  helper.GetSingleArgument<int>(arg, TensorProto_DataType_FLOAT));
38  }
39  return to;
40 }
41 
42 }; // namespace cast
43 
44 }; // namespace caffe2
Copyright (c) 2016-present, Facebook, Inc.