(x, fw, pad_sz, pad_mode, dim=0)
| 384 | |
| 385 | |
| 386 | def fw_pad(x, fw, pad_sz, pad_mode, dim=0): |
| 387 | if pad_sz == (0, 0): |
| 388 | return x |
| 389 | if fw is numpy: |
| 390 | pad_vec = [(0, 0)] * x.ndim |
| 391 | pad_vec[dim] = pad_sz |
| 392 | return fw.pad(x, pad_width=pad_vec, mode=pad_mode) |
| 393 | else: |
| 394 | if x.ndim < 3: |
| 395 | x = x[None, None, ...] |
| 396 | |
| 397 | pad_vec = [0] * ((x.ndim - 2) * 2) |
| 398 | pad_vec[0:2] = pad_sz |
| 399 | return fw.nn.functional.pad(x.transpose(dim, -1), pad=pad_vec, |
| 400 | mode=pad_mode).transpose(dim, -1) |
| 401 | |
| 402 | |
| 403 | def fw_conv(input, filter, stride): |
no test coverage detected