TensorFlow 2.0.0へのアップデートで出くわしたエラー:AttributeError: module 'tensorflow' has no attribute 'placeholder'
前提
- TensorFlow 2.0.0
エラー内容
TensorFlow 1.4.0で書かれたコード
g = tf.Graph() with g.as_default(): x = tf.placeholder(dtype=tf.float32, shape=(None), name='x') w = tf.Variable(2.0, name='weight') b = tf.Variable(0.7, name='bias') z = w*x + b init = tf.global_variables_initializer()
を実行すると次のエラーが出た.
AttributeError: module 'tensorflow' has no attribute 'placeholder'
原因はバージョンアップに伴う変更の影響だった.
解決策
エラーの原因となっているメソッドの前に tensorflow.compat.v1
をつけることで解決した.(もちろん as tf
でimportしているならtf.compat.v1
)
g = tf.Graph() with g.as_default(): x = tf.compat.v1.placeholder(dtype=tf.float32, shape=(None), name='x') w = tf.Variable(2.0, name='weight') b = tf.Variable(0.7, name='bias') z = w*x + b init = tf.compat.v1.global_variables_initializer()