锻炼不止两年半 2024-02-29 19:22 采纳率: 50%
浏览 892

pytorch训练模型遇到的问题

I tensorflow/core/util/port.cc:113] oneDNN custom operations are on. You may see slightly different numerical results due to floating-point round-off errors from different computation orders. To turn them off, set the environment variable TF_ENABLE_ONEDNN_OPTS=0.
WARNING:tensorflow:From C:\Users\Syang.conda\envs\pytorch\Lib\site-packages\keras\src\losses.py:2976: The name tf.losses.sparse_softmax_cross_entropy is deprecated. Please use tf.compat.v1.losses.sparse_softmax_cross_entropy instead.

pytorch里面怎么会一直弹TensorFlow的警告,而且查询了一下说的是
这个警告是由 TensorFlow 的一个版本更新引起的。在旧版本中,tf.losses.sparse_softmax_cross_entropy 是用于计算稀疏分类问题(标签为整数)的损失函数。然而,在新版本的 TensorFlow 中,这个函数已被标记为过时(deprecated),并建议使用 tf.compat.v1.losses.sparse_softmax_cross_entropy 替代。
tf.compat.v1 是 TensorFlow 提供的一个兼容性模块,用于向后兼容旧版本的代码。使用 tf.compat.v1.losses.sparse_softmax_cross_entropy 可以确保你的代码在新版本的 TensorFlow 中仍然能够正常运行。
在你提供的代码中,可能是因为 TensorFlow 的某个依赖库或其他相关代码使用了过时的函数 tf.losses.sparse_softmax_cross_entropy,从而触发了这个警告。
要解决这个警告,你可以将代码中的 tf.losses.sparse_softmax_cross_entropy 替换为 tf.compat.v1.losses.sparse_softmax_cross_entropy。这样可以确保你的代码在新版本的 TensorFlow 中继续正常运行,并避免警告信息的出现。

但是我并没有找到tf.losses.sparse_softmax_cross_entropy这一段代码
每训练一个epoch就会疯狂弹这个警告,严重影响训练速度

img

训练速度其实挺快的,但是会弹七八个警告之后才进入下一轮的训练

  • 写回答

3条回答 默认 最新

  • GISer Liu 2024-02-29 19:23
    关注

    该回答引用自GPT-3.5,由博主GISer Liu编写:

    根据你的描述,问题是在使用PyTorch训练模型时,出现了来自TensorFlow的警告信息,具体是关于```
    tf.losses.sparse_softmax_cross_entropy

    解决这个问题的思路是要找到触发警告的代码,然后对其进行修改以消除警告。尽管你表示没有找到代码中使用了```
    tf.losses.sparse_softmax_cross_entropy
    ```,但这个警告仍然持续出现,可能是因为某些第三方库或者其他依赖在内部使用了这个函数。
    为了解决这个问题,你可以尝试以下几个步骤:
    1.  **确认依赖库版本** :确保你的环境中的TensorFlow版本是最新的,并且检查PyTorch及其相关依赖库的版本是否也是最新的。有时候更新依赖库版本可以解决兼容性问题。
    2.  **检查代码中的依赖** :仔细检查你的代码以及可能使用的所有第三方库,确保没有地方在使用``` tf.losses.sparse_softmax_cross_entropy ```函数。
    3.  **尝试手动设置环境变量** :根据警告信息提到的内容,尝试手动设置环境变量``` TF_ENABLE_ONEDNN_OPTS=0 ```,看看是否能够消除警告。你可以在代码中的开头添加以下代码来设置环境变量:
    pythonCopy code
    

    import os
    os.environ['TF_ENABLE_ONEDNN_OPTS'] = '0'

    ```
    4. 查找第三方库中的问题 :如果以上步骤都没有解决问题,可能是某些第三方库内部使用了过时的函数。你可以尝试查找你使用的所有库的GitHub或者其他平台上的issue,看看是否有其他人报告过类似的问题,并找到相应的解决方案。
    5. 考虑更换环境 :如果以上方法都无法解决问题,考虑更换开发环境或者重新安装所有依赖库。
    综上所述,解决这个问题的关键是要找到代码中或者依赖库中触发警告的地方,并对其进行修改或者调整以消除警告。

    如果该回答解决了您的问题,请采纳!如果没有,请参考以下方案进行修订

    用户答题指南

    评论

报告相同问题?

问题事件

  • 创建了问题 2月29日