tensorflow2.x 线性回归 与 tensorflow1.x区别

在学习TensorFlow教程时,遇到在2.x版本中使用1.x代码导致的'passed to Optimizer.compute_gradients should be a function when eager execution is enabled'和'No variables to optimize'错误。问题源于两个版本的差异。通过对比理解,附上了在TensorFlow 2.3版本下实现的线性回归代码,以供参考。
摘要由CSDN通过智能技术生成

在学习莫烦python中tensorflow教程中遇到
loss passed to Optimizer.compute_gradients should be a function when eager execution is enabl
以及根据网上修改后出现
No variables to optimize等错误代码

出现问题的原因呢就是因为tensorflow1.x版本和2.x版本问题,不要以为将指令改为2.X版本的就万事大吉了,根出问题了.

为了方便对比理解,附上大佬源代码
并用相同数据和先同思路及算法,附上我写的2.3版本

下面是莫烦大佬源代码

from __future__ import print_function
import tensorflow as tf
import numpy as np

# create data
x_data = np.random.rand(100).astype(np.float32)
y_data = x_data*0.1 + 0.3

### create tensorflow structure start ###
Weights = tf.Variable(tf.random_uniform([1], -1.0, 1.0
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
导数在数学中是一个非常重要的概念,其在机器学习和深度学习中也扮演着至关重要的角色。TensorFlow作为一款流行的深度学习框架,在其2.x版本中提供了丰富的导数计算函数,本文将对TensorFlow 2.x中的导数计算进行详细的解析。 首先,TensorFlow中导数计算的核心就是“tf.GradientTape”函数,该函数记录执行的操作,并自动构建一个对应的计算图。在计算图中,我们可以根据需要定义一系列输入张量或者变量,并用这些对象进行复杂的计算。之后,再通过“tape.gradient”函数来计算导数。比如,在线性回归的例子中,我们可以将设计矩阵X和标签向量y作为输入张量,然后定义参数张量w,并对其进行计算。最后,我们用“tape.gradient”函数对w进行求导,即可得到损失对其的梯度。 除了上述基本实现之外,TensorFlow 2.x中还提供了丰富的导数计算函数,比如“tf.gradients”函数、自动微分工具“tf.autodiff”、高阶导数函数“tf.hessians”、方向导数函数“tf.custom_gradient”等等。这些函数可以根据用户的需要实现对导数的计算、控制求导的方式、实现高阶导数计算等等。在实际使用中,我们可以根据具体的需求选择使用不同的导数计算函数,比如在求解梯度下降法的过程中,我们可以根据需要计算一阶或二阶导数,也可以选择自动微分工具来实现快速又可靠的导数计算。 总之,TensorFlow 2.x中的导数计算是一个非常重要的功能,在深度学习的应用中起着至关重要的作用。通过使用不同的导数计算方法,我们可以实现对复杂模型参数的优化、实现高阶导数计算、实现特殊的导数控制等等功能。因此,熟练掌握TensorFlow 2.x中的导数计算函数是每一位深度学习从业者必备的能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值