文章目录

  • 1.张量的限幅
    • 1.tf.clip_by_value-根据值来裁剪
    • 2.tf.nn.relu-将矩阵中每行小于0的值置0
    • 3.tf.clip_by_norm-根据范数裁剪
    • 4.tf.clip_by_global_norm-等比例裁剪

1.张量的限幅

1.tf.clip_by_value-根据值来裁剪

2.tf.nn.relu-将矩阵中每行小于0的值置0

3.tf.clip_by_norm-根据范数裁剪

4.tf.clip_by_global_norm-等比例裁剪

Gradient clipping-梯度裁剪

例子

# 将无关信息屏蔽掉
import osos.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import datasets, layers, optimizers# 列出你所有的物理GPU,设置内存自动增长
gpus = tf.config.experimental.list_physical_devices('GPU')
for gpu in gpus:tf.config.experimental.set_memory_growth(gpu, True)print(tf.__version__)(x, y), _ = datasets.mnist.load_data()
x = tf.convert_to_tensor(x, dtype=tf.float32) / 50.
y = tf.convert_to_tensor(y)
y = tf.one_hot(y, depth=10)
print('x:', x.shape, 'y:', y.shape)
train_db = tf.data.Dataset.from_tensor_slices((x, y)).batch(128).repeat(30)
x, y = next(iter(train_db))
print('sample:', x.shape, y.shape)# print(x[0], y[0])def main():# 784 => 512w1, b1 = tf.Variable(tf.random.truncated_normal([784, 512], stddev=0.1)), tf.Variable(tf.zeros([512]))# 512 => 256w2, b2 = tf.Variable(tf.random.truncated_normal([512, 256], stddev=0.1)), tf.Variable(tf.zeros([256]))# 256 => 10w3, b3 = tf.Variable(tf.random.truncated_normal([256, 10], stddev=0.1)), tf.Variable(tf.zeros([10]))# 优化器optimizer = optimizers.SGD(lr=0.01)for step, (x, y) in enumerate(train_db):# [b, 28, 28] => [b, 784]x = tf.reshape(x, (-1, 784))with tf.GradientTape() as tape:# layer1.h1 = x @ w1 + b1h1 = tf.nn.relu(h1)# layer2h2 = h1 @ w2 + b2h2 = tf.nn.relu(h2)# outputout = h2 @ w3 + b3# out = tf.nn.relu(out)# compute loss# [b, 10] - [b, 10]loss = tf.square(y - out)# [b, 10] => [b]loss = tf.reduce_mean(loss, axis=1)# [b] => scalarloss = tf.reduce_mean(loss)# compute gradientgrads = tape.gradient(loss, [w1, b1, w2, b2, w3, b3])print('==before==')for g in grads:print(tf.norm(g))# 对所有可训练参数进行等比例裁剪grads, _ = tf.clip_by_global_norm(grads, 15)print('==after==')for g in grads:print(tf.norm(g))# update w' = w - lr*gradoptimizer.apply_gradients(zip(grads, [w1, b1, w2, b2, w3, b3]))if step % 100 == 0:print(step, 'loss:', float(loss))if __name__ == '__main__':main()

