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

Function ComputeSizeRatio

tensorflow/core/grappler/utils/symbolic_shapes.cc:219–256  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

217}
218
219int64 ComputeSizeRatio(const TensorShapeProto& numerator,
220 const TensorShapeProto& denominator) {
221 if (numerator.unknown_rank() || denominator.unknown_rank()) {
222 return -1;
223 }
224 std::multiset<int> symbolic_dims;
225 int64 num = 1;
226 for (const auto& dim : numerator.dim()) {
227 if (dim.size() == -1) {
228 return -1;
229 } else if (dim.size() < -1) {
230 symbolic_dims.insert(dim.size());
231 } else {
232 num *= dim.size();
233 }
234 }
235 int64 denom = 1;
236 for (const auto& dim : denominator.dim()) {
237 if (dim.size() == -1) {
238 return -1;
239 } else if (dim.size() < -1) {
240 auto it = symbolic_dims.find(dim.size());
241 if (it == symbolic_dims.end()) {
242 return -1;
243 }
244 symbolic_dims.erase(it);
245 } else {
246 denom *= dim.size();
247 }
248 }
249 if (denom == 0) {
250 return -1;
251 }
252 if (!symbolic_dims.empty()) {
253 return -1;
254 }
255 return num / denom;
256}
257
258} // end namespace grappler
259} // end namespace tensorflow

Callers 2

TEST_FFunction · 0.85
OptimizeMethod · 0.85

Calls 8

unknown_rankMethod · 0.80
dimMethod · 0.45
sizeMethod · 0.45
insertMethod · 0.45
findMethod · 0.45
endMethod · 0.45
eraseMethod · 0.45
emptyMethod · 0.45

Tested by 1

TEST_FFunction · 0.68