模块'tensorflow._api.v2.train'没有属性'GradientDescentOptimizer'

时间:2019-04-15 04:46:27

标签: python tensorflow

我使用Python 3.7.3并安装了tensorflow 2.0.0-alpha0,但存在一些问题。例如 模块'tensorflow._api.v2.train'没有属性'GradientDescentOptimizer' 这是我所有的代码

import  tensorflow as tf
import  numpy as np

x_data=np.random.rand(1,10).astype(np.float32)
y_data=x_data*0.1+0.3


Weights = tf.Variable(tf.random.uniform([1], -1.0, 1.0))
biases = tf.Variable(tf.zeros([1]))
y=Weights*x_data+biases

loss=tf.reduce_mean(tf.square(y-y_data))

optimizer=tf.train.GradientDescentOptimizer(0.5)
train=optimizer.minimize(loss)

init = tf.global_variables_initializer()  

sess = tf.Session()
sess.run(init)          

for step in range(201):
    sess.run(train)
    if step % 20 == 0:
        print(step, sess.run(Weights), sess.run(biases))

4 个答案:

答案 0 :(得分:1)

您正在使用Tensorflow 2.0。 以下代码会有所帮助:

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

答案 1 :(得分:0)

在TensorFlow 2.0中,Keras成为默认的高级API,优化程序功能从tf.keras.optimizers迁移到名为tf.optimizers的单独API中。它们从Keras类Optimizer继承。 tf.train中的相关功能未包含在TF 2.0中。因此,要访问GradientDescentOptimizer,请致电tf.optimizers.SGD

答案 2 :(得分:0)

这是因为您正在使用TensorFlow版本2。

`tf.train.GradientDescentOptimizer(0.5)`

上述调用是针对TensorFlow版本1(例如:1.15.0)的。

您可以尝试pip install tensorflow==1.15.0降级TensorFlow并按原样使用代码。

否则,通过以下调用使用TensorFlow版本2(您已经拥有的版本)。

tf.optimizers.SGD (learning_rate=0.001, lr_decay=0.0, decay_step=100, staircase=False, use_locking=False, name='SGD')

答案 3 :(得分:0)

对于@HoyeolKim给出的答案,可能需要添加:

tf.disable_v2_behavior()

建议in this answer.