python - 函数缺少 2 个必需的位置参数:“X_train”和“y_train”
问题描述
- 我正在用 Jupyter notebook 编写 Python 并出现这种错误:
TypeError Traceback (most recent call last)
<ipython-input-11-3a2267df06a1> in <module>
1 # Section II: First run the backpropagation simulation
----> 2 model_s = vanilla_backpropagation()
TypeError: vanilla_backpropagation() missing 2 required positional arguments: 'X_train' and 'y_train'
- 当我尝试运行它时引起的:
# Section II: First run the backpropagation simulation
model_s = vanilla_backpropagation()
- 这是 vanilla_backpropagation 函数的代码并拆分训练测试
def vanilla_backpropagation(X_train, y_train):
best_model = None
best_score = 100.00
for i in range(N):
model_s = build_ann(LOSS)
model_s.fit(X_train,
y_train,
epochs = STEPS,
batch_size = batch_size,
verbose = 0)
train_score = model_s.evaluate(X_train, y_train, batch_size = BATCH_SIZE, verbose = 0)
if train_score > best_score:
best_model = model_s
best_score = train_score
return best_model
if __name__ == "__main__":
# Section I: Build the data set
X_train, X_test, y_train, y_test = train_test_split(X,y,test_size=0.2, shuffle = None)
任何人都可以帮助解决这个错误吗?我坚持了好几天了。谢谢你
解决方案
当你定义一个带有一些输入的函数时,你需要在调用它时将这些输入提供给函数。在主函数的最后一行拆分数据后
X_train, X_test, y_train, y_test = train_test_split(X,y,test_size=0.2, shuffle = None)
你可以调用你的函数
vanilla_backpropagation(X_train, y_train)
看来您对 python 和深度学习都是新手。请阅读相关文档和示例,首先了解如何训练网络和使用 python 函数。