weixin_45915543 2024-07-19 21:46 采纳率: 0%
浏览 3

深度学习复现论文代码debug


C:\Users\86155\.conda\envs\pads-project-main\lib\site-packages\torch\nn\_reduction.py:62: UserWarning: 这是一个警告信息。
  warnings.warn(warning.format(ret))
C:\Users\86155\.conda\envs\pads-project-main\lib\site-packages\torch\nn\_reduction.py:62: UserWarning: 这是一个警告信息。
  warnings.warn(warning.format(ret))
C:\Users\86155\.conda\envs\pads-project-main\lib\site-packages\torch\nn\_reduction.py:62: UserWarning: 这是一个警告信息。
  warnings.warn(warning.format(ret))
C:\Users\86155\.conda\envs\pads-project-main\lib\site-packages\torch\nn\_reduction.py:62: UserWarning: 这是一个警告信息。
  warnings.warn(warning.format(ret))
C:\Users\86155\.conda\envs\pads-project-main\lib\site-packages\torch\nn\_reduction.py:62: UserWarning: 这是一个警告信息。
  warnings.warn(warning.format(ret))
C:\Users\86155\.conda\envs\pads-project-main\lib\site-packages\torch\nn\_reduction.py:62: UserWarning: 这是一个警告信息。
  warnings.warn(warning.format(ret))
C:\Users\86155\.conda\envs\pads-project-main\lib\site-packages\torch\nn\_reduction.py:62: UserWarning: 这是一个警告信息。
  warnings.warn(warning.format(ret))
C:\Users\86155\.conda\envs\pads-project-main\lib\site-packages\torch\nn\_reduction.py:62: UserWarning: 这是一个警告信息。
  warnings.warn(warning.format(ret))
C:\Users\86155\.conda\envs\pads-project-main\lib\site-packages\torch\nn\_reduction.py:62: UserWarning: 这是一个警告信息。
  warnings.warn(warning.format(ret))
C:\Users\86155\.conda\envs\pads-project-main\lib\site-packages\torch\nn\_reduction.py:62: UserWarning: 这是一个警告信息。
  warnings.warn(warning.format(ret))
C:\Users\86155\.conda\envs\pads-project-main\lib\site-packages\torch\nn\_reduction.py:62: UserWarning: 这是一个警告信息。
  warnings.warn(warning.format(ret))
C:\Users\86155\.conda\envs\pads-project-main\lib\site-packages\torch\nn\_reduction.py:62: UserWarning: 这是一个警告信息。
  warnings.warn(warning.format(ret))
C:\Users\86155\.conda\envs\pads-project-main\lib\site-packages\torch\nn\_reduction.py:62: UserWarning: 这是一个警告信息。
  warnings.warn(warning.format(ret))
C:\Users\86155\.conda\envs\pads-project-main\lib\site-packages\torch\nn\_reduction.py:62: UserWarning: 这是一个警告信息。
  warnings.warn(warning.format(ret))
C:\Users\86155\.conda\envs\pads-project-main\lib\site-packages\torch\nn\_reduction.py:62: UserWarning: 这是一个警告信息。
  warnings.warn(warning.format(ret))
C:\Users\86155\.conda\envs\pads-project-main\lib\site-packages\torch\nn\_reduction.py:62: UserWarning: 这是一个警告信息。
  warnings.warn(warning.format(ret))
C:\Users\86155\.conda\envs\pads-project-main\lib\site-packages\torch\nn\_reduction.py:62: UserWarning: 这是一个警告信息。
  warnings.warn(warning.format(ret))
C:\Users\86155\.conda\envs\pads-project-main\lib\site-packages\torch\nn\_reduction.py:62: UserWarning: 这是一个警告信息。
  warnings.warn(warning.format(ret))
C:\Users\86155\.conda\envs\pads-project-main\lib\site-packages\torch\nn\_reduction.py:62: UserWarning: 这是一个警告信息。
  warnings.warn(warning.format(ret))
C:\Users\86155\.conda\envs\pads-project-main\lib\site-packages\torch\nn\_reduction.py:62: UserWarning: 这是一个警告信息。
  warnings.warn(warning.format(ret))
