Tensorflow2.0笔记 - Tensor的限值clip操作

本笔记主要记录使用maximum/minimum,clip_by_value和clip_by_norm来进行张量值的限值操作。

复制代码
import tensorflow as tf
import numpy as np

tf.__version__


#maximum/minimumz做上下界的限值
tensor = tf.random.shuffle(tf.range(10))
print(tensor)

#maximum(x, y, name=None)
#对比x和y,保留两者最大值,可以用作保证最小值为某一个特定值
#https://blog.csdn.net/qq_36379719/article/details/104321914
print("=====tf.maximum(tensor, 5):\n", tf.maximum(tensor, 5).numpy())
print("=====tf.maximum(tensor, [6,6,6,5,5,5,4,4,4,3]):\n", tf.maximum(tensor, [6,6,6,5,5,5,4,4,4,3]).numpy())
#minimum作用和maximum正好相反,可以用来保证最大值为某一个特定值
print("=====tf.minimum(tensor, 5):\n", tf.minimum(tensor, 5).numpy())
print("=====tf.minimum(tensor, [6,6,6,5,5,5,4,4,4,3]):\n", tf.minimum(tensor, [6,6,6,5,5,5,4,4,4,3]).numpy())


#clip_by_value,可以指定上下界参数
#这个函数本身可以用maximum和minimum组合实现
tensor = tf.random.shuffle(tf.range(10))
print(tensor)
#限定tensor的元素值在[2,5]区间
print("=====tf.clip_by_value(tensor,2,5):\n", tf.clip_by_value(tensor, 2, 5).numpy())

#多维tensor
tensor = tf.random.uniform([2,3,3], maxval=10, dtype=tf.int32)
print(tensor)
print("=====tf.clip_by_value(tensor,2,5):\n", tf.clip_by_value(tensor, 2, 5).numpy())


#relu函数限值,大于0的值保留原值,小于零的值变为0
#第一种方式(推荐),使用tf.nn.relu()
tensor = tf.random.uniform([3,3], minval=-10, maxval=10, dtype=tf.int32)
print(tensor)
print("=====tf.nn.relu(tensor):\n", tf.nn.relu(tensor).numpy())

#第二种方式,使用maximum
print("=====tf.maximum(tensor, 0) simulates relu:\n", tf.maximum(tensor, 0).numpy())

#根据范数来限值,clip_by_norm
#参考资料:https://blog.csdn.net/wn87947/article/details/82345537
#应用场景一般是针对梯度进行限值处理,通过范数clip会保持梯度方向不变
tensor = tf.convert_to_tensor([[3,2],[3,2]], dtype=tf.float32)
print(tensor)
print("Tensor Norm:", tf.norm(tensor).numpy())
clipped = tf.clip_by_norm(tensor, 3)
print("=====tf.clip_by_norm(tensor, 3):", clipped)
print("     Norm:", tf.norm(clipped))

运行结果:

相关推荐
hansang_IR7 分钟前
【算法速成课1 | 题解】洛谷P3366 【模板】最小生成树 MST(Prim & Kruskal)
c++·笔记·算法·题解·最小生成树·kruskal·prim
IT_陈寒10 分钟前
Vite 3.0性能飞跃:5个优化技巧让你的构建速度提升200%
前端·人工智能·后端
INS_KF15 分钟前
【知识杂记】卡尔曼滤波及其变种,从理论精要到工程实践深入解析
经验分享·笔记·学习
cdg==吃蛋糕21 分钟前
获取小红书某个用户列表
python
lsrsyx27 分钟前
科技赋能生态,智慧守护农林,汇岭生态开启农林产业现代化新篇章
人工智能
大模型真好玩32 分钟前
大模型工程面试经典(一)—如何评估大模型微调&训练所需硬件成本
人工智能·面试·mcp
MobotStone33 分钟前
放下技术焦虑:越来越多公司重回单体架构的真相
人工智能
deephub36 分钟前
R-Zero:通过自博弈机制让大语言模型无需外部数据实现自我进化训练
人工智能·深度学习·大语言模型·零样本学习·自博弈机制
何双新3 小时前
Odoo AI 智能查询系统
前端·人工智能·python
生命是有光的4 小时前
【机器学习】机器学习算法
人工智能·机器学习