Tensorflow 1.8.0:宽深模型结果不稳定,随机种子不起作用

我使用Tensorflow 1.8.0训练了一个宽深模型。我的测试和训练数据集是之前分开的文件。我在tf.contrib.learn.DNNLinearCombinedClassifier之前使用了tf.set_random_seed(1234),如下所示 –

tf.set_random_seed(1234)import tempfilemodel_dir = tempfile.mkdtemp()m = tf.contrib.learn.DNNLinearCombinedClassifier(model_dir=model_dir,                                                 linear_feature_columns=wide_columns,                                                 dnn_feature_columns=deep_columns,                                                 dnn_hidden_units=[100, 50])

它显示了以下日志 –

INFO:tensorflow:使用默认配置。INFO:tensorflow:使用配置: {'_task_type': None, '_task_id': 0, '_cluster_spec': <tensorflow.python.training.server_lib.ClusterSpec object at 0x7f394b585c18>, '_master': '', '_num_ps_replicas': 0, '_num_worker_replicas': 0, '_environment': 'local', '_is_chief': True, '_evaluation_master': '', '_train_distribute': None, '_tf_config': gpu_options {  per_process_gpu_memory_fraction: 1.0}, '_tf_random_seed': None, '_save_summary_steps': 100, '_save_checkpoints_secs': 600, '_log_step_count_steps': 100, '_session_config': None, '_save_checkpoints_steps': None, '_keep_checkpoint_max': 5, '_keep_checkpoint_every_n_hours': 10000, '_model_dir': '/tmp/tmpxka6vy6t'}

从日志中可以看出,随机种子没有被应用。

每次运行脚本时,我得到的准确率结果都不同。

如何使结果稳定?为什么随机种子不起作用?


回答:

经过一番努力,我终于找到了解决方案。需要在DNNLinearCombinedClassifier中作为config的参数设置tf_random_seed。加入config=tf.contrib.learn.RunConfig(tf_random_seed=123)这一行就可以解决问题。它设置了随机种子,使结果可重现。

代码应该如下所示 –

# 将宽模型和深模型结合为一个model_dir = tempfile.mkdtemp()m = tf.contrib.learn.DNNLinearCombinedClassifier(model_dir=model_dir,                                                 linear_feature_columns=wide_columns,                                                 dnn_feature_columns=deep_columns,                                                 dnn_hidden_units=[100, 50],                                                 config=tf.contrib.learn.RunConfig(tf_random_seed=123))

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注