深度学习2.0-10.tensorflow的高阶操作之张量的限幅相关推荐

  1. 深度学习(16)TensorFlow高阶操作五: 张量限幅

    深度学习(16)TensorFlow高阶操作五: 张量限幅 1. clip_by_value 2. relu 3. clip_by_norm 4. Gradient clipping 5. 梯度爆炸实 ...

  2. 深度学习(14)TensorFlow高阶操作三: 张量排序

    深度学习(14)TensorFlow高阶操作三: 张量排序 一. Sort, argsort 1. 一维Tensor 2. 多维Tensor 二. Top_k 三. Top-k accuracy(To ...

  3. 深度学习(17)TensorFlow高阶操作六: 高阶OP

    深度学习(17)TensorFlow高阶操作六: 高阶OP 1. Where(tensor) 2. where(cond, A, B) 3. 1-D scatter_nd 4. 2-D scatter ...

  4. 深度学习(15)TensorFlow高阶操作四: 填充与复制

    深度学习(15)TensorFlow高阶操作四: 填充与复制 1. Pad 2. 常用于Image Padding 3. tile 4. tile VS broadcast_to Outline pa ...

  5. 深度学习(12)TensorFlow高阶操作一: 合并与分割

    深度学习(12)TensorFlow高阶操作一: 合并与分割 1. concat 2. stack: create new dim 3. Dim mismatch 4. unstuck 5. spli ...

  6. 福利 | Python、深度学习、机器学习、TensorFlow 好书推荐

    在上次的送书活动中,营长做了个调查问卷,结果显示大家更喜欢深度学习.Python以及TensorFlow方面的书,所以这期送书活动一并满足大家.本期图书选自人民邮电出版社图书,包括:近期AI圈儿比较流 ...

  7. 深度学习(6)TensorFlow基础操作二: 创建Tensor

    深度学习(6)TensorFlow基础操作二: 创建Tensor 一. 创建方式 1. From Numpy,List 2. zeros,ones (1) tf.zeros() (2) tf.zero ...

  8. 深度学习(11)TensorFlow基础操作七: 向前传播(张量)实战

    深度学习(11)TensorFlow基础操作七: 向前传播(张量)实战 1. 导包 2. 加载数据集 3. 转换数据类型 4. 查看x.shape, y.shape, x.dtype, y.dtype ...

  9. 深度学习(9)TensorFlow基础操作五: Broadcasting

    深度学习(9)TensorFlow基础操作五: Broadcasting 1. 操作思想 2. 具体例子 3. 理解 (1) How to understand? (2) Why Broadcasti ...

  10. 深度学习(7)TensorFlow基础操作三: 索引与切片

    深度学习(7)TensorFlow基础操作三: 索引与切片 一. 基础索引 1. Basic indexing 2. Numpy-style indexing 3. start : end 4. 切片 ...

最新文章

  1. 行业操作系统行业深度报告 华为鸿蒙系统,操作系统行业深度报告:华为鸿蒙系统、安卓和未来.docx...
  2. layui学习资料汇总
  3. mysql定位前后端问题_Web 前后端分离的意义大吗?
  4. 2021阿里云开发者大会|【云原生数据库:一站式数据服务】分论坛即将开启
  5. python nlp_使用python在stanford-nlp中的回指解析
  6. virtualbox虚拟机安装Ubuntu异常处理:FATAL: NO bootable medium found! System halted
  7. 拆分命令_命令行生存指南:拆分与合并 | Linux 中国
  8. 年轻人不讲武德不仅白piao接口测试知识还白piao接口测试工具会员
  9. ae效果英文版翻译对照表_AE特效菜单中英文对照
  10. 摩尔斯电码对照表—Morse code
  11. 软件架构师必需要了解的 saas 架构设计?
  12. 机器学习进阶 第一节 第一课
  13. wireshark:时区
  14. 新起点,新希望,为梦想而战!!!
  15. 游戏出海迎来新高,出海的路上如何防范DDoS风险?
  16. GoogleVR与unity2019(cardboard)
  17. while语句和do...while语句
  18. 火车头+php教程,dede使用火车头采集视频教程
  19. c语言峰值保持算法,led频谱显示带峰值保持
  20. 中国大陆收货地址智能解析

热门文章

  1. C++函数重载与引用的较好的练习实例
  2. 【node】---记忆内容
  3. bzoj2599 [IOI2011]Race
  4. (一)Nand FLASH 原理讲解
  5. Windows自动更新API (1)
  6. LaTeX(3)——LaTeX数学公式
  7. C/C++编程语言中枚举类型(enum)介绍
  8. [bzoj3585] Rmq Problem / mex
  9. sql2012,返回数据多时不走索引
  10. 【VirtualBox】设置NAT端口映射-SSH登录