Схема глобальной нумерации слоев tf.keras.layers.BatchNormalization кажется неправильной стратегией - PullRequest
0 голосов
/ 16 января 2020

Я обучил модель в Tensorflow и использовал 36 слоев свертки, каждый из которых содержал слой нормализации партии. Что я не понимаю, так это почему нумерация уровня нормализации партии является глобальной, а не начинается с 0 для каждой области имен? Я не собираюсь создавать слои с одинаковым именем_области в одном и том же порядке в каждой модели, иногда я вставляю несколько слоев перед определенным слоем и хотел бы восстановить параметры нормы партии из контрольной точки другой модели, но это невозможно, поскольку Слой пакетной нормы пронумерован глобально, и, поскольку я создал этот слой на шаг, численно превышающий шаг, на котором я создал тот же слой в другой модели, имена будут другими, и я не смогу восстановить параметры в традиционной путь.

Информация о системе

  • Платформа и дистрибутив ОС (например, Linux Ubuntu 16.04): Linux Mint
  • TensorFlow установлен из (источника или двоичного файла): tf-gpu anaconda
  • Версия TensorFlow: tf.2.0.0
  • Python версия: 3.7.4

Вот список параметров пакетной нормы в моей исходной модели, обратите внимание на слой: batch_normalization_18, это имя batch_normalization_18, потому что это 19-й (18 в нумерации, так как индекс начинается с 0) созданный слой батчнорм.