Traceback (most recent call last):
  File "C:\Users\86155\Desktop\pads-project-main\project\run_hyperopt.py", line 16, in <module>
    res = hyperopt(exp, hyperparams, dataset_root)
  File "C:\Users\86155\Desktop\pads-project-main\project\utils\hyperopt.py", line 39, in hyperopt
    estimator.fit(x[train_idx], y[train_idx], clf__sample_weight=weights)
  File "C:\Users\86155\.conda\envs\pads-project-main\lib\site-packages\sklearn\base.py", line 1474, in wrapper
    return fit_method(estimator, *args, **kwargs)
  File "C:\Users\86155\.conda\envs\pads-project-main\lib\site-packages\sklearn\model_selection\_search.py", line 970, in fit
    self._run_search(evaluate_candidates)
  File "C:\Users\86155\.conda\envs\pads-project-main\lib\site-packages\sklearn\model_selection\_search.py", line 1527, in _run_search
    evaluate_candidates(ParameterGrid(self.param_grid))
  File "C:\Users\86155\.conda\envs\pads-project-main\lib\site-packages\sklearn\model_selection\_search.py", line 947, in evaluate_candidates
    _warn_or_raise_about_fit_failures(out, self.error_score)
  File "C:\Users\86155\.conda\envs\pads-project-main\lib\site-packages\sklearn\model_selection\_validation.py", line 536, in _warn_or_raise_about_fit_failures
    raise ValueError(all_fits_failed_message)
ValueError: 
All the 20 fits failed.
It is very likely that your model is misconfigured.
You can try to debug the error by setting error_score='raise'.

