TensorFlow, "модуль" не имеет атрибута "placeholder"
Я пытаюсь использовать tensorflow в течение двух дней, устанавливая и переустанавливая его снова и снова в python2.7 и 3.4. Независимо от того, что я делаю, я получаю это сообщение об ошибке при попытке использовать tensorflow.placeholder()
Это очень шаблонный код:
tf_in = tf.placeholder("float", [None, A]) # Features
Независимо от того, что я делаю, я всегда получаю след назад:
Traceback (most recent call last):
File "/home/willim/PycharmProjects/tensorflow/tensorflow.py", line 2, in <module>
import tensorflow as tf
File "/home/willim/PycharmProjects/tensorflow/tensorflow.py", line 53, in <module>
tf_in = tf.placeholder("float", [None, A]) # Features
AttributeError: 'module' object has no attribute 'placeholder'
Кто-нибудь знает, как я могу это исправить?
Ответы
Ответ 1
Это случилось со мной тоже. У меня был тензор потока, и он работал довольно хорошо, но когда я установил тензор потока-gpu вдоль предыдущего тензор потока, возникла эта ошибка, тогда я выполнил эти 3 шага, и он начал работать без проблем:
- Я удалил из Anaconda пакеты tenorflow-gpu, tenorflow, база тензорного потока. С помощью. Конда удалить Тензор-GPU Тензор-поток Тензор-база
- переустановил тензор потока. Используя conda, установите tenorflow
Ответ 2
Решение. Не используйте "тензорный поток" в качестве имени файла.
Обратите внимание, что в качестве имени файла используется shadoworflow.py. И я думаю, вы пишете код вроде:
import tensorflow as tf
Затем вы фактически импортируете файл script "tensorflow.py", который находится под вашим текущим рабочим каталогом, а не "реальный" модуль тензорного потока из Google.
Ниже приведен порядок поиска модуля при импорте:
-
Каталог, содержащий вход script (или текущий каталог, если не указан файл).
-
PYTHONPATH (список имен каталогов, с тем же синтаксисом, что и переменная оболочки PATH).
-
Значение, зависящее от установки.
Ответ 3
Если у вас появляется эта ошибка после обновления до TensorFlow 2.0, вы все равно можете использовать API 1.X, заменив:
import tensorflow as tf
по
import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()
Ответ 4
Похоже, что .placeholder(),.reset_default_graph() и другие были удалены с версией 2. Я столкнулся с этой проблемой, используя образ Docker: tensorflow/tensorflow:latest-gpu-py3
, который автоматически вытягивает последнюю версию. Я работал в версии 1.13.1, автоматически "обновился до 2" и начал получать сообщения об ошибках. Я исправил это, уточнив свое изображение: tensorflow/tensorflow:1.13.1-gpu-py3
.
Более подробную информацию можно найти здесь: https://www.tensorflow.org/alpha/guide/effective_tf2
Ответ 5
Столкнулась с той же проблемой на Ubuntu 16LTS, когда поток тензора был установлен поверх существующей установки python.
Обход проблемы:
1.) Удаление тензорного потока из pip и pip3
sudo pip удалить тензор
sudo pip3 удалить тензор поток
2.) Удалите python и python3
sudo apt-get удалить python-dev python3-dev python-pip python3-pip
3.) Установите только одну версию python (я использовал python 3)
sudo apt-get install python3-dev python3-pip
4.) Установите tenorflow на python3
sudo pip3 install --upprade pip
для тензора без GPU, выполните эту команду
sudo pip3 install --размерный тензорный поток
для тензодатчика GPU, выполните команду ниже
sudo pip3 install --upgrade tenorflow-gpu
Предложите не устанавливать GPU и ванильную версию тензорного потока
Ответ 6
Это может быть опечатка, если вы неправильно написали слово- placeholder
. В моем случае я ошибочно placehoder
его как placehoder
и получил ошибку, подобную этой: AttributeError: 'module' object has no attribute 'placehoder'
Ответ 7
Я тоже получил такую же ошибку. Может быть из-за версии tenorflow.
После установки tenorflow 1.4.0 я получил облегчение от ошибки.
pip install tensorflow==1.4.0
Ответ 8
Если вы используете TensorFlow 2.0, то код, разработанный для tf 1.x, может работать. Либо вы можете перейти по ссылке: https://www.tensorflow.org/guide/migrate
или вы можете установить предыдущую версию TF
pip3 install tenorflow == версия
Ответ 9
Так как вы не можете использовать местозаполнитель вражеской tenensflow2.0, вам нужно использовать tenflow1 *, или вам нужно изменить код, чтобы исправить tensflow2.0