| 96 | } |
| 97 | |
| 98 | PANDecoderImpl::PANDecoderImpl(std::vector<int> encoder_channels, int decoder_channels, std::string upscale_mode) { |
| 99 | fpa = FPABlock(encoder_channels[encoder_channels.size() - 1], decoder_channels); |
| 100 | gau3 = GAUBlock(encoder_channels[encoder_channels.size() - 2], decoder_channels, upscale_mode); |
| 101 | gau2 = GAUBlock(encoder_channels[encoder_channels.size() - 3], decoder_channels, upscale_mode); |
| 102 | gau1 = GAUBlock(encoder_channels[encoder_channels.size() - 4], decoder_channels, upscale_mode); |
| 103 | |
| 104 | register_module("fpa", fpa); |
| 105 | register_module("gau3", gau3); |
| 106 | register_module("gau2", gau2); |
| 107 | register_module("gau1", gau1); |
| 108 | } |
| 109 | |
| 110 | torch::Tensor PANDecoderImpl::forward(std::vector<torch::Tensor> features) { |
| 111 | auto bottleneck = features[features.size() - 1]; |