programing

TensorFlow, "'module' 개체에 'placeholder' 속성이 없습니다."

oldcodes 2023. 9. 26. 22:31
반응형

TensorFlow, "'module' 개체에 'placeholder' 속성이 없습니다."

저는 python 2.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'

이걸 어떻게 고치는지 아는 사람?

TensorFlow 2.0으로 업그레이드한 후에도 이 오류가 발생하면 다음을 대체하여 1.X API를 사용할 수 있습니다.

import tensorflow as tf

타고

import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()

해결책:"tensorflow"를 파일 이름으로 사용하지 마십시오.

tensorflow.py 을 파일 이름으로 사용하고 있습니다.그리고 코드를 쓰는군요.

import tensorflow as tf

그러면 Google에서 "실제" 텐서플로우 모듈이 아니라 현재 작업 디렉토리 아래에 있는 "tensorflow.py " 스크립트 파일을 실제로 가져오는 것입니다.

다음은 모듈을 가져올 때 검색되는 순서입니다.

  1. 입력 스크립트를 포함하는 디렉토리(또는 파일이 지정되지 않은 경우 현재 디렉토리).

  2. PYTHONPATH(쉘 변수 PATH와 구문이 동일한 디렉토리 이름 목록).

  3. 설치 종속 기본값입니다.

저도 그런 일이 있었어요.텐서플로우가 있었고 꽤 잘 작동하고 있었습니다만, 이전 텐서플로우와 함께 텐서플로우-gpu를 설치했을 때 이 오류가 발생하여 다음 3단계를 수행했고 문제없이 작동하기 시작했습니다.

  1. Anaconda에서 tensorflow-gpu, tensorflow, tensorflow-base 패키지를 제거했습니다.사용.

conda remove tensorflow-gpu tensorflow tensorflow-base

  1. 텐서 플로우를 다시 설치했습니다.사용.

conda install tensorflow

에.tf.placeholder(shape=[None, 2], dtype=tf.float32)>tf.compat.v1.placeholder(shape=[None, 2], dtype=tf.float32)하지 않도록 설정하지 .v2우

import tensorflow.compat.v1 as tf

tf.disable_v2_behavior() 

작동합니다. 저는 파이썬 3.7과 텐서플로우 2.0을 사용하고 있습니다.

자리 표시자 (), .reset_default_graph () 등이 버전 2 에서 제거된 것으로 나타납니다. image:했습니다를(를) 하여 이 했습니다.tensorflow/tensorflow:latest-gpu-py3자동으로 최신 버전을 불러옵니다.에서 일하고 로 업그레이드' 1.13.1으로 '2드'했습니다.를 좀 더 해서 고쳤습니다.tensorflow/tensorflow:1.13.1-gpu-py3.

자세한 정보는 여기에서 확인할 수 있습니다: https://www.tensorflow.org/alpha/guide/effective_tf2

tensorflow=2.0에서 아래 스트라이크 아웃된 문을 사용하지 마십시오.

i ̶p ̶p ̶p ̶p ̶p ̶p ̶f ̶f ̶f ̶f ̶ ̶f ̶f ̶t ̶f ̶ ̶f.̶ p ̶ l ̶ a ̶ c ̶ e ̶ o ̶ d ̶ e ̶ r ̶ (̶ h ̶ a ̶ p ̶ e ̶ ̶ ̶, ̶ 2 ̶) ̶, ̶ ̶ d ̶ t ̶ y ̶ e ̶ e = ̶ t ̶ f ̶.̶f ̶l ̶o ̶t ̶3 ̶2 ̶)

다음 코드를 사용하여 v2 동작을 사용하지 않도록 설정할 수 있습니다.

이 제품은 제게 딱 맞습니다.

import tensorflow.compat.v1 as tf

tf.disable_v2_behavior()
x = tf.placeholder(shape=[None, 2], dtype=tf.float32)

저도 같은 오류가 발생했습니다.텐서플로우 버전 때문일 수도 있습니다.텐서플로우 1.4.0을 설치한 후 오류를 완화하였습니다.

pip install tensorflow==1.4.0

TensorFlow 2.0을 사용하는 경우 tf 1.x용으로 개발된 일부 코드가 코드화되지 않을 수 있습니다.https://www.tensorflow.org/guide/migrate 링크를 팔로우 할 수 있습니다.

또는 이전 버전의 tf를 pip3 install tensorflow==version으로 설치할 수 있습니다.

TensorFlow 1을 TensorFlow 2로 마이그레이션 코드를 확인하십시오.

다음 코드:

import tensorflow as tf
tf_in = tf.placeholder("float", [None, A]) # Features

TensorFlow 2에서 다음과 같이 마이그레이션해야 합니다.

import tensorflow as tf
import tensorflow.compat.v1 as v1
tf_in = vi.placeholder("float", [None, A]) # Features

새 버전 대신 이전 버전의 텐서플로우 가져오기

[https://inneka.com/ml/tf/tensorflow-module-object-has-no-attribute-placeholder/ ][1]

tf.disable_v2_로 tensorflow. compat.v1을 tf.disable_v2_로 가져옵니다.

여기와 같이 텐서플로 2가 있는 keras 모델을 사용해야 합니다.

import tensorflow as tf
from tensorflow.python.keras.layers import  Input, Embedding, Dot, Reshape, Dense
from tensorflow.python.keras.models import Model

최근 버전 2.0에서는 자리 표시자를 지원하지 않습니다.다음 명령을 사용하여 2.0을 제거했습니다.conda remove tensorflow. 다음 명령을 사용하여 1.15.0을 설치했습니다.conda install -c conda-forge tensorflow=1.15.0. 1.15는 버전 1 시리즈의 최신 버전입니다.원하시는 조건과 조건에 따라 변경 가능합니다.모든 버전을 보려면 다음 명령을 사용합니다.conda search tensorflow. 윈도우의 아나콘다3에서 작동했습니다.

시도해 보기:

pip install tensorflow==1.14

또는 이것(GPU가 있는 경우):

pip install tensorflow-gpu==1.14

텐서플로우 2.0.0+에서 이것을 얻는다면, 코드가 새로운 버전의 텐서플로우와 호환되지 않기 때문일 가능성이 높습니다.

이 문제를 해결하려면 다음을 실행합니다.tf_upgrade_v2 각본을 짜다

tf_upgrade_v2 --infile=YOUR_SCRIPT.py --outfile=YOUR_SCRIPT.py

Ubuntu 16에서 동일한 문제 발생기존 python 설치 위에 tensor flow를 설치했을 때의 LTS.

해결 방법: 1.)pip 및 pip3에서 텐서플로 제거

sudo pip uninstall tensorflow
sudo pip3 uninstall tensorflow

2.) python & python3 제거

sudo apt-get remove python-dev python3-dev python-pip python3-pip

3.) python 단일 버전만 설치 (python 3 사용)

sudo apt-get install python3-dev python3-pip

4.) python3에 tensorflow 설치

sudo pip3 install --upgrade pip

GPU tensorflow가 아닌 경우 이 명령 실행

sudo pip3 install --upgrade tensorflow

GPU 텐서플로우의 경우 명령 아래에서 실행

sudo pip3 install --upgrade tensorflow-gpu

tensorflow의 GPU 및 바닐라 버전을 설치하지 말 것을 제안합니다.

tensorflow 버전 2를 사용하고 있고 명령어가 버전 1에서 나왔기 때문에 오류가 나타납니다.다음을 사용할 경우:

tf.compat.v1.summary.(method_name)

될 겁니다

tensflow2.0 버전에서는 플레이스홀더를 사용할 수 없기 때문에 tensflow1*을 사용하거나 코드를 변경하여 tensflow2.0을 수정해야 합니다.

이전에 텐서플로우 업그레이드를 시도한 후 텐서플로우와 케라스를 재설치하여 같은 문제가 발생하였습니다.

pip uninstall tensorflow

pip uninstall keras

그러면:

pip install tensorflow

pip install keras

많은 제안들이 있었고 그 중 일부는 효과가 있었습니다.하지만 나는 더 나은 유지보수를 위해 v1 tf 프로젝트를 v2 프로젝트로 전환하고 싶습니다.여기서 아무도 제안하지 않았다는게 놀랍습니다.

$tf_upgrade_v2 \
--intree my_project/ \
--outtree my_project_v2/ \
--reportfile report.txt 

이 스택 오버플로 응답에서 붙여넣은 것을 복사했습니다.AttributeError: 'tensorflow' 모듈에 'get_variable' 속성이 없습니다.

당신은 보고서를 검사할 필요합니다.txt 그리고 그것이 당신이 기대하는 것을 할 수 있는지 확인하세요.

아래 URL의 다른 유형의 솔루션 https://www.datasciencelearner.com/attributeerror-module-tensorflow-has-no-attribute-placeholder/

중인 은 TensorFlow 입니다. 실행 중인 버전은2.0것 일 수도 있습니다.1.5,하는 동안에placeholder할 수 .1.4.

TensorFlow를 제거한 다음 버전 1.4로 다시 설치하면 모든 것이 작동합니다.

를 .placeholder 내 경우엔 내가 잘못 쓴거야, 내 경우엔placehoder했습니다.AttributeError: 'module' object has no attribute 'placehoder'

언급URL : https://stackoverflow.com/questions/37383812/tensorflow-module-object-has-no-attribute-placeholder

반응형