Python TensorFlow:tf.estimator.DNNClassifier中缺乏重复性

Python TensorFlow:tf.estimator.DNNClassifier中缺乏重复性,python,tensorflow,random-seed,Python,Tensorflow,Random Seed,我希望使用TensorFlow对医学数据集进行分类。 为了做到这一点,我使用了与中建议的完全相同的代码,唯一的区别是我面对的是医学数据集,而不是虹膜数据库。因此,它不是自定义代码 我确实需要以下问题的帮助:如果我在相同的数据上使用相同的网络配置参数(层数、每层中的神经元数等)运行相同的代码,结果是不同的。我的意思是,我运行相同的代码十次,得到十个不同的精度值。这些数值甚至相差很大,从73%到83%不等 这意味着被认为患有某种疾病的受试者在不同的跑步中会有所不同。换言之,一旦设置了网络结构,就有几

我希望使用TensorFlow对医学数据集进行分类。 为了做到这一点,我使用了与中建议的完全相同的代码,唯一的区别是我面对的是医学数据集,而不是虹膜数据库。因此,它不是自定义代码

我确实需要以下问题的帮助:如果我在相同的数据上使用相同的网络配置参数(层数、每层中的神经元数等)运行相同的代码,结果是不同的。我的意思是,我运行相同的代码十次,得到十个不同的精度值。这些数值甚至相差很大,从73%到83%不等

这意味着被认为患有某种疾病的受试者在不同的跑步中会有所不同。换言之,一旦设置了网络结构,就有几个受试者被视为健康或生病,这仅取决于跑步情况

正如您可以想象的那样,这种缺乏可重复性的情况使得代码从科学和医学的角度来看都是无用的:另一个用户在相同的数据集上运行相同的配置,会发现不同的模型和不同的结果,因此会治疗不同的受试者

我已经注意到,对于Iris数据库,问题似乎没有发生,准确度始终为0.9666。这取决于问题非常简单(除了一个项目外,所有项目都可以线性分离,并且数据集非常小)

我在互联网上进行了一次搜索,我找到了其他几个注意到同样问题的人。至于可能的解决方案,我也读了一些,我已经全部实现了,没有结果

在此,我添加了一些在我的案例中失败的建议补救措施的简短列表:

os.environ['PYTHONHASHSEED'] = '0'

np.random.seed(0)

tf.set_random_seed(0)

rn.seed(0)

tf.reset_default_graph()

session_conf = tf.ConfigProto(
    intra_op_parallelism_threads=1,
    inter_op_parallelism_threads=1
)

sess = tf.Session(graph=tf.get_default_graph(), config=session_conf)
有机会解决这个问题吗?遗憾的是,像TensorFlow这样的优秀工具无法保证可重复性

我正在使用以下工具:

自定义代码:不,它是中的代码

系统:苹果

操作系统:Mac OsX 10.13

TensorFlow版本:1.3.0

Python版本:3.6.3

GPU型号:AMD FirePro D700(实际上,有两个这样的GPU)

多谢各位

致意

伊万诺德法尔科