| 79 | |
| 80 | |
| 81 | def _AdjustDims(op_def, arg_map, pads, dim1, dim2): |
| 82 | n1, c1, h1, w1 = dim1 |
| 83 | n2, c2, h2, w2 = dim2 |
| 84 | assert(n1 == n2) |
| 85 | assert(c1 == c2) |
| 86 | is_pad = 'pad' in arg_map |
| 87 | if h1 != h2 or w1 != w2: |
| 88 | if h1 == h2 + 1: |
| 89 | pads['pad_b'] += 1 |
| 90 | elif h1 != h2: |
| 91 | raise Exception("Unexpected dimensions for height:", h1, h2) |
| 92 | if w1 == w2 + 1: |
| 93 | pads['pad_r'] += 1 |
| 94 | elif w1 != w2: |
| 95 | raise Exception("Unexpected dimensions for width:", w1, w2) |
| 96 | if is_pad: |
| 97 | op_def.arg.remove(arg_map['pad']) |
| 98 | args = [] |
| 99 | for name in pads.keys(): |
| 100 | arg = caffe2_pb2.Argument() |
| 101 | arg.name = name |
| 102 | arg.i = pads[name] |
| 103 | args.append(arg) |
| 104 | op_def.arg.extend(args) |
| 105 | else: |
| 106 | for name in pads.keys(): |
| 107 | arg_map[name].i = pads[name] |
| 108 | |
| 109 | |
| 110 | def _RemoveLegacyPad(net, net_params, input_dims): |