Skip to content

Commit 0311e76

Browse files
manuelcandalesfacebook-github-bot
authored andcommitted
Calibrate reflection/replication pad 1D/2D/3D (#31)
Summary: Pull Request resolved: #31 imported-using-ghimport Test Plan: Imported from OSS Rollback Plan: Reviewed By: digantdesai Differential Revision: D80466682 Pulled By: manuelcandales fbshipit-source-id: 047b3d15de8dd210c9198f1c0ed108c64f108ed8
1 parent 4032f16 commit 0311e76

File tree

1 file changed

+138
-45
lines changed

1 file changed

+138
-45
lines changed

facto/specdb/db.py

Lines changed: 138 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -3114,24 +3114,28 @@
31143114
InPosArg(
31153115
ArgType.Tensor,
31163116
name="self",
3117+
deps=[1],
31173118
constraints=[
3119+
cp.Dtype.Ne(lambda deps: torch.bool),
31183120
cp.Rank.In(lambda deps: [2, 3]),
3119-
cp.Size.Gt(lambda deps, r, d: 0 if d > 0 else None),
3121+
cp.Size.Gt(lambda deps, r, d: None if d == 0 and r == 3 else 0),
3122+
# padding[0] < self.size(-1)
3123+
cp.Size.Gt(lambda deps, r, d: deps[0][0] if d == r - 1 else None),
3124+
# padding[1] < self.size(-1)
3125+
cp.Size.Gt(lambda deps, r, d: deps[0][1] if d == r - 1 else None),
3126+
# padding[0] + padding[1] + self.size(-1) > 0
3127+
cp.Size.Gt(
3128+
lambda deps, r, d: (
3129+
-(deps[0][0] + deps[0][1]) if d == r - 1 else None
3130+
)
3131+
),
31203132
],
31213133
),
31223134
InPosArg(
31233135
ArgType.LengthList,
31243136
name="padding",
3125-
deps=[0],
31263137
constraints=[
31273138
cp.Length.Eq(lambda deps: 2),
3128-
cp.Value.Lt(
3129-
lambda deps, length, ix: (
3130-
deps[0].size(-ix - 1) if ix < 1 else None
3131-
)
3132-
),
3133-
# TODO(mcandales): Calibrate.
3134-
# self.size(-1) + padding[0] + padding[1] >= 0
31353139
],
31363140
),
31373141
],
@@ -3150,25 +3154,38 @@
31503154
InPosArg(
31513155
ArgType.Tensor,
31523156
name="self",
3157+
deps=[1],
31533158
constraints=[
3159+
cp.Dtype.Ne(lambda deps: torch.bool),
31543160
cp.Rank.In(lambda deps: [3, 4]),
3155-
cp.Size.Gt(lambda deps, r, d: 0 if d > 0 else None),
3161+
cp.Size.Gt(lambda deps, r, d: None if d == 0 and r == 4 else 0),
3162+
# padding[0] < self.size(-1)
3163+
cp.Size.Gt(lambda deps, r, d: deps[0][0] if d == r - 1 else None),
3164+
# padding[1] < self.size(-1)
3165+
cp.Size.Gt(lambda deps, r, d: deps[0][1] if d == r - 1 else None),
3166+
# padding[0] + padding[1] + self.size(-1) > 0
3167+
cp.Size.Gt(
3168+
lambda deps, r, d: (
3169+
-(deps[0][0] + deps[0][1]) if d == r - 1 else None
3170+
)
3171+
),
3172+
# padding[2] < self.size(-2)
3173+
cp.Size.Gt(lambda deps, r, d: deps[0][2] if d == r - 2 else None),
3174+
# padding[3] < self.size(-2)
3175+
cp.Size.Gt(lambda deps, r, d: deps[0][3] if d == r - 2 else None),
3176+
# padding[2] + padding[3] + self.size(-2) > 0
3177+
cp.Size.Gt(
3178+
lambda deps, r, d: (
3179+
-(deps[0][2] + deps[0][3]) if d == r - 2 else None
3180+
)
3181+
),
31563182
],
31573183
),
31583184
InPosArg(
31593185
ArgType.LengthList,
31603186
name="padding",
3161-
deps=[0],
31623187
constraints=[
31633188
cp.Length.Eq(lambda deps: 4),
3164-
cp.Value.Lt(
3165-
lambda deps, length, ix: (
3166-
deps[0].size(-ix - 1) if ix < 2 else None
3167-
)
3168-
),
3169-
# TODO(mcandales): Calibrate.
3170-
# self.size(-1) + padding[0] + padding[1] >= 0
3171-
# self.size(-2) + padding[2] + padding[3] >= 0
31723189
],
31733190
),
31743191
],
@@ -3187,26 +3204,48 @@
31873204
InPosArg(
31883205
ArgType.Tensor,
31893206
name="self",
3207+
deps=[1],
31903208
constraints=[
3209+
cp.Dtype.Ne(lambda deps: torch.bool),
31913210
cp.Rank.In(lambda deps: [4, 5]),
3192-
cp.Size.Gt(lambda deps, r, d: 0 if d > 0 else None),
3211+
cp.Size.Gt(lambda deps, r, d: None if d == 0 and r == 5 else 0),
3212+
# padding[0] < self.size(-1)
3213+
cp.Size.Gt(lambda deps, r, d: deps[0][0] if d == r - 1 else None),
3214+
# padding[1] < self.size(-1)
3215+
cp.Size.Gt(lambda deps, r, d: deps[0][1] if d == r - 1 else None),
3216+
# padding[0] + padding[1] + self.size(-1) > 0
3217+
cp.Size.Gt(
3218+
lambda deps, r, d: (
3219+
-(deps[0][0] + deps[0][1]) if d == r - 1 else None
3220+
)
3221+
),
3222+
# padding[2] < self.size(-2)
3223+
cp.Size.Gt(lambda deps, r, d: deps[0][2] if d == r - 2 else None),
3224+
# padding[3] < self.size(-2)
3225+
cp.Size.Gt(lambda deps, r, d: deps[0][3] if d == r - 2 else None),
3226+
# padding[2] + padding[3] + self.size(-2) > 0
3227+
cp.Size.Gt(
3228+
lambda deps, r, d: (
3229+
-(deps[0][2] + deps[0][3]) if d == r - 2 else None
3230+
)
3231+
),
3232+
# padding[4] < self.size(-3)
3233+
cp.Size.Gt(lambda deps, r, d: deps[0][4] if d == r - 3 else None),
3234+
# padding[5] < self.size(-3)
3235+
cp.Size.Gt(lambda deps, r, d: deps[0][5] if d == r - 3 else None),
3236+
# padding[4] + padding[5] + self.size(-3) > 0
3237+
cp.Size.Gt(
3238+
lambda deps, r, d: (
3239+
-(deps[0][4] + deps[0][5]) if d == r - 3 else None
3240+
)
3241+
),
31933242
],
31943243
),
31953244
InPosArg(
31963245
ArgType.LengthList,
31973246
name="padding",
3198-
deps=[0],
31993247
constraints=[
32003248
cp.Length.Eq(lambda deps: 6),
3201-
cp.Value.Lt(
3202-
lambda deps, length, ix: (
3203-
deps[0].size(-ix - 1) if ix < 3 else None
3204-
)
3205-
),
3206-
# TODO(mcandales): Calibrate.
3207-
# self.size(-1) + padding[0] + padding[1] >= 0
3208-
# self.size(-2) + padding[2] + padding[3] >= 0
3209-
# self.size(-3) + padding[4] + padding[5] >= 0
32103249
],
32113250
),
32123251
],
@@ -3319,19 +3358,28 @@
33193358
InPosArg(
33203359
ArgType.Tensor,
33213360
name="self",
3361+
deps=[1],
33223362
constraints=[
3363+
cp.Dtype.Ne(lambda deps: torch.bool),
33233364
cp.Rank.In(lambda deps: [2, 3]),
3324-
cp.Size.Gt(lambda deps, r, d: 0 if d > 0 else None),
3365+
cp.Size.Gt(lambda deps, r, d: None if d == 0 and r == 3 else 0),
3366+
# padding[0] < self.size(-1)
3367+
cp.Size.Gt(lambda deps, r, d: deps[0][0] if d == r - 1 else None),
3368+
# padding[1] < self.size(-1)
3369+
cp.Size.Gt(lambda deps, r, d: deps[0][1] if d == r - 1 else None),
3370+
# padding[0] + padding[1] + self.size(-1) > 0
3371+
cp.Size.Gt(
3372+
lambda deps, r, d: (
3373+
-(deps[0][0] + deps[0][1]) if d == r - 1 else None
3374+
)
3375+
),
33253376
],
33263377
),
33273378
InPosArg(
33283379
ArgType.LengthList,
33293380
name="padding",
3330-
deps=[0],
33313381
constraints=[
33323382
cp.Length.Eq(lambda deps: 2),
3333-
# TODO(mcandales): Calibrate.
3334-
# self.size(-1) + padding[0] + padding[1] >= 0
33353383
],
33363384
),
33373385
],
@@ -3350,20 +3398,38 @@
33503398
InPosArg(
33513399
ArgType.Tensor,
33523400
name="self",
3401+
deps=[1],
33533402
constraints=[
3403+
cp.Dtype.Ne(lambda deps: torch.bool),
33543404
cp.Rank.In(lambda deps: [3, 4]),
3355-
cp.Size.Gt(lambda deps, r, d: 0 if d > 0 else None),
3405+
cp.Size.Gt(lambda deps, r, d: None if d == 0 and r == 4 else 0),
3406+
# padding[0] < self.size(-1)
3407+
cp.Size.Gt(lambda deps, r, d: deps[0][0] if d == r - 1 else None),
3408+
# padding[1] < self.size(-1)
3409+
cp.Size.Gt(lambda deps, r, d: deps[0][1] if d == r - 1 else None),
3410+
# padding[0] + padding[1] + self.size(-1) > 0
3411+
cp.Size.Gt(
3412+
lambda deps, r, d: (
3413+
-(deps[0][0] + deps[0][1]) if d == r - 1 else None
3414+
)
3415+
),
3416+
# padding[2] < self.size(-2)
3417+
cp.Size.Gt(lambda deps, r, d: deps[0][2] if d == r - 2 else None),
3418+
# padding[3] < self.size(-2)
3419+
cp.Size.Gt(lambda deps, r, d: deps[0][3] if d == r - 2 else None),
3420+
# padding[2] + padding[3] + self.size(-2) > 0
3421+
cp.Size.Gt(
3422+
lambda deps, r, d: (
3423+
-(deps[0][2] + deps[0][3]) if d == r - 2 else None
3424+
)
3425+
),
33563426
],
33573427
),
33583428
InPosArg(
33593429
ArgType.LengthList,
33603430
name="padding",
3361-
deps=[0],
33623431
constraints=[
33633432
cp.Length.Eq(lambda deps: 4),
3364-
# TODO(mcandales): Calibrate.
3365-
# self.size(-1) + padding[0] + padding[1] >= 0
3366-
# self.size(-2) + padding[2] + padding[3] >= 0
33673433
],
33683434
),
33693435
],
@@ -3382,21 +3448,48 @@
33823448
InPosArg(
33833449
ArgType.Tensor,
33843450
name="self",
3451+
deps=[1],
33853452
constraints=[
3453+
cp.Dtype.Ne(lambda deps: torch.bool),
33863454
cp.Rank.In(lambda deps: [4, 5]),
3387-
cp.Size.Gt(lambda deps, r, d: 0 if d > 0 else None),
3455+
cp.Size.Gt(lambda deps, r, d: None if d == 0 and r == 5 else 0),
3456+
# padding[0] < self.size(-1)
3457+
cp.Size.Gt(lambda deps, r, d: deps[0][0] if d == r - 1 else None),
3458+
# padding[1] < self.size(-1)
3459+
cp.Size.Gt(lambda deps, r, d: deps[0][1] if d == r - 1 else None),
3460+
# padding[0] + padding[1] + self.size(-1) > 0
3461+
cp.Size.Gt(
3462+
lambda deps, r, d: (
3463+
-(deps[0][0] + deps[0][1]) if d == r - 1 else None
3464+
)
3465+
),
3466+
# padding[2] < self.size(-2)
3467+
cp.Size.Gt(lambda deps, r, d: deps[0][2] if d == r - 2 else None),
3468+
# padding[3] < self.size(-2)
3469+
cp.Size.Gt(lambda deps, r, d: deps[0][3] if d == r - 2 else None),
3470+
# padding[2] + padding[3] + self.size(-2) > 0
3471+
cp.Size.Gt(
3472+
lambda deps, r, d: (
3473+
-(deps[0][2] + deps[0][3]) if d == r - 2 else None
3474+
)
3475+
),
3476+
# padding[4] < self.size(-3)
3477+
cp.Size.Gt(lambda deps, r, d: deps[0][4] if d == r - 3 else None),
3478+
# padding[5] < self.size(-3)
3479+
cp.Size.Gt(lambda deps, r, d: deps[0][5] if d == r - 3 else None),
3480+
# padding[4] + padding[5] + self.size(-3) > 0
3481+
cp.Size.Gt(
3482+
lambda deps, r, d: (
3483+
-(deps[0][4] + deps[0][5]) if d == r - 3 else None
3484+
)
3485+
),
33883486
],
33893487
),
33903488
InPosArg(
33913489
ArgType.LengthList,
33923490
name="padding",
3393-
deps=[0],
33943491
constraints=[
33953492
cp.Length.Eq(lambda deps: 6),
3396-
# TODO(mcandales): Calibrate.
3397-
# self.size(-1) + padding[0] + padding[1] >= 0
3398-
# self.size(-2) + padding[2] + padding[3] >= 0
3399-
# self.size(-3) + padding[4] + padding[5] >= 0
34003493
],
34013494
),
34023495
],

0 commit comments

Comments
 (0)