Это в основном спекуляция, когда я не вижу ваш код, но из того, что я прочитал, я считаю, что знаю, что вы делаете неправильно.
При использовании Tensorflow внутри ноутбука вы должны быть особенно осторожны, чтобы не перепутать код Building с кодом ознакомительный код. Вам нужно и нужно только определить вычислительный граф в начале. Выполнение функций, которые снова определяют граф, просто создаст другой подграф (это, вероятно, также относится к вашей функции, которая определяет заполнитель и переменные). Операция tf.global_variables_initializer также должна выполняться только один раз.
Крайне важно понимать, что граф Tensorflow не может динамически обрабатываться ноутбуком, потому что python фактически не контролирует переменные Tensorflow. В данном случае Python - это просто мета-язык для определения графа и запуска вычислений.
Таким образом, в блокноте после инициализации графа точно один раз вы можете вызывать только те функции, которые обертывают граф Tensorflow оценочный код, а не код построения графика динамически без сброса ядра. Примерами таких методов, которые только оценивают существующий граф, являются session.run , другие tf.Session методы или аналогичные методы оценки, такие как tenor.eval .
Итак, чтобы прояснить ситуацию, нет способа изменить уже построенный граф, не перестраивая его, который в этом случае требует перезагрузки ядра, если только вы не строите новые подграфы снова и снова (и инициализируете новые переменные), но это в какой-то момент будет использовать всю доступную память.