/usr/local/lib64/python3.6/site-packages/torch/include/caffe2/utils
Edit: /usr/local/lib64/python3.6/site-packages/torch/include/caffe2/utils/cast.h (1110B)
#pragma once
#include
namespace caffe2 {
namespace cast {
inline TensorProto_DataType GetCastDataType(const ArgumentHelper& helper, std::string arg) {
TensorProto_DataType to;
if (helper.HasSingleArgumentOfType(arg)) {
string s = helper.GetSingleArgument(arg, "float");
std::transform(s.begin(), s.end(), s.begin(), ::toupper);
#ifndef CAFFE2_USE_LITE_PROTO
CAFFE_ENFORCE(TensorProto_DataType_Parse(s, &to), "Unknown 'to' argument: ", s);
#else
// Manually implement in the lite proto case.
#define X(t) \
if (s == #t) { \
return TensorProto_DataType_##t; \
}
X(FLOAT);
X(INT32);
X(BYTE);
X(STRING);
X(BOOL);
X(UINT8);
X(INT8);
X(UINT16);
X(INT16);
X(INT64);
X(FLOAT16);
X(DOUBLE);
#undef X
CAFFE_THROW("Unhandled type argument: ", s);
#endif
} else {
to = static_cast(
helper.GetSingleArgument(arg, TensorProto_DataType_FLOAT));
}
return to;
}
}; // namespace cast
}; // namespace caffe2