1.出现该错误时:AttributeError: module ‘tensorflow’ has no attribute ‘global_variables_initializer’
将import tensorflow as tf
改为import tensorflow.compat.v1 as tf
因为tensorflow版本的问题,2.0与1.0不同
2.tensorflow中在使用变量时需要进行初始化
init=tf.global_variables_initializer()
3.运行以下代码报错
import tensorflow.compat.v1 as tf
x=tf.Variable([1,2])
a=tf.constant([3,3])
#增加一个减法op
sub=tf.subtract(x,a)
#增加一个加法op
add=tf.add(x,sub)
init=tf.global_variables_initializer()
with tf.compat.v1.Session() as sess:
sess.run(init)
print(sess.run(sub))
print(sess.run(add))
AttributeError Traceback (most recent call last)
in
8 init=tf.global_variables_initializer()
9
—> 10 with tf.compat.v1.Session() as sess:
11 sess.run(init)
12 print(sess.run(sub))
AttributeError: module ‘tensorflow_core.compat.v1.compat’ has no attribute ‘v1’
解决方法:将第二个代码块中的.compat.v1删去
4.以下代码是一个循环自加的过程
#创建一个变量初始化为0
state=tf.Variable(0,name="counter")
#创建一个op,作用是使state加1
new_value=tf.add(state,1)
#赋值op
update=tf.assign(state,new_value)
#变量初始化
init=tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(init)
print(sess.run(state))
for _ in range(5):
sess.run(update)
print(sess.run(state))
得到输出:
0
1
2
3
4
5