tensorflow 2.1 常用函数及示例详解(二)

一、where函数

where(x,y,z)
where语句可以用于判定x的真假,若为真返回a,若为假返回b
若x为一个张量,将返回多个元素的张量,如:

 代码:

a = tf.constant([1, 2, 3, 1, 1])
b = tf.constant([0, 1, 3, 4, 5])
c = tf.where(tf.greater(a, b), a, b)  # 若a>b,返回a对应位置的元素,否则返回b对应位置的元素
print("c:", c)

结果: 

 

 

二、 RandonState函数

RandonState函数可以返回0-1之间的随机数,并可以指定维度和种子seed,如:

 代码:

rdm = np.random.RandomState(seed=1)
a = rdm.rand()
b = rdm.rand(2, 3)
print("a:", a)
print("b:", b)

结果:

三、vstack函数

vstack函数可以将多个数组叠加,形成多维数组

代码:

# vstack函数可以将多个数组叠加,形成多维数组
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
c = np.vstack((a, b))
print("c:\n", c)

结果:

 

四、mgrid()函数、raval函数、c_函数

# mgrid()函数的参数可以是任意多个由(起始点:终止点:间隔)组成的数列,并返回等差数列
# 但是返回多个数列的维度相同,维度为= 第一个参数数列元素个数*第二个参数数列元素个数*第三个参数数列元素个数.....
# 如以下例子中,返回的两个矩阵的维度为2*4
# 执行后会生成等间隔数值点,x的一行的数字是相同的,y的一列的数字是相同的
# raval将x, y拉直,并合并配对为二维张量,生成二维坐标点
# c_函数将元素对应组合输出

代码:

# mgrid()函数的参数可以是任意多个由(起始点:终止点:间隔)组成的数列,并返回等差数列
# 但是返回多个数列的维度相同,维度为 : 第一个参数数列元素个数*第二个参数数列元素个数*第三个参数数列元素个数.....
# 如以下例子中,返回的两个矩阵的维度为2*4
# 生成等间隔数值点,x的行是相同的,y的列是相同的
x, y = np.mgrid[1:3:1, 2:4:0.5]
# raval将x, y拉直,并合并配对为二维张量,生成二维坐标点
# c_函数将元素对应组合输出
grid = np.c_[x.ravel(), y.ravel()]
print("x:\n", x)
print("y:\n", y)
print("x.ravel():\n", x.ravel())
print("y.ravel():\n", y.ravel())
print('grid:\n', grid)

结果: 

附:

# 由于迭代到后期寻找最优值的参数变化范围应该较小,如果学习率是静态的话会造成颠簸问题
# 故采用指数下降的学习率比较合适
w = tf.Variable(tf.constant(5, dtype=tf.float32))
epoch = 40
LR_BASE = 0.2  # 最初学习率
LR_DECAY = 0.99  # 学习率衰减率
LR_STEP = 1  # 喂入多少轮BATCH_SIZE后,更新一次学习率
for epoch in range(epoch):  # for epoch 定义顶层循环,表示对数据集循环epoch次,此例数据集数据仅有1个w,初始化时候constant赋值为5,循环100次迭代。
    lr = LR_BASE * LR_DECAY ** (epoch / LR_STEP)
    with tf.GradientTape() as tape:  # with结构到grads框起了梯度的计算过程。
        loss = tf.square(w + 1)
    grads = tape.gradient(loss, w)  # .gradient函数告知谁对谁求导
    w.assign_sub(lr * grads)  # .assign_sub 对变量做自减 即:w -= lr*grads 即 w = w - lr*grads
    print("After %s epoch,w is %f,loss is %f,lr is %f" % (epoch, w.numpy(), loss, lr))

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
TensorFlow是一个开源的机器学习框架,版本2.1是其中的一个版本。你可以使用命令行进入Python的交互式环境,并导入TensorFlow来查看其版本号:`python` -> `import tensorflow as tf` -> `tf.__version__`。 如果你需要安装TensorFlow 2.1,我建议使用镜像来加快下载速度,比如使用豆瓣源。你可以使用以下命令安装TensorFlow 2.1: `pip install tensorflow==2.1 -i https://pypi.douban.com/simple/`。 在TensorFlow中,如果你想要从外部传入数据,你可以使用`tf.placeholder()`来定义占位符,然后通过`sess.run()`函数传输数据,具体可以参考以下代码示例: ``` import tensorflow as tf tf.compat.v1.disable_eager_execution() input1 = tf.compat.v1.placeholder(tf.float32) input2 = tf.compat.v1.placeholder(tf.float32) output = tf.multiply(input1, input2) with tf.compat.v1.Session() as sess: print(sess.run(output, feed_dict={input1: [7.], input2: [2.]})) ``` 这段代码实现了两个数的乘法运算,其中`input1`和`input2`是占位符,通过`feed_dict`参数传入具体的值进行计算。 在TensorFlow中,你还可以使用激活函数(也称为激励函数)来引入非线性性质。常用的激活函数有ReLU、Sigmoid和Tanh等。你可以根据具体的需求选择不同的激活函数来改变神经网络的行为。 最后,TensorFlow中的Variable变量可以用于存储和更新模型的参数。你可以使用`tf.Variable()`来创建变量,并使用`assign()`等方法来更新变量的值。变量在训练过程中可以被不断地调整和优化,以适应模型的需求。 总结起来,TensorFlow 2.1是一个用于机器学习的开源框架,你可以使用命令行查看其版本号,安装它并使用各种功能,如占位符、激活函数和变量。希望这些信息能对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值