[ Train / vgg_deconv_RGB_LSTM / Block1_conv1 / batch_normalization / gamma: 0 ',' Train / vgg_deconv_RGB_LSTM / Block1_conv1 / batch_normalization / beta: 0 ',' Train / vgg_deconv_RGB_LST_MB__M__B_L_B__M__B__R___B___R___B___R_____} / moving_variance: 0 ',' Train / vgg_deconv_RGB_LSTM / Block1_conv2 / batch_normalization_1 / gamma: 0 ',' Train / vgg_deconv_RGB_LSTM / Block1_conv2 / batch_normalization_1 / beta: 0 ',' T дождь / vgg_deconv_RGB_LSTM / Block1_conv2 / batch_normalization_1 / moving_mean: 0' , 'Поезд / vgg_deconv_RGB_LSTM / Block1_conv2 / batch_normalization_1 / moving_variance: 0', 'Поезд / vgg_deconv_RGB_LSTM / Block2_conv1 / batch_normalization_2 / гамма: 0', «Поезд / vgg_deconv_RGB_LSTM / Block2_conv1 / batch_normalization_2 / бета: 0 ',' Train / vgg_deconv_RGB_LSTM / Block2_conv1 / batch_normalization_2 / moving_mean: 0 ',' Train / vgg_deconv_RGB_LSTM / Block2_conv1 / batch_normalization_2 / moving_variance: 0 ',' Train / vgg_mac_mal_con_1 vgg_deconv_RGB_LSTM / Block2_conv2 / batch_normalization_3 / бета: 0' , 'Поезд / vgg_deconv_RGB_LSTM / Block2_conv2 / batch_normalization_3 / moving_mean: 0', 'Поезд / vgg_deconv_RGB_LSTM / Block2_conv2 / batch_normalization_3 / moving_variance: 0', «Поезд / vgg_deconv_RGB_LSTM / Block3_conv1 / batch_normalization_4 / гамма: 0 ',' Train / vgg_deconv_RGB_LSTM / Block3_conv1 / batch_normalization_4 / beta: 0 ',' Train / vgg_deconv_RGB_LSTM / Block3_conv1 / batch_normalization_4 / moving_mean: 0 ',' Train / vgg_deco nv_RGB_LSTM / Block3_conv1 / batch_normalization_4 / moving_variance: 0' , 'Поезд / vgg_deconv_RGB_LSTM / Block3_conv2 / batch_normalization_5 / гамма: 0', 'Поезд / vgg_deconv_RGB_LSTM / Block3_conv2 / batch_normalization_5 / бета: 0', «Поезд / vgg_deconv_RGB_LSTM / Block3_conv2 / batch_normalization_5 / moving_mean: 0 ',' Train / vgg_deconv_RGB_LSTM / Block3_conv2 / batch_normalization_5 / moving_variance: 0 ',' Train / vgg_deconv_RGB_LSTM / Block3_conv3 / batch_normalization_6 / gamma: 0 ',' Train / vgg_decon_set_M_L_M_L_M_R__M_R__M_R__M_R__R_R_M_R_R_M_RV_R_M_R_R_V_R_L_M_R_L Block3_conv3 / batch_normalization_6 / moving_mean: 0 ',' Train / vgg_deconv_RGB_LSTM / Block3_conv3 / batch_normalization_6 / moving_variance: 0 ',' Train / vgg_deconv_RGB_LSTM / Block3_conv4 / batch_const; , Train / vgg_deconv_RGB_LSTM / Block3_conv4 / batch_normalization_7 / moving_mean: 0 ',' Train / vgg_deconv_RGB_LSTM / Block3_conv4 / batch_normalization_7 / moving_variance: 0 ',' Train / vgg_deconv_RGB_ TM / Block4_conv1 / batch_normalization_8 / gamma: 0 ',' Train / vgg_deconv_RGB_LSTM / Block4_conv1 / batch_normalization_8 / beta: 0 ', 'Поезд / vgg_deconv_RGB_LSTM / Block4_conv1 / batch_normalization_8 / moving_mean: 0', 'Поезд / vgg_deconv_RGB_LSTM / Block4_conv1 / batch_normalization_8 / moving_variance: 0', 'Поезд / vgg_deconv_RGB_LSTM / Block4_conv2 / batch_normalization_9 / гамма: 0', «Поезд / vgg_deconv_RGB_LSTM / Block4_conv2 / batch_normalization_9 / beta: 0 ',' Train / vgg_deconv_RGB_LSTM / Block4_conv2 / batch_normalization_9 / moving_mean: 0 ',' Train / vgg_deconv_RGB_LSTM / Block4_conv2 / batch_normalization_9 / moving_variance: 0 ',' Train / vam_ma_b________________-__объявления_объекта_объекта / vgg_deconv_RGB_LSTM / Block4_conv3 / batch_normalization_10 / бета: 0' , 'Поезд / vgg_deconv_RGB_LSTM / Block4_conv3 / batch_normalization_10 / moving_mean: 0', 'Поезд / vgg_deconv_RGB_LSTM / Block4_conv3 / batch_normalization_10 / moving_variance: 0', «Поезд / vgg_deconv_RGB_LSTM / Block4_conv4 / batch_normalization_11 / гамма : 0 ',' Train / vgg_deconv_RGB_LSTM / Block4_conv4 / batch_normalization_11 / beta: 0 ',' Train / vgg_deconv_RGB_LSTM / Block4_conv4 / batch_normalization_11 / moving_mean: 0 ',' Train / Vgg_deconv_RGB_LSTM / Block4_conv4 / batch_normalization_11 / moving_variance: 0' , 'Поезд / vgg_deconv_RGB_LSTM / Block5_conv1 / batch_normalization_12 / гамма: 0', 'Поезд / vgg_deconv_RGB_LSTM / Block5_conv1 / batch_normalization_12 / бета: 0', «Поезд / vgg_deconv_RGB_LSTM / Block5_conv1 / batch_normalization_12 / moving_mean : 0 ',' Train / vgg_deconv_RGB_LSTM / Block5_conv1 / batch_normalization_12 / moving_variance: 0 ',' Train / vgg_deconv_RGB_LSTM / Block5_conv2 / batch_normalization_13 / gamma: 0 ',' Train / vgg_13_L_M_L_M_R__M_L_M_R__M_R__M_R__V__R__M_R__V__R__R_V__R__R_L_R_L / Block5_conv2 / batch_normalization_13 / moving_mean: 0 ',' Train / vgg_deconv_RGB_LSTM / Block5_conv2 / batch_normalization_13 / moving_variance: 0 ',' Train / vgg_deconv_RGB_LSTM / Block5_conv / / ',' Train / vgg_deconv_RGB_LSTM / Block5_conv3 / batch_normalization_14 / moving_mean: 0 ',' Train / vgg_deconv_RGB_LSTM / Block5_conv3 / batch_normalization_14 / moving_variance: 0 ',' T дождь / vgg_deconv_RGB_LSTM / Block5_conv4 / batch_normalization_15 / гамма: 0' , 'Поезд / vgg_deconv_RGB_LSTM / Block5_conv4 / batch_normalization_15 / бета: 0', 'Поезд / vgg_deconv_RGB_LSTM / Block5_conv4 / batch_normalization_15 / moving_mean: 0', «Поезд / vgg_deconv_RGB_LSTM / Block5_conv4 / batch_normalization_15 / Moving_variance: 0 ',' Train / vgg_deconv_RGB_LSTM / Block6_conv1 / batch_normalization_16 / gamma: 0 ',' Train / vgg_deconv_RGB_LSTM / Block6_conv1 / batch_normalization_16 / beta: 0 ',' Train / vgg_6_con__conf_1____________w______w_________R_M vgg_deconv_RGB_LSTM / Block6_conv1 / batch_normalization_16 / moving_variance: 0' , 'Поезд / vgg_deconv_RGB_LSTM / Block6_conv2 / batch_normalization_17 / гамма: 0', 'Поезд / vgg_deconv_RGB_LSTM / Block6_conv2 / batch_normalization_17 / бета: 0', «Поезд / vgg_deconv_RGB_LSTM / Block6_conv2 / batch_normalization_17 / moving_mean: 0 ',' Train / vgg_deconv_RGB_LSTM / Block6_conv2 / batch_normalization_17 / moving_variance: 0 ',' Train / vgg_deconv_RGB_LSTM / Dlock6_conv1 / batch_normalization_18 / gamma: 0 ',' Train / v gg_deconv_RGB_LSTM / Dlock6_conv1 / batch_normalization_18 / бета: 0' , 'Поезд / vgg_deconv_RGB_LSTM / Dlock6_conv1 / batch_normalization_18 / moving_mean: 0', 'Поезд / vgg_deconv_RGB_LSTM / Dlock6_conv1 / batch_normalization_18 / moving_variance: 0', «Поезд / vgg_deconv_RGB_LSTM / Dlock6_conv2 / batch_normalization_19 / гамма: 0 ',' Train / vgg_deconv_RGB_LSTM / Dlock6_conv2 / batch_normalization_19 / beta: 0 ',' Train / vgg_deconv_RGB_LSTM / Dlock6_conv2 / batch_normalization_19 / moving_mean: 0 ',' Train / vgg_decons_M_R_W_M_R__M_R__M_R__M_R__RV__M_R_V__RV Dlock5_conv1 / batch_normalization_20 / gamma: 0 ',' Train / vgg_deconv_RGB_LSTM / Dlock5_conv1 / batch_normalization_20 / beta: 0 ',' Train / vgg_deconv_RGB_LSTM / Dlock5_conv1 / транспортная_окладка / перемещаемая_объект , 'Train / vgg_deconv_RGB_LSTM / Dlock5_conv2 / batch_normalization_21 / gamma: 0', 'Поезд / vgg_deconv_RGB_LSTM / Dlock5_conv2 / batch_normalization_21 / бета: 0', 'Поезд / vgg_deconv_RGB_LSTM / Dlock5_conv2 / batch_normalization_21 / moving_mean: 0', 'Поезд / vgg_deconv_RGB_LSTM / Dlock5_conv2 / batch_normalization_21 / moving_variance: 0', «Поезд / vgg_deconv_RGB_LSTM / Dlock5_conv3 / batch_normalization_22 / gamma: 0 ',' Train / vgg_deconv_RGB_LSTM / Dlock5_conv3 / batch_normalization_22 / beta: 0 ',' Train / vgg_deconv_RGB_LSTM / Dlock5_conv3 / batch_normalization_22 / moving_mean: 0 ', Train / v__j_0_0_0_0_L_V_2 *

