加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – TensorFlow中的硬限制/阈值激活功能

发布时间:2020-12-20 12:33:14 所属栏目:Python 来源:网络整理
导读:我正在尝试在TensorFlow 0.9中实现基本的二进制 Hopfield Network.不幸的是,我很难让激活功能正常工作.我希望得到非常简单的if net [i] 0,输出[i] = 0,否则输出[i] = 1但是我尝试的所有内容似乎都删除了渐变,即在尝试实现训练操作时,我得到“没有为任何变量
我正在尝试在TensorFlow 0.9中实现基本的二进制 Hopfield Network.不幸的是,我很难让激活功能正常工作.我希望得到非常简单的if net [i]< 0,输出[i] = 0,否则输出[i] = 1但是我尝试的所有内容似乎都删除了渐变,即在尝试实现训练操作时,我得到“没有为任何变量提供渐变”的异常. 例如,我尝试将tf.less()转换为float,我尝试按照行进行

tf.maximum(tf.minimum(net,0) + 1,0)

但我忘了小小数值.最后我做到了

tf.maximum(tf.floor(tf.minimum(net,0) + 1),0)

但是tf.floor没有注册渐变.我也尝试用一个强制转换为int替换地板,然后一个强制转换为浮动但同样的交易.

关于我能做什么的任何建议?

解决方法

有点晚了,但如果有人需要它,我就用这个定义了

def binary_activation(x):

    cond = tf.less(x,tf.zeros(tf.shape(x)))
    out = tf.where(cond,tf.zeros(tf.shape(x)),tf.ones(tf.shape(x)))

    return out

x是张量

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读