#python #python-3.x #tensorflow #tensorflow2.0
#python #python-3.x #тензорный поток #tensorflow2.0
Вопрос:
Я использую TensorFlow 2.3 и у меня возникла проблема с установленными библиотеками графического процессора, поэтому мои скрипты не запускались. Проблема здесь не в этом, вместо этого странная вещь, которая произошла, заключалась в том, что скрипт не выполнялся, когда определенная функция TensorFlow присутствовала внутри скрипта. Например:
# test.py
print('The script has started')
import tensorflow as tf
model = tf.keras.Model(...)
model.fit()
Всякий раз, когда fit()
функция присутствовала, сценарий не выполнялся, даже оператор печати вверху; вместо этого ошибки просто выводились на консоль. Тем не менее, как только я удалил fit()
функцию, скрипт работал полностью нормально. Как TensorFlow узнает, что fit()
функция присутствует в коде? Обычно я ожидаю, что The script has started
будет выведено на консоль, а затем будут выдаваться ошибки. Чего мне здесь не хватает?
Комментарии:
1. Можете ли вы попробовать еще раз с
print('The script has started', flush=True)
? Возможно, буфер печати еще не был очищен.2. Боже мой, это решило проблему! Раньше я думал, что схожу с ума, даже не думал о том, что она не сбрасывается. Спасибо!! Опубликуйте это в качестве ответа, и я отмечу как решаемый, @jakub
Ответ №1:
Буфер, который sys.stdout
(файл по умолчанию для print()
) использует, скорее всего, не сбрасывается перед model.fit
запуском. Вы можете принудительно очистить этот буфер с помощью flush=True
.
print('The script has started', flush=True)