| 543 | int64_t repeat) { |
| 544 | auto btc = modules::TransposeModule({{0, 2, 1}, 3}).build(ctx, input); |
| 545 | btc = core::ensure_backend_addressable_layout(ctx, btc); |
| 546 | auto bt1c = core::reshape_tensor( |
| 547 | ctx, |
| 548 | btc, |
| 549 | core::TensorShape::from_dims({btc.shape.dims[0], btc.shape.dims[1], 1, btc.shape.dims[2]})); |
| 550 | auto repeated = modules::RepeatModule( |
| 551 | {core::TensorShape::from_dims({btc.shape.dims[0], btc.shape.dims[1], repeat, btc.shape.dims[2]})}) |
| 552 | .build(ctx, bt1c); |
| 553 | auto btc_repeated = core::reshape_tensor( |
| 554 | ctx, |
| 555 | core::ensure_backend_addressable_layout(ctx, repeated), |
| 556 | core::TensorShape::from_dims({btc.shape.dims[0], btc.shape.dims[1] * repeat, btc.shape.dims[2]})); |
| 557 | return modules::TransposeModule({{0, 2, 1}, 3}).build(ctx, btc_repeated); |
| 558 | } |
| 559 | |
| 560 | core::TensorValue adjacent_repeat_frames_btc( |
| 561 | core::ModuleBuildContext & ctx, |
| 562 | const core::TensorValue & input, |
| 563 | int64_t repeat) { |
| 564 | auto bct = modules::TransposeModule({{0, 2, 1}, 3}).build(ctx, input); |
| 565 | bct = adjacent_repeat_frames_bct(ctx, bct, repeat); |
| 566 | return modules::TransposeModule({{0, 2, 1}, 3}).build(ctx, bct); |
no test coverage detected