Я некоторое время работаю с tenorflow и jupyter, но я впервые столкнулся с этой проблемой. У меня есть модель NN, которая имеет 6 слоев, и я получаю экземпляр этой модели, вызывая функцию «классификатор»
def classifier(input_repr,prob,reuse=None):
e_l1=tf.layers.dense(inputs=input_repr,units=512,activation=tf.nn.leaky_relu)
e_l1=tf.nn.dropout(e_l1,prob)
e_l2=tf.layers.dense(inputs=e_l1,units=256,activation=tf.nn.leaky_relu)
e_l2=tf.nn.dropout(e_l2,prob)
e_l3=tf.layers.dense(inputs=e_l2,units=128,activation=tf.nn.leaky_relu)
e_l3=tf.nn.dropout(e_l3,prob)
e_l4=tf.layers.dense(inputs=e_l3,units=64,activation=tf.nn.leaky_relu)
e_l4=tf.nn.dropout(e_l4,prob)
e_l5=tf.layers.dense(inputs=e_l4,units=32,activation=tf.nn.leaky_relu)
e_l5=tf.nn.dropout(e_l5,prob)
d_l3=tf.layers.dense(inputs=e_l5,units=1,activation=tf.nn.leaky_relu)
return d_l3
У меня также есть функция для визуализации сводки модели как
def model_summary():
model_vars = tf.trainable_variables()
slim.model_analyzer.analyze_vars(model_vars, print_info=True)
print(model_summary())
И я получаю экземпляр модели как,
model_output=classifier(input_repr,prob)
Проблема в том, что всякий раз, когда я вызываю это, а затем я вызываю model_summary (), слои укладываются в предыдущую модель. Например, если при первом вызове «classifier ()» model_Summary () показывает 5 слоев, но при повторном вызове показывает 10 слоев и так далее. Я всегда инициализирую снова перед вызовом метода classifier (), но это происходит снова и снова. Я не знаю, если это какая-то проблема с Jupyter. Единственный известный мне способ решения этой проблемы - полностью перезапустить ядро, что приводит к потере переменных.