pysyft torrch.jit. script RuntimeError: undefined value _Reduction
pysyft torrch.jit. script RuntimeError: undefined value _Reduction
我试图从其高级示例中重现 Pysyft Asynchronous-federated-learning-on-MNIST。其中 @torch.jit.script
在损失函数之前使用。我收到此错误并且不知道这是关于什么的
RuntimeError: undefined value _Reduction: at
/home/ab/.virtualenvs/aic/lib/python3.6/site-packages/syft/generic/frameworks/hook/hook.py:1829:20
reduction = _Reduction.legacy_get_string(size_average, reduce)
其实是这几行造成的
@torch.jit.script
def loss_fn(pred, target):
return F.nll_loss(input=pred, target=target)
train_config = sy.TrainConfig(
model=traced_model,
loss_fn=loss_fn,
batch_size=batch_size,
shuffle=True,
max_nr_batches=max_nr_batches,
epochs=1,
optimizer="SGD",
optimizer_args={"lr": lr},
)
写下答案以帮助 others.It 事实证明 @torch.jit.script
需要位于文件的顶部(导入后),我在定义两个函数后得到了它。
将其移至顶部有效
我试图从其高级示例中重现 Pysyft Asynchronous-federated-learning-on-MNIST。其中 @torch.jit.script
在损失函数之前使用。我收到此错误并且不知道这是关于什么的
RuntimeError: undefined value _Reduction: at /home/ab/.virtualenvs/aic/lib/python3.6/site-packages/syft/generic/frameworks/hook/hook.py:1829:20
reduction = _Reduction.legacy_get_string(size_average, reduce)
其实是这几行造成的
@torch.jit.script
def loss_fn(pred, target):
return F.nll_loss(input=pred, target=target)
train_config = sy.TrainConfig(
model=traced_model,
loss_fn=loss_fn,
batch_size=batch_size,
shuffle=True,
max_nr_batches=max_nr_batches,
epochs=1,
optimizer="SGD",
optimizer_args={"lr": lr},
)
写下答案以帮助 others.It 事实证明 @torch.jit.script
需要位于文件的顶部(导入后),我在定义两个函数后得到了它。
将其移至顶部有效