博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Tensorflow--池化操作的梯度
阅读量:5100 次
发布时间:2019-06-13

本文共 1697 字,大约阅读时间需要 5 分钟。

Tensorflow–池化操作的梯度

池化操作的梯度分两部分介绍,第一部分介绍平均值池化的梯度计算,第二部分介绍最大值池化的梯度计算

一.平均值池化的梯度

利用计算梯度的函数gradients实现上述示例,具体代码如下:

import tensorflow as tfimport numpy as np# x是1个3行3列1深度的张量x=tf.placeholder(tf.float32,(1,3,3,1))# 2x2的掩码,步长是(1,1,1,1)的valid平均值池化操作sigma=tf.nn.avg_pool(x,(1,2,2,1),(1,1,1,1),'VALID')# 构造一个函数F:池化结果的和F=tf.reduce_sum(sigma)session=tf.Session()xvalue=np.random.randn(1,3,3,1)grad=tf.gradients(F,[sigma,x])results=session.run(grad,{
x:xvalue})print("---针对sigma的梯度---:")print(results[0])print("---针对x的梯度---:")print(results[1])
---针对sigma的梯度---:[[[[1.]   [1.]]  [[1.]   [1.]]]]---针对x的梯度---:[[[[0.25]   [0.5 ]   [0.25]]  [[0.5 ]   [1.  ]   [0.5 ]]  [[0.25]   [0.5 ]   [0.25]]]]

二.最大值池化的梯度

import tensorflow as tf# 初始化x的值x=tf.Variable(tf.constant([                           [                           [[8],[2],[9],[3]],                           [[4],[6],[7],[10]],                           [[20],[13],[1],[5]],                           [[12],[18],[19],[14]]                           ]                           ],tf.float32),dtype=tf.float32)# 2x2的掩码,步长为2x2的最大值池化操作x_maxPool=tf.nn.max_pool(x,(1,2,2,1),(1,2,2,1),'VALID')# 对以上最大值池化结果计算其平方和F=tf.reduce_sum(tf.square(x_maxPool))session=tf.Session()session.run(tf.global_variables_initializer())opti=tf.train.GradientDescentOptimizer(0.5).minimize(F)# 打印前2次结果for i in range(2):    session.run(opti)    print(session.run(x))
[[[[ 0.]   [ 2.]   [ 9.]   [ 3.]]  [[ 4.]   [ 6.]   [ 7.]   [ 0.]]  [[ 0.]   [13.]   [ 1.]   [ 5.]]  [[12.]   [18.]   [ 0.]   [14.]]]][[[[ 0.]   [ 2.]   [ 0.]   [ 3.]]  [[ 4.]   [ 0.]   [ 7.]   [ 0.]]  [[ 0.]   [13.]   [ 1.]   [ 5.]]  [[12.]   [ 0.]   [ 0.]   [ 0.]]]]

转载于:https://www.cnblogs.com/LQ6H/p/10343263.html

你可能感兴趣的文章
收集WebDriver的执行命令和参数信息
查看>>
数据结构与算法(三)-线性表之静态链表
查看>>
mac下的mysql报错:ERROR 1045(28000)和ERROR 2002 (HY000)的解决办法
查看>>
Hmailserver搭建邮件服务器
查看>>
django之多表查询-2
查看>>
快速幂
查看>>
改善C#公共程序类库质量的10种方法
查看>>
AIO 开始不定时的抛异常: java.io.IOException: 指定的网络名不再可用
查看>>
MyBaits动态sql语句
查看>>
HDU4405(期望DP)
查看>>
拉格朗日乘子法 那些年学过的高数
查看>>
vs code 的便捷使用
查看>>
Spring MVC @ResponseBody返回中文字符串乱码问题
查看>>
用户空间与内核空间,进程上下文与中断上下文[总结]
查看>>
JS 中的跨域请求
查看>>
JAVA开发环境搭建
查看>>
mysql基础语句
查看>>
Oracle中的rownum不能使用大于>的问题
查看>>
[Data Structure & Algorithm] 有向无环图的拓扑排序及关键路径
查看>>
cassandra vs mongo (1)存储引擎
查看>>