首页 > 解决方案 > 函数缺少 2 个必需的位置参数:“X_train”和“y_train”

问题描述

  1. 我正在用 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'
  1. 当我尝试运行它时引起的:
# Section II: First run the backpropagation simulation
model_s = vanilla_backpropagation()
  1. 这是 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)

任何人都可以帮助解决这个错误吗?我坚持了好几天了。谢谢你

标签: pythontraining-databackpropagation

解决方案


当你定义一个带有一些输入的函数时,你需要在调用它时将这些输入提供给函数。在主函数的最后一行拆分数据后

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 函数。


推荐阅读