tensorflow - 尽管由于 GPU 导致的结果不可重现,是否应该播种?
问题描述
我想用 Google Colab(Tensorflow+Keras)中的 GPU 用相同的训练数据集训练一个 CNN 架构多次,然后用相同的测试数据集测试每个训练过的模型。然后我想确定结果(准确度)的均值和标准差,以评估 CNN 的性能。(我想反复训练 CNN 架构,因为 GPU 的存在不可能产生可重复的结果)。
我想知道我是否不应该在每次运行时放置不同的种子以至少稍微限制随机性?
到目前为止,我已经设置了以下种子,其值因运行而异,除了os.environ['PYTHONHASHSEED']='0'
,我不确定是否应该放这个?
import os
import numpy as np
import tensorflow as tf
import random as rn
os.environ['PYTHONHASHSEED']='0'
np.random.seed(1)
rn.seed(2)
tf.set_random_seed(1)
你怎么看?我应该播种还是不播种?
解决方案
除非您试图获得完全可重现的结果,否则设置种子是没有用的。由于这似乎不是您的目标,因此我建议您不要设置任何种子。
推荐阅读
- firebase - 如何设置存储规则以便我可以运行 Firebase 存储模拟器?
- postgresql - postgreSQL - unixtime 每小时值的每日平均值
- javascript - Reactjs-我不断收到无法 POST 错误
- python - 如何在 fastapi 中进行部分更新?
- python - 绘制箱线图并在表格中按不同值过滤数据
- python - 以图形模式构建您的“模型”实例,或在启用急切模式的情况下调用“模型预测”
- wordpress - URL 更改后的 Avada 未设置设计/字体/徽标
- java - 不再在按钮单击时显示入职活动
- elasticsearch - 我正在尝试形成 Elasticsearch 查询。(SK=modelsku && DS=已批准)|| (DS=已批准 && RS = 已批准 && SK 以 sc 开头)以这种格式
- scalardl - Scalar DL 的资产记录如何避免 cosmosdb 的最大存储限制?