Я хочу получить повторяемые результаты при обучении модели тензорного потока.Я посмотрел, как это сделать.Код, который я использовал, выглядит следующим образом:
os.environ['PYTHONHASHSEED']='0'
np.random.seed(66)
rn.seed(66)
tf.set_random_seed(66)
tf.random.set_random_seed(66)
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)
Я обучил модель и получил следующие результаты:
Epoch 1/7
- 20s - loss: 0.6240 - acc: 0.6862 - val_loss: 0.2289 - val_acc: 0.9333
Epoch 2/7
- 10s - loss: 0.2085 - acc: 0.9312 - val_loss: 0.1753 - val_acc: 0.9667
Epoch 3/7
- 10s - loss: 0.1124 - acc: 0.9675 - val_loss: 0.1626 - val_acc: 0.9167
Epoch 4/7
- 10s - loss: 0.0712 - acc: 0.9863 - val_loss: 0.1223 - val_acc: 0.9667
Epoch 5/7
- 10s - loss: 0.0439 - acc: 0.9950 - val_loss: 0.1187 - val_acc: 0.9667
Epoch 6/7
- 10s - loss: 0.0338 - acc: 0.9975 - val_loss: 0.1067 - val_acc: 0.9667
Epoch 7/7
- 10s - loss: 0.0264 - acc: 0.9975 - val_loss: 0.1074 - val_acc: 0.9667
Я перезапустил ядро и очистил все выходные данные, а затем снова переобучился.Результаты:
Epoch 1/7
- 20s - loss: 0.6240 - acc: 0.6862 - val_loss: 0.2289 - val_acc: 0.9333
Epoch 2/7
- 10s - loss: 0.2086 - acc: 0.9312 - val_loss: 0.1751 - val_acc: 0.9667
Epoch 3/7
- 10s - loss: 0.1125 - acc: 0.9688 - val_loss: 0.1629 - val_acc: 0.9333
Epoch 4/7
- 10s - loss: 0.0710 - acc: 0.9875 - val_loss: 0.1244 - val_acc: 0.9667
Epoch 5/7
- 10s - loss: 0.0440 - acc: 0.9925 - val_loss: 0.1264 - val_acc: 0.9667
Epoch 6/7
- 10s - loss: 0.0343 - acc: 0.9975 - val_loss: 0.1083 - val_acc: 0.9667
Epoch 7/7
- 10s - loss: 0.0258 - acc: 1.0000 - val_loss: 0.1147 - val_acc: 0.9667
Различия невелики, но кто-нибудь знает, почему они не совпадают?