| 220 | |
| 221 | # Take the prediction of fake and real images from the combined batch |
| 222 | def divide_pred(self, pred): |
| 223 | # the prediction contains the intermediate outputs of multiscale GAN, |
| 224 | # so it's usually a list |
| 225 | if type(pred) == list: |
| 226 | fake = [] |
| 227 | real = [] |
| 228 | for p in pred: |
| 229 | fake.append([tensor[:tensor.size(0) // 2] for tensor in p]) |
| 230 | real.append([tensor[tensor.size(0) // 2:] for tensor in p]) |
| 231 | else: |
| 232 | fake = pred[:pred.size(0) // 2] |
| 233 | real = pred[pred.size(0) // 2:] |
| 234 | |
| 235 | return fake, real |
| 236 | |
| 237 | def get_edges(self, t): |
| 238 | edge = self.ByteTensor(t.size()).zero_() |