Tensorflow - основная разница в потерях между машинами

Я написал вариационный автокодировщик в Keras, используя Tensorflow в качестве бэкэнда. В качестве оптимизатора я использую Adam со скоростью обучения 1e-4 и размером пакета 16. Когда я тренирую сеть на процессоре Macbook (Intel Core i7), значение потерь после одной эпохи (~ 5000 мини-пакетов) в 2 раза меньше. чем после первой эпохи на другой машине под управлением Ubuntu. Для другой машины я получаю тот же результат как на CPU, так и на GPU (Intel Xeon E5-1630 и Nvidia GeForce GTX 1080). Python и библиотеки, которые я использую, имеют одинаковый номер версии. Обе машины используют 32-битные числа с плавающей запятой. Если я использую другой оптимизатор (например, rmsprop), значительная разница между машинами все равно сохраняется. Я устанавливаю np.random.seed, чтобы исключить случайность.

Моя сеть выводит логиты (у меня линейная активация в выходном слое), а функция потерь равна tf.nn.sigmoid_cross_entropy_with_logits. Вдобавок к этому один слой имеет регуляризатор (расхождение KL между его активацией, которые являются параметрами гауссова распределения, и гауссовым нулевым средним).

Что могло быть причиной большой разницы в стоимости убытков?


person datwelk    schedule 12.06.2017    source источник
comment
Можете ли вы более подробно рассказать о своих данных и истории обучения после первой эпохи?   -  person petezurich    schedule 12.06.2017
comment
Вы также устанавливаете начальное число для очереди перетасовки данных?   -  person Alexandre Passos    schedule 13.06.2017


Ответы (1)


Набор данных, который я использовал, представлял собой единственный файл .mat, созданный с использованием savemat scipy и загруженный с помощью loadmat. Он был создан на моем Macbook и распространен через scp на другие машины. Оказалось, что проблема была в этом .mat файле (хотя я не знаю, в чем именно). Я перестал работать с файлом .mat, и теперь все в порядке.

person datwelk    schedule 13.06.2017
comment
Когда вы говорите один и тот же результат, вы имеете в виду, что точные веса получаются, когда вы тренируете его на CPU и на GPU? - person jkschin; 14.06.2017