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 шага, и он начал работать без проблем:

  1. Я удалил из Anaconda пакеты tenorflow-gpu, tenorflow, база тензорного потока. С помощью. Конда удалить Тензор-GPU Тензор-поток Тензор-база
  2. переустановил тензор потока. Используя 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