Below are more details about the failures:
--------------------------------------------------------------------------------
20 fits failed with the following error:
Traceback (most recent call last):
  File "C:\Users\86155\.conda\envs\pads-project-main\lib\site-packages\sklearn\model_selection\_validation.py", line 895, in _fit_and_score
    estimator.fit(X_train, y_train, **fit_params)
  File "C:\Users\86155\Desktop\pads-project-main\project\ml\sample_weight_pipeline.py", line 13, in fit
    super().fit(X, y, **fit_params)
  File "C:\Users\86155\.conda\envs\pads-project-main\lib\site-packages\sklearn\base.py", line 1474, in wrapper
    return fit_method(estimator, *args, **kwargs)
  File "C:\Users\86155\.conda\envs\pads-project-main\lib\site-packages\sklearn\pipeline.py", line 475, in fit
    self._final_estimator.fit(Xt, y, **last_step_params["fit"])
  File "C:\Users\86155\Desktop\pads-project-main\project\ml\nn.py", line 68, in fit
    super().fit(X_dict, y)
  File "C:\Users\86155\.conda\envs\pads-project-main\lib\site-packages\skorch\classifier.py", line 141, in fit
    return super(NeuralNetClassifier, self).fit(X, y, **fit_params)
  File "C:\Users\86155\.conda\envs\pads-project-main\lib\site-packages\skorch\net.py", line 1215, in fit
    self.partial_fit(X, y, **fit_params)
  File "C:\Users\86155\.conda\envs\pads-project-main\lib\site-packages\skorch\net.py", line 1174, in partial_fit
    self.fit_loop(X, y, **fit_params)
  File "C:\Users\86155\.conda\envs\pads-project-main\lib\site-packages\skorch\net.py", line 1087, in fit_loop
    self.run_single_epoch(dataset_train, training=True, prefix="train",
  File "C:\Users\86155\.conda\envs\pads-project-main\lib\site-packages\skorch\net.py", line 1122, in run_single_epoch
    step = step_fn(batch, **fit_params)
  File "C:\Users\86155\.conda\envs\pads-project-main\lib\site-packages\skorch\net.py", line 1007, in train_step
    self._step_optimizer(step_fn)
  File "C:\Users\86155\.conda\envs\pads-project-main\lib\site-packages\skorch\net.py", line 963, in _step_optimizer
    optimizer.step(step_fn)
  File "C:\Users\86155\.conda\envs\pads-project-main\lib\site-packages\torch\optim\optimizer.py", line 385, in wrapper
    out = func(*args, **kwargs)
  File "C:\Users\86155\.conda\envs\pads-project-main\lib\site-packages\torch\optim\optimizer.py", line 76, in _use_grad
    ret = func(self, *args, **kwargs)
  File "C:\Users\86155\.conda\envs\pads-project-main\lib\site-packages\torch\optim\adamw.py", line 164, in step
    loss = closure()
  File "C:\Users\86155\.conda\envs\pads-project-main\lib\site-packages\skorch\net.py", line 997, in step_fn
    step = self.train_step_single(batch, **fit_params)
  File "C:\Users\86155\.conda\envs\pads-project-main\lib\site-packages\skorch\net.py", line 897, in train_step_single
    loss = self.get_loss(y_pred, yi, X=Xi, training=True)
  File "C:\Users\86155\Desktop\pads-project-main\project\ml\nn.py", line 53, in get_loss
    loss_unreduced = super().get_loss(y_pred, y_true, reduction='none', *args, **kwargs)
  File "C:\Users\86155\.conda\envs\pads-project-main\lib\site-packages\skorch\classifier.py", line 126, in get_loss
    return super().get_loss(y_pred, y_true, *args, **kwargs)
TypeError: get_loss() got an unexpected keyword argument 'reduction'


Process finished with exit code 1
这种是什么错误?怎么修改呢
  • 写回答

5条回答 默认 最新

  • 阿里嘎多学长 2024-07-19 21:46
    关注

    以下内容由AIGC及阿里嘎多学长共同生成、有用望采纳:


    根据你提供的错误信息和需求,这里是一些可能的解决方案:

    1. 处理警告信息

      • 警告信息通常指示潜在的问题,但不一定会导致程序崩溃。在这种情况下,警告来自torch.nn_reduction.py,但具体内容没有给出。你需要查看该文件的第62行,看看是否是关于某个操作的警告,比如reducesum等操作可能在某些条件下不推荐使用。
      • 你可以使用Python的warnings模块来捕获并打印这些警告,以便更好地理解它们的含义。例如:
        import warnings
        warnings.simplefilter('always', UserWarning)
        warnings.filterwarnings('ignore', category=UserWarning)
        
      • 根据警告的具体内容,你可能需要调整代码逻辑或参数。
    2. 解决模型配置错误

      • 所有的拟合尝试都失败表明模型可能在初始化或训练过程中遇到了问题。你需要检查hyperopt函数的参数和模型配置,确保它们与论文中描述的一致。
      • 检查数据集是否正确加载,特征和标签是否匹配,以及模型的超参数设置是否合理。
    3. 修改错误设置

      • 你可以通过设置error_score='raise'来获得更详细的错误信息。这应该在调用fit方法时添加,例如:
        estimator.fit(x[train_idx], y[train_idx], clf__sample_weight=weights, error_score='raise')
        
      • 这将允许异常被抛出,从而你可以在异常堆栈中看到更具体的错误信息。
    4. 解决TypeError

      • 错误信息表明get_loss方法不接受'reduction'作为关键字参数。你需要检查skorch库的文档,了解如何正确使用get_loss方法。
      • 如果'reduction'参数是用于指定损失函数的聚合方式(如'mean', 'sum'),可能需要检查skorch版本是否支持该参数,或者是否有替代的方法来实现相同的功能。
    5. 代码审查和测试

      • 审查你的代码,特别是与skorchhyperopt相关的部分,确保所有调用都是按照库的文档进行的。
      • 对代码进行单元测试,逐步验证每个组件的功能,这有助于定位问题。
    6. 更新库

      • 确保你使用的是skorchhyperopt等库的最新版本,因为旧版本可能存在已知的bug或不支持某些特性。
    7. 社区和文档

      • 如果你仍然无法解决问题,可以查看相关的社区论坛或GitHub issues页面,看看是否有其他人遇到了类似的问题,并找到了解决方案。
      • 阅读官方文档和API参考,以确保你的使用方式是正确的。

    通过上述步骤,你应该能够逐步解决你遇到的问题,并成功复现论文中的深度学习模型。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 7月19日

悬赏问题

  • ¥15 有人会SIRIUS 5.8.0这个软件吗
  • ¥30 comsol仿真等离激元
  • ¥15 静电纺丝煅烧后如何得到柔性纤维
  • ¥15 (标签-react native|关键词-镜像源)
  • ¥100 照片生成3D人脸视频
  • ¥15 伪装视频时长问题修改MP4的时长问题,
  • ¥15 JETSON NANO
  • ¥15 VS开发qt时如何在paintgl函数中用pushbutton控制切换纹理
  • ¥20 关于 openpyxl 处理excel文件地问题
  • ¥15 MS中不知道高分子的构型怎么构建模型