【问题标题】:Observing varying model performance in different machines while training an activity recognition model在训练活动识别模型时观察不同机器中不同的模型性能
【发布时间】:2021-08-25 19:02:47
【问题描述】:

我发现我的模型在两台不同的机器(笔记本电脑和 PC)上具有不同的性能(训练和验证准确性)。使用的代码和数据是一样的。

所以:

  • 在笔记本电脑上训练和验证(val 准确度 ~91%)
  • 将相同的 jupyter 笔记本和数据通过(手动通过 Box,不久将移至版本控制的存储库)移至 PC
  • 在 PC 上经过训练和验证(val 准确度约为 33%) - 它是一个三类分类器,因此它基本上不会学习任何东西
  • 观察差异巨大的训练和验证准确度

我使用的库版本存在差异。

笔记本电脑(适用于工作站的 Windows 10 专业版): TensorFlow(仅限 CPU)(2.4.1) Keras - 2.4.1

PC(Windows 10 教育版): TensorFlow(启用 GPU)- 2.1.0 Keras - 2.1.0

更多关于模型架构 - 基于视频分类的活动分类。时间分布的 CNN(经过训练的移动网络,最后 9 层未经训练)以及 GRU

任何建议(我正在尝试将经过训练的模型从性能良好的笔记本电脑移到 PC 上,并再次在火车上对其进行测试,看看我得到了什么性能。如果它很好,我可以确保新 PC 中的数据没有以某种方式损坏)

【问题讨论】:

    标签: keras deep-learning tensorflow2.0 activity-recognition mobilenet


    【解决方案1】:

    首先,为了获得相同的结果,您应该在两台机器上使用相同的tfkeras 库版本;否则将无法跟踪更改。其次,GPU计算一般使用不同的数据大小,影响精度;您可以同时使用 CPU 或 GPU,但不应更改。最后,您应该在运行代码时设置种子:

    import tensorflow as tf
    import random, os
    import numpy as np
    
    def set_seed(s):
       os.environ['PYTHONHASHSEED']=str(SEED)
       os.environ['TF_CUDNN_DETERMINISTIC'] = '1'  # new flag present in tf 2.0+
       random.seed(SEED)
       np.random.seed(SEED)
       tf.random.set_seed(0)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-03
      • 1970-01-01
      • 2020-12-26
      • 2019-10-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-14
      相关资源
      最近更新 更多