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

Method BuildV2VarMaps

tensorflow/c/checkpoint_reader.cc:109–151  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

107}
108
109std::pair<std::unique_ptr<TensorSliceReader::VarToShapeMap>,
110 std::unique_ptr<TensorSliceReader::VarToDataTypeMap>>
111CheckpointReader::BuildV2VarMaps() {
112 CHECK(v2_reader_ != nullptr);
113 CHECK(v2_reader_->status().ok());
114
115 // First pass: filters out the entries of the slices.
116 std::unordered_set<string> filtered_keys;
117 BundleEntryProto entry;
118 v2_reader_->Seek(kHeaderEntryKey);
119 for (v2_reader_->Next(); v2_reader_->Valid(); v2_reader_->Next()) {
120 CHECK(entry.ParseFromArray(v2_reader_->value().data(),
121 v2_reader_->value().size()))
122 << entry.InitializationErrorString();
123 for (int i = 0; i < entry.slices_size(); ++i) {
124 const auto& slice_proto = entry.slices(i);
125 CHECK(filtered_keys
126 .insert(EncodeTensorNameSlice(
127 string(v2_reader_->key()) /* full var's name */,
128 TensorSlice(slice_proto)))
129 .second);
130 }
131 }
132
133 // Second pass: adds the entries, ignoring the filtered keys.
134 std::unique_ptr<TensorSliceReader::VarToShapeMap> var_to_shape_map(
135 new TensorSliceReader::VarToShapeMap);
136 std::unique_ptr<TensorSliceReader::VarToDataTypeMap> var_to_data_type_map(
137 new TensorSliceReader::VarToDataTypeMap);
138 v2_reader_->Seek(kHeaderEntryKey);
139 for (v2_reader_->Next(); v2_reader_->Valid(); v2_reader_->Next()) {
140 if (filtered_keys.count(string(v2_reader_->key())) > 0) continue;
141 CHECK(entry.ParseFromArray(v2_reader_->value().data(),
142 v2_reader_->value().size()))
143 << entry.InitializationErrorString();
144 string key(v2_reader_->key());
145 (*var_to_shape_map)[key] = TensorShape(entry.shape());
146 (*var_to_data_type_map)[key] = DataType(entry.dtype());
147 }
148 // The returned pointers are owned by the caller.
149 return std::make_pair(std::move(var_to_shape_map),
150 std::move(var_to_data_type_map));
151}
152
153} // namespace checkpoint
154} // namespace tensorflow

Callers

nothing calls this directly

Calls 15

EncodeTensorNameSliceFunction · 0.85
TensorSliceClass · 0.85
TensorShapeClass · 0.50
DataTypeTypeAlias · 0.50
okMethod · 0.45
statusMethod · 0.45
SeekMethod · 0.45
NextMethod · 0.45
ValidMethod · 0.45
dataMethod · 0.45
valueMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected