首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >模块'tensorflow_core._api.v2.train‘没有属性'GradientDescentOptimizer’,Tensorflow 2.0中不能调用‘GradientDescentOptimizer’对象

模块'tensorflow_core._api.v2.train‘没有属性'GradientDescentOptimizer’,Tensorflow 2.0中不能调用‘GradientDescentOptimizer’对象
EN

Stack Overflow用户
提问于 2020-07-11 18:02:19
回答 2查看 2.4K关注 0票数 1

我在tensorflow 2.0中的代码有一个问题:

代码语言:javascript
复制
import tensorflow as tf
import numpy as np

w=tf.Variable(0, dtype=tf.float32)
cost=tf.add( tf.add(w**2,tf.multiply(-10.,w)),25)
#cost=w**2-10*w+25
train= tf.train.GradientDescentOptimizer(0.01).minimize(cost)import tensorflow as tf
import numpy as np

------------------------------
Output:
---> 10 train= tf.train.GradientDescentOptimizer(0.01).minimize(cost)

AttributeError: module 'tensorflow_core._api.v2.train' has no attribute 'GradientDescentOptimizer'

然后我尝试使用: tf.optimizers.SGD(0.01).minimize(cost)

代码语言:javascript
复制
import tensorflow as tf
import numpy as np

w=tf.Variable(0, dtype=tf.float32)
cost=tf.add( tf.add(w**2,tf.multiply(-10.,w)),25)
#cost=w**2-10*w+25

train= tf.optimizers.SGD(0.01).minimize(cost,var_list=[w])



TypeError: 'Tensor' object is not callable

,请帮助我,我正在学习tensorflow。

EN

回答 2

Stack Overflow用户

发布于 2020-09-29 15:19:00

我在TF 2.x中复制了你的错误

代码语言:javascript
复制
import tensorflow as tf
import numpy as np

w=tf.Variable(0, dtype=tf.float32)
cost=tf.add( tf.add(w**2,tf.multiply(-10.,w)),25)
#cost=w**2-10*w+25
train= tf.train.GradientDescentOptimizer(0.01).minimize(cost)

输出:

代码语言:javascript
复制
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-31-392f437c54ca> in <module>()
      5 cost=tf.add( tf.add(w**2,tf.multiply(-10.,w)),25)
      6 #cost=w**2-10*w+25
----> 7 train= tf.train.GradientDescentOptimizer(0.01).minimize(cost)

AttributeError: module 'tensorflow._api.v2.train' has no attribute 'GradientDescentOptimizer'

要在TF2.x中运行代码,首先必须使用V2禁用tf.compat.v1.disable_v2_behavior()行为,并将tf.train.GradientDescentOptimizer替换为tf.compat.v1.train.GradientDescentOptimizer

下面的工作代码

代码语言:javascript
复制
import tensorflow as tf
import numpy as np

tf.compat.v1.disable_v2_behavior()

w=tf.Variable(0, dtype=tf.float32)
cost=tf.add( tf.add(w**2,tf.multiply(-10.,w)),25)
#cost=w**2-10*w+25
train= tf.compat.v1.train.GradientDescentOptimizer(0.01).minimize(cost)

在TF2.3中,要实现梯度下降,可以使用tf.keras.optimizers.SGD

票数 0
EN

Stack Overflow用户

发布于 2020-10-30 02:25:14

您应该修改

代码语言:javascript
复制
optimizer = tf.train.GradientDescentOptimizer

成为

代码语言:javascript
复制
optimizer = tf.compat.v1.train.GradientDescentOptimizer
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62852769

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档