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

Function CreateDefaultValueNode

serving/processor/framework/graph_optimizer.cc:833–875  ·  view source on GitHub ↗

create 1-D const op, filled by zeros

Source from the content-addressed store, hash-verified

831
832// create 1-D const op, filled by zeros
833Status CreateDefaultValueNode(Graph* graph, int dim_size,
834 Node** new_node, DataType type,
835 const std::string& name) {
836 NodeDef const_def;
837 const_def.set_name(name);
838 const_def.set_op("Const");
839 auto* attr = const_def.mutable_attr();
840 (*attr)["dtype"].set_type(type);
841 Tensor const_tensor(type, TensorShape({dim_size}));
842 for (int i = 0; i < dim_size; ++i) {
843 switch (type) {
844 case DT_INT32: {
845 const_tensor.vec<int>()(i) = 0;
846 break;
847 }
848 case DT_INT64: {
849 const_tensor.vec<int64>()(i) = 0;
850 break;
851 }
852 case DT_FLOAT: {
853 const_tensor.vec<float>()(i) = 0.0;
854 break;
855 }
856 case DT_DOUBLE: {
857 const_tensor.vec<double>()(i) = 0.0;
858 break;
859 }
860 case DT_STRING: {
861 const_tensor.vec<std::string>()(i) = "";
862 break;
863 }
864 default: {
865 LOG(FATAL) << "CreateDefaultValueNode not support type : "
866 << type;
867 }
868 }
869 }
870 const_tensor.AsProtoTensorContent((*attr)["value"].mutable_tensor());
871
872 Status s_add_node;
873 *new_node = graph->AddNode(const_def, &s_add_node);
874 return s_add_node;
875}
876
877Status GetNodeAttr(const Node* node,
878 const std::string& attr_name,

Callers 2

ConvertToHashLookupOpMethod · 0.85

Calls 5

set_opMethod · 0.80
AsProtoTensorContentMethod · 0.80
TensorShapeClass · 0.50
set_nameMethod · 0.45
AddNodeMethod · 0.45

Tested by

no test coverage detected