tensorflow prelu的实现细节

output = tf.nn.leaky_relu(input, alpha=tf_gamma_data,name=name)

#tf.nn.leaky_relu 限制了tf_gamma_data在[0 1]的范围内

内部实现方法是 output = tf.maxmum(alpha * input, input)

alpha > 1 时,会出现,正值*alpha, 负值不变

import numpy as np
import tensorflow as tf #bn = np.loadtxt('tfbn.txt')
bn = np.array([[-0.9, -0.9 ,-0.9],[1.1,1.1,1.1]])
print("srcdata ", bn)
gamma_data = np.array([1.205321])
print("gamma_data ", gamma_data)
tf_gamma_data = tf.Variable(gamma_data, dtype=np.float32)
input_data = tf.Variable(bn, dtype=np.float32)
tf_prelu_test = tf.nn.leaky_relu(input_data, alpha=tf_gamma_data,name=None)
#tf_prelu_test = tf.nn.relu(input_data) + tf.multiply(tf_gamma_data, -tf.nn.relu(-input_data))
#tf_prelu_test = tf.nn.relu(input_data,name=None)
init = tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(init)
tf_prelu_test = sess.run(tf_prelu_test)
print("tf_prelu_test: \n", tf_prelu_test)

srcdata [[-0.9 -0.9 -0.9]
[ 1.1 1.1 1.1]]
gamma_data [1.205321]
tf_prelu_test:
[[-0.9 -0.9 -0.9 ]
[ 1.3258531 1.3258531 1.3258531]]
[Finished in 2.5s]

使用relu来代替
output = tf.nn.relu(data) + tf.multiply(alpha, -tf.nn.relu(-data))

import numpy as np
import tensorflow as tf #bn = np.loadtxt('tfbn.txt')
bn = np.array([[-0.9, -0.9 ,-0.9],[1.1,1.1,1.1]])
print("srcdata ", bn)
gamma_data = np.array([1.205321])
print("gamma_data ", gamma_data)
tf_gamma_data = tf.Variable(gamma_data, dtype=np.float32)
input_data = tf.Variable(bn, dtype=np.float32)
#tf_prelu_test = tf.nn.leaky_relu(input_data, alpha=tf_gamma_data,name=None)
tf_prelu_test = tf.nn.relu(input_data) + tf.multiply(tf_gamma_data, -tf.nn.relu(-input_data))
#tf_prelu_test = tf.nn.relu(input_data,name=None)
init = tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(init)
tf_prelu_test = sess.run(tf_prelu_test)
print("tf_prelu_test: \n", tf_prelu_test)

srcdata [[-0.9 -0.9 -0.9]
[ 1.1 1.1 1.1]]
gamma_data [1.205321]
tf_prelu_test:
[[-1.0847888 -1.0847888 -1.0847888]
[ 1.1 1.1 1.1 ]]
[Finished in 2.7s]

tensorflow prelu的实现细节的更多相关文章

  1. mxnet与tensorflow的卷积实现细节比较

    mxnet的卷积 kernel = 3  pad=1边界补充0后,不管stride是否1还是2,imgw = 奇数或者偶数, 都是从图像位置(0,0)开始卷积 tensorlfow的卷积 kernel ...

  2. Windows系统,Tensorflow的Tensorboard工具细节问题

    随着跟着TensorFlow视频学习,学到Tensorboard可视化工具这里的时候. 在windows,cmd里面运行,tensorboard --logdir=你logs文件夹地址  这行代码,一 ...

  3. TensorFlow 需注意的细节问题

    1. 数据类型 不带小数点的数默认为 int32,带小数点的数默认为 float32:

  4. Tensorflow的基本概念与常用函数

    Tensorflow一些常用基本概念与函数(一) 1.tensorflow的基本运作 为了快速的熟悉TensorFlow编程,下面从一段简单的代码开始: import tensorflow as tf ...

  5. Tensorflow一些常用基本概念与函数(四)

    摘要:本系列主要对tf的一些常用概念与方法进行描述.本文主要针对tensorflow的模型训练Training与测试Testing等相关函数进行讲解.为‘Tensorflow一些常用基本概念与函数’系 ...

  6. 如何使用TensorFlow Hub和代码示例

    任何深度学习框架,为了获得成功,必须提供一系列最先进的模型,以及在流行和广泛接受的数据集上训练的权重,即与训练模型. TensorFlow现在已经提出了一个更好的框架,称为TensorFlow Hub ...

  7. [阿里DIN]从模型源码梳理TensorFlow的形状相关操作

    [阿里DIN]从模型源码梳理TensorFlow的形状相关操作 目录 [阿里DIN]从模型源码梳理TensorFlow的形状相关操作 0x00 摘要 0x01 reduce_sum 1.1 reduc ...

  8. Keras官方中文文档:keras后端Backend

    所属分类:Keras Keras后端 什么是"后端" Keras是一个模型级的库,提供了快速构建深度学习网络的模块.Keras并不处理如张量乘法.卷积等底层操作.这些操作依赖于某种 ...

  9. Deep Learning 资料总结

    http://colah.github.io/posts/2014-03-NN-Manifolds-Topology/ : 理解神经网络   ELU:

随机推荐

  1. 关于generate用法的总结

    Abtract generate语句允许细化时间(Elaboration-time)的选取或者某些语句的重复.这些语句可以包括模块实例引用的语句.连续赋值语句.always语句.initial语句和门 ...

  2. Android异步载入学习笔记之四:利用缓存优化网络载入图片及ListView载入优化

    假设不做不论什么处理.直接用网络载入图片在网速快的情况下可能没什么不好的感觉.可是假设使用移动流量或是网络不好的时候.问题就来了,要么用户会抱怨流量使用太多.要么抱怨图片载入太慢.如论从哪个角度出发, ...

  3. spring boot下JedisCluster方式连接Redis集群的配置

    最近在使用springboot做项目,使用redis做缓存.在外网开发的时候redis服务器没有使用集群配置,所有就是用了RedisTemplate的方式进行连接redis服务器.但是项目代码挪到内网 ...

  4. Gluster vs Ceph:开源存储领域的正面较量

    https://www.oschina.net/news/49048/gluster-vs-ceph 引言:开源存储软件Ceph和Gluster能够提供相似的特性并且能够为用户节省不小的开支.那么谁更 ...

  5. angular-1.3 之ng-model-options指令

    ng-model-options是angular-1.3新出的一个指令,这篇文章就来介绍这个指令的用法. ng-model-options允许我们控制ng-model何时进行同步. 比如:1.当某个确 ...

  6. Android 开发添加控件事件的三种方式

    import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view ...

  7. 【教程】Source Insight 关联 .S文件,汇编文件

    加载.s汇编文件 做ARM嵌入式开发时,有时得整汇编代码,但在SI里建立PROJECT并ADD TREE的时候,根据默认设置并不会把该TREE里面所有汇编文件都包含进来,默认只加了.inc和.asm后 ...

  8. java只使用try和finally不使用catch的原因和场景

    JDK并发工具包中,很多异常处理都使用了如下的结构,如AbstractExecutorService,即只有try和finally没有catch. class X { private final Re ...

  9. CSS动画实现菜单栏从左边滑出

    盗用一下图片吧:实际效果图如下: 1,有一个nav的侧边栏,有一个遮罩层,随着侧边栏打开,然后点击遮罩层关闭侧边栏 关键代码: 1.给slideNav(侧边栏设置如下属性) .slideNav { p ...

  10. android 修改listview item view 的方法

    具体的解答办法很简单: 代码如下 : 1.获取需要更新的view int visiblePosition = mListView.getFirstVisiblePosition(); View vie ...