Теперь я создал другую модель, в которой я создаю те же слои, но я вставляю два слоя перед этим 19-м слоем, и, следовательно, именно по этой причине ему будет присвоено другое имя.

['Train / vgg_deconv_RGB_LSTM / Dlock6_conv1 / batch_normalization_20 / beta: 0', 'Train / vgg_deconv_RGB_LSTM / Dlock6_conv1 / batch_normalization_20 / gamma: 0', Train / v_____M_L_M_R__M_D_W_D_W_W_R_M_L_M_R__V__R_D Поезд / vgg_deconv_RGB_LSTM / Dlock6_conv1 / batch_normalization_20 / moving_variance: 0' , 'Поезд / vgg_deconv_RGB_LSTM / Dlock6_conv2 / batch_normalization_21 / бета: 0', 'Поезд / vgg_deconv_RGB_LSTM / Dlock6_conv2 / batch_normalization_21 / гамма: 0', «Поезд / vgg_deconv_RGB_LSTM / Dlock6_conv2 / batch_normalization_21 / Moving_mean: 0 ',' Train / vgg_deconv_RGB_LSTM / Dlock6_conv2 / batch_normalization_21 / moving_variance: 0 ',' Train / vgg_deconv_RGB_LSTM / extra_conv1_first / batch_normalization_18 / beta: extra_st_t / vgg_deconv_RGB_LSTM / extra_conv1_first / batch_normalization_18 / moving_mean: 0 ',' Train / vgg_deconv_RGB_LSTM / extra_conv1_first / batch_normalization_18 / moving_variance: 0 ',' Train / vgg_Lconv_R_ / batch_normalization_19 / beta: 0 ',' Train / vgg_deconv_RGB_LSTM / extra_conv2_second / batch_normalization_19 / gamma: 0 ',' Train / vgg_deconv_RGB_LSTM / extra_conv2_second / batch_nor__name________________0_0_0_0_0_0_0_0_0_0_0_0_0_0 /___in__w_

Как видите, теперь имя batch_normalization_18 присвоено другому слою, а моему исходному слою, которому в предыдущей модели было присвоено batch_normalization_18, присвоено имя batch_normalization_20, хотя все переменные scope и name scope одни и те же.

Разве это не должно быть похоже на местную нумерацию для каждого name_scope? Какой смысл в глобальной нумерации?

Пожалуйста, дайте мне знать, если потребуется дополнительная информация.

...