

python初心者なのですがエラーが解消できません。

コードは

[code]

    import tensorflow as tf
    
    a = tf.constant(3.0, tf.float32)
    b = tf.constant(2.0, tf.float32)
    
    x = tf.placeholder(tf.float32)
    
    y = a * x + b
    
    sess = tf.Session()
    print(sess.run(y,{x: [0,1,2,3]}))
    
[/code]

エラー内容は

[code]

    module 'tensorflow' has no attribute 'placeholder'
    
[/code]

macを使用しておりpythonは3.7になります。

tensorflowは2.0.0になります


CC BY-SA 4.0
2019-10-16T12:07:14.003
59745
2019-10-17T09:54:42.143
2019-10-17T01:28:34.293
36200
question
python tensorflow
module 'tensorflow' has no attribute 'placeholder'


### 可能性1: v1の文法のコードをv2をインポートして実行している。

対策方法1: v1をインポートし、v2を無効化する。

[code]

    import tensorflow.compat.v1 as tf
    tf.disable_v2_behavior()
    
[/code]

対策方法2: v2のコードに置き換える。

[code]

    import tensorflow as tf
    
    a = tf.constant(3.0, tf.float32)
    b = tf.constant(2.0, tf.float32)
    
    def f(x):
        return a * x + b
    
    print(f([0, 1, 2, 3]))
    
[/code]

※対策方法1と対策方法2は、どちらか一方だけを適用します。

### 可能性2: 自分で作ったファイル名に"tensorflow.py"がある。

対策方法: ファイル名を置き換える。

[code]

    mv tensorflow.py example.py
    
[/code]

Ref: <https://stackoverflow.com/questions/37383812/tensorflow-module-object-
has-no-attribute-placeholder>


CC BY-SA 4.0
2019-10-16T23:13:03.123
59751
2019-10-17T09:54:42.143
2019-10-17T09:54:42.143
59745
answer