|
3114 | 3114 | InPosArg(
|
3115 | 3115 | ArgType.Tensor,
|
3116 | 3116 | name="self",
|
| 3117 | + deps=[1], |
3117 | 3118 | constraints=[
|
| 3119 | + cp.Dtype.Ne(lambda deps: torch.bool), |
3118 | 3120 | 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 | + ), |
3120 | 3132 | ],
|
3121 | 3133 | ),
|
3122 | 3134 | InPosArg(
|
3123 | 3135 | ArgType.LengthList,
|
3124 | 3136 | name="padding",
|
3125 |
| - deps=[0], |
3126 | 3137 | constraints=[
|
3127 | 3138 | 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 |
3135 | 3139 | ],
|
3136 | 3140 | ),
|
3137 | 3141 | ],
|
|
3150 | 3154 | InPosArg(
|
3151 | 3155 | ArgType.Tensor,
|
3152 | 3156 | name="self",
|
| 3157 | + deps=[1], |
3153 | 3158 | constraints=[
|
| 3159 | + cp.Dtype.Ne(lambda deps: torch.bool), |
3154 | 3160 | 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 | + ), |
3156 | 3182 | ],
|
3157 | 3183 | ),
|
3158 | 3184 | InPosArg(
|
3159 | 3185 | ArgType.LengthList,
|
3160 | 3186 | name="padding",
|
3161 |
| - deps=[0], |
3162 | 3187 | constraints=[
|
3163 | 3188 | 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 |
3172 | 3189 | ],
|
3173 | 3190 | ),
|
3174 | 3191 | ],
|
|
3187 | 3204 | InPosArg(
|
3188 | 3205 | ArgType.Tensor,
|
3189 | 3206 | name="self",
|
| 3207 | + deps=[1], |
3190 | 3208 | constraints=[
|
| 3209 | + cp.Dtype.Ne(lambda deps: torch.bool), |
3191 | 3210 | 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 | + ), |
3193 | 3242 | ],
|
3194 | 3243 | ),
|
3195 | 3244 | InPosArg(
|
3196 | 3245 | ArgType.LengthList,
|
3197 | 3246 | name="padding",
|
3198 |
| - deps=[0], |
3199 | 3247 | constraints=[
|
3200 | 3248 | 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 |
3210 | 3249 | ],
|
3211 | 3250 | ),
|
3212 | 3251 | ],
|
|
3319 | 3358 | InPosArg(
|
3320 | 3359 | ArgType.Tensor,
|
3321 | 3360 | name="self",
|
| 3361 | + deps=[1], |
3322 | 3362 | constraints=[
|
| 3363 | + cp.Dtype.Ne(lambda deps: torch.bool), |
3323 | 3364 | 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 | + ), |
3325 | 3376 | ],
|
3326 | 3377 | ),
|
3327 | 3378 | InPosArg(
|
3328 | 3379 | ArgType.LengthList,
|
3329 | 3380 | name="padding",
|
3330 |
| - deps=[0], |
3331 | 3381 | constraints=[
|
3332 | 3382 | cp.Length.Eq(lambda deps: 2),
|
3333 |
| - # TODO(mcandales): Calibrate. |
3334 |
| - # self.size(-1) + padding[0] + padding[1] >= 0 |
3335 | 3383 | ],
|
3336 | 3384 | ),
|
3337 | 3385 | ],
|
|
3350 | 3398 | InPosArg(
|
3351 | 3399 | ArgType.Tensor,
|
3352 | 3400 | name="self",
|
| 3401 | + deps=[1], |
3353 | 3402 | constraints=[
|
| 3403 | + cp.Dtype.Ne(lambda deps: torch.bool), |
3354 | 3404 | 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 | + ), |
3356 | 3426 | ],
|
3357 | 3427 | ),
|
3358 | 3428 | InPosArg(
|
3359 | 3429 | ArgType.LengthList,
|
3360 | 3430 | name="padding",
|
3361 |
| - deps=[0], |
3362 | 3431 | constraints=[
|
3363 | 3432 | 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 |
3367 | 3433 | ],
|
3368 | 3434 | ),
|
3369 | 3435 | ],
|
|
3382 | 3448 | InPosArg(
|
3383 | 3449 | ArgType.Tensor,
|
3384 | 3450 | name="self",
|
| 3451 | + deps=[1], |
3385 | 3452 | constraints=[
|
| 3453 | + cp.Dtype.Ne(lambda deps: torch.bool), |
3386 | 3454 | 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 | + ), |
3388 | 3486 | ],
|
3389 | 3487 | ),
|
3390 | 3488 | InPosArg(
|
3391 | 3489 | ArgType.LengthList,
|
3392 | 3490 | name="padding",
|
3393 |
| - deps=[0], |
3394 | 3491 | constraints=[
|
3395 | 3492 | 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 |
3400 | 3493 | ],
|
3401 | 3494 | ),
|
3402 | 3495 | ],
|
|
0 commit comments