报错:AttributeError: module 'tensorflow' has no attribute 'placeholder'
原因:版本问题
解决方案:修改代码,加上“compat.v1”
修改前:
input_ACS = tf.placeholder(tf.float32, [1, ACS_dim_X,ACS_dim_Y,ACS_dim_Z])
input_Target = tf.placeholder(tf.float32, [1, target_dim_X,target_dim_Y,target_dim_Z])
修改后:
input_ACS = tf.compat.v1.placeholder(tf.float32, [1, ACS_dim_X,ACS_dim_Y,ACS_dim_Z])
input_Target = tf.compat.v1.placeholder(tf.float32,[1,target_dim_X,target_dim_Y,target_dim_Z])
出现新的问题:
原因:这个语句需要在session前定义,在session中执行,但在使用T的ensorFlow 2.0及以上版本中,默认情况下开启了紧急执行模式,即定义即执行。
所以,我们需要在上面的语句前定义一下它不着急执行,有两种解决方案:
方案一:添加 tf.compat.v1.disable_eager_execution(),即:
tf.compat.v1.disable_eager_execution()
input_ACS = tf.compat.v1.placeholder(tf.float32, [1, ACS_dim_X,ACS_dim_Y,ACS_dim_Z])
input_Target = tf.compat.v1.placeholder(tf.float32, [1, target_dim_X,target_dim_Y,target_dim_Z])
方案二:添加tf.compat.v1.disable_v2_behavior(),即:
tf.compat.v1.disable_v2_behavior()
input_ACS = tf.compat.v1.placeholder(tf.float32, [1, ACS_dim_X,ACS_dim_Y,ACS_dim_Z])
input_Target = tf.compat.v1.placeholder(tf.float32, [1, target_dim_X,target_dim_Y,target_dim_Z])
此问题解决: