You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

复现差分隐私联邦学习代码时遇SyntaxError报错求助

问题解决:Python语法错误(raise语句版本兼容问题)

问题场景

复现论文《Differentially Private Federated Learning: A Client Level Perspective》代码时,执行bash RUNME.sh后运行命令python sample.py --m 100 --sigma 1,触发如下语法错误:

Traceback (most recent call last):
File "sample.py", line 5, in
from MNIST_reader import Data
File "/content/drive/MyDrive/Colab_Notebooks/machine-learning-diff-private-federated-learning-main/MNIST_reader.py", line 20
raise ValueError, "dataset must be 'testing' or 'training'"
SyntaxError: invalid syntax

原因分析

该错误是因为代码使用了Python2的raise语句语法,而当前运行环境为Python3。Python2中raise 异常类, 异常信息的写法在Python3中已被废弃,必须改为raise 异常类(异常信息)的格式。

解决方案

  1. 打开MNIST_reader.py文件,定位到第20行
  2. 将原代码:
raise ValueError, "dataset must be 'testing' or 'training'"

替换为Python3兼容写法:

raise ValueError("dataset must be 'testing' or 'training'")
  1. 修正运行命令的参数格式:原命令中的--m 100, sigma 1存在错误,需改为--m 100 --sigma 1(将逗号替换为空格,且sigma前添加--)
  2. 重新运行命令即可

内容的提问来源于stack exchange,提问作者Yi Eric

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 23:15:44