tenorsflow: tf.set_random_seed () тот же код, но получил разные результаты - PullRequest
0 голосов
/ 27 сентября 2019

Короче говоря, в тензорном потоке, кроме tf.set_random_seed (), есть ли какой-либо другой конфиг, который я должен установить для воспроизведения того же результата?нет кода в моем коде.

Длинная версия: я тренирую модель с помощью horovod и хочу воспроизвести результаты для отладки.Я установил tf.set_random_seed (1) перед построением графика.Все операции выполняются в тензорном потоке, без всяких ошибок.

И я просто повторно запускаю обучающий скрипт несколько раз, код не был изменен.

Как я понимаю, они должны давать одинаковые результаты, посколькуграфик строится в том же порядке, а random_seed устанавливается одинаково.Порядок session.run не вызовет различий, не говоря уже о том, что я не изменил код.

Однако я все же получил разные результаты для одного и того же кода при нескольких прогонах.

В частности, я вижу, что входное изображение читается в том же порядке, и шаг 'tf.image.random_flip_left_right' производит случайное отражение с тем же начальным числом.

Но я проверяю tf.image.random_flip_left_right по следующему коду, который дает те же результаты.Так что в этой функции нет ошибки.Он принял глобальное tf random_seed и дал те же результаты.

import tensorflow as tf                                                                                                              
tf.set_random_seed(0)
img_raw =tf.read_file('test.jpg')
image = tf.image.decode_jpeg(img_raw,channels=3,dct_method='INTEGER_ACCURATE')
image = tf.image.random_flip_left_right(image)

sess=tf.Session()
print(sess.run(image))

Как это может быть случайное отражение с тем же начальным числом и графиком?Любое предложение будет оценено.

1 Ответ

0 голосов
/ 27 сентября 2019

Можете ли вы установить начальное значение в tf.image.random_flip_left_right(image, seed = 0) и проверить?

РЕДАКТИРОВАТЬ

хорошо, вы сказали, что вы не используете numpy в коде, но TF использует егодля некоторых внутренних задач.Итак, можете ли вы снова попробовать и на этот раз починить нудистое семя тоже.

import numpy as np
from numpy.random import seed
seed(0)

Если это тоже не сработает, то, возможно, проблема в Horovod, как об этом говорили здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...