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

Function FusedBatchNormGradShape

tensorflow/core/framework/common_shape_fns.cc:1198–1237  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1196}
1197
1198Status FusedBatchNormGradShape(shape_inference::InferenceContext* c) {
1199 string data_format_str;
1200 TF_RETURN_IF_ERROR(c->GetAttr("data_format", &data_format_str));
1201 TensorFormat data_format;
1202 if (!FormatFromString(data_format_str, &data_format)) {
1203 return errors::InvalidArgument("Invalid data format string: ",
1204 data_format_str);
1205 }
1206 const int rank =
1207 (data_format_str == "NDHWC" or data_format_str == "NCDHW") ? 5 : 4;
1208 ShapeHandle y_backprop;
1209 TF_RETURN_IF_ERROR(c->WithRank(c->input(0), rank, &y_backprop));
1210 ShapeHandle x;
1211 TF_RETURN_IF_ERROR(c->WithRank(c->input(1), rank, &x));
1212
1213 bool is_training;
1214 TF_RETURN_IF_ERROR(c->GetAttr("is_training", &is_training));
1215
1216 int channel_dim_index = GetTensorFeatureDimIndex(rank, data_format);
1217 DimensionHandle channel_dim = c->Dim(y_backprop, channel_dim_index);
1218 TF_RETURN_IF_ERROR(
1219 c->Merge(channel_dim, c->Dim(x, channel_dim_index), &channel_dim));
1220
1221 // covers scale, mean (reserve_space_1), variance (reserve_space_2)
1222 for (int i = 2; i < 5; ++i) {
1223 ShapeHandle vec;
1224 TF_RETURN_IF_ERROR(c->WithRank(c->input(i), 1, &vec));
1225 TF_RETURN_IF_ERROR(c->Merge(channel_dim, c->Dim(vec, 0), &channel_dim));
1226 }
1227
1228 ShapeHandle x_backprop;
1229 TF_RETURN_IF_ERROR(
1230 c->ReplaceDim(y_backprop, channel_dim_index, channel_dim, &x_backprop));
1231 c->set_output(0, x_backprop);
1232 c->set_output(1, c->Vector(channel_dim));
1233 c->set_output(2, c->Vector(channel_dim));
1234 c->set_output(3, c->Vector(0));
1235 c->set_output(4, c->Vector(0));
1236 return Status::OK();
1237}
1238
1239Status MaxPoolShape(shape_inference::InferenceContext* c) {
1240 string data_format_str;

Callers

nothing calls this directly

Calls 11

FormatFromStringFunction · 0.85
InvalidArgumentFunction · 0.85
GetTensorFeatureDimIndexFunction · 0.85
ReplaceDimMethod · 0.80
VectorMethod · 0.80
GetAttrMethod · 0.45
WithRankMethod · 0.45
inputMethod · 0.45
DimMethod · 0.45
MergeMethod · 0.45
set_outputMethod · 0.45

Tested by

no test coverage detected