Как тензорный поток получает хорошие результаты без нормализации? - PullRequest
0 голосов
/ 23 октября 2019

У меня была проблема с реализацией Y = X1 + X2 + X3 картирования с использованием нейронной сети. Поэтому мне пришлось использовать один нейрон в слое 1 (Y), 4 нейрона в слое 2 (скрытый слой) и 3 нейрона в слое 3 (X1, X2 и X3). Я реализовал это, используя тензор потока, и вот так выглядит моя модель:

input1 = Input(shape=(1,))
l1 = Dense(4, activation='relu')(input1)
out = Dense(3)(l1)

model = Model(inputs=input1, outputs=[out])
model.compile(
    optimizer='adam',
    loss=['mean_squared_error']
    )

history = model.fit(X, [Y], epochs=500, batch_size=64)

Результаты точные. Когда я пытаюсь сделать то же самое, используя barebone Python (без оптимизатора), я получаю неопределенные результаты. Я попытался нормализовать тренировочные данные и обнаружил, что результат немного приблизился к ожидаемому, но мне все еще интересно, как Tensorflow API получил эти результаты без нормализации, и если он действительно нормализовал данные, чего мне не хватало в базовой модели (обсуждалосьздесь Нейронная сеть не может выучить .

...