(devices, model, losses_by_gpu)
| 865 | |
| 866 | |
| 867 | def _AddGradientOperators(devices, model, losses_by_gpu): |
| 868 | def create_grad(lossp): |
| 869 | return model.ConstantFill(lossp, str(lossp) + "_grad", value=1.0) |
| 870 | |
| 871 | loss_grad = {} |
| 872 | # Explicitly need to create gradients on each GPU |
| 873 | for gpu_id in devices: |
| 874 | device = core.DeviceOption(model._device_type, gpu_id) |
| 875 | with core.DeviceScope(device): |
| 876 | for l in losses_by_gpu[gpu_id]: |
| 877 | lg = create_grad(l) |
| 878 | loss_grad[str(l)] = str(lg) |
| 879 | |
| 880 | model.AddGradientOperators(loss_grad) |
| 881 | |
| 882 | |
| 883 | def ExtractPredictorNet(model, inputs, outputs, device): |
no test coverage detected
searching dependent graphs…