我试图从它的高级示例中复制Pysyft异步联邦学习的MNIST。在损失函数之前使用@torch.jit.script。我收到了这个错误,不知道这是怎么回事
/home/ab/.virtualenvs/aic/lib/python3.6/site-packages/syft/generic/frameworks/hook/hook.py:1829:20:
RuntimeError:未定义值_Reduction: at
约简= _Reduction.legacy_get_string(size_average,约简)
它实际上是由这些线引起的。
@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},
)

发布于 2020-01-20 23:26:35
编写答案,这样可以帮助others.It发现@torch.jit.script需要位于文件的顶部(导入之后),而我在两个函数定义之后就得到了它。
把它移到顶端很管用
https://stackoverflow.com/questions/59239818
复制相似问题