Чтобы работать над экспериментом для моей диссертации и на примере CNN в TF я создал еще одну небольшую глубокую нейронную сеть в Tensorflow (довольно как и в примере, но в 1d вместо Mnist).Тензорный поток: NN не тренируется при использовании random_normal и random_uniform данных в качестве инициализаторов веса
Дело в том, что данный TF данный пример инициализирует все весовые переменные с помощью tf.truncated_normal data, что заставляет NN обучать мои данные (уменьшение потерь + увеличение точности). Однако, поскольку я пытаюсь подражать нейронной сети из научной статьи, мне пришлось инициализировать весы Свертольного слоя со значениями, взятыми из нормального распределения (и я использовал tf.random_normal с stddev 0,1 для этого), и полностью связанные весы слоев со значениями равномерного распределения (где я использовал tf.random_uniform). Результат был очень плохим, так как я думаю и чувствую, что потеря и точность просто колеблются между небольшими цифрами (точность между 8% и 14% и потерей от 2,51 до 2,54), но не уменьшаются и не растут.
Поскольку я мало нового в этом, и я не очень хорошо знаю, как работает каркас, я спросил, и человек сказал мне, что за каждую итерацию переменные (которые я использую как инициализаторы) всегда перезапускается (и что это не так, как с данными tf.truncated_normal), и поэтому мой нейрон с этими двумя типами инициализаций никогда не учится. Если это так, то может понравиться кто-нибудь сказать мне, как я мог бы сделать эти значения только для использования в качестве инициализаторах и не перебирать
Мой код можно найти здесь: https://github.com/dialgop/small_deep_nn/blob/master/Cnn_Model_Martin.ipynb
Спасибо большое всем, кто может помочь me