首页 > 解决方案 > 在训练活动识别模型时观察不同机器中不同的模型性能

问题描述

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

所以:

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

笔记本电脑(适用于工作站的 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 中的数据没有以某种方式损坏)

标签: kerasdeep-learningtensorflow2.0activity-recognitionmobilenet

解决方案


首先,为了获得相同的结果,您应该在两台机器上使用相同的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)

推荐阅读