当前位置:网站首页>基于JAX的激活函数、softmax函数和交叉熵函数
基于JAX的激活函数、softmax函数和交叉熵函数
2022-08-01 22:59:00 【Albert·Darren】
1.tanh激活函数公式
tanh ( x ) = e x − e − x e x + e − x \tanh \left( x \right) =\frac{e^x-e^{-x}}{e^x+e^{-x}} \notag tanh(x)=ex+e−xex−e−x
2.基于JAX实现tanh激活函数
import jax.numpy as jnp
from jax import random
def tanh(x):
"""tanh function"""
return (jnp.exp(x)-jnp.exp(-x))/(jnp.exp(x)+jnp.exp(-x))
# 设置伪随机数种子
rng=random.PRNGKey(0)
# 标准正态采样得到输入向量
x=random.normal(rng,shape=(4,1))
# 调用内置tanh函数实现
print(jnp.tanh(x))
# 调用自定义tanh函数实现
print(tanh(x))
3.softmax函数公式
s i = e x i ∑ i = 0 j e x i s_i=\frac{e^{x_i}}{\sum\limits _{i=0}^{j}e^{x_i} } \notag si=i=0∑jexiexi
其中 x i x_i xi表示第 i i i个神经元实值输出
4.基于JAX实现softmax函数
import jax.numpy as jnp
import jax.nn as nn
def softmax(x,axis=-1):
"""softmax function"""
unnormalized=jnp.exp(x)
return unnormalized/jnp.sum(unnormalized)
# 定义数组
arr=jnp.arange(-2,4)
# 调用自定义softmax函数
print(softmax(arr))
# 调用jax自带softmax函数
print(nn.softmax(arr))
5.交叉熵函数公式
H ( p , q ) = − ∑ i = 1 n p ( x i ) log ( q ( x i ) ) H\left( p,q \right) =-\sum_{i=1}^n{p\left( x_i \right) \log \left( q\left( x_i \right) \right)} \notag H(p,q)=−i=1∑np(xi)log(q(xi))
其中 p ( x ) p(x) p(x)表示真实概率分布, q ( x ) q(x) q(x)表示预测概率分布
6.基于JAX实现交叉熵函数
import jax.numpy as jnp
def cross_entropy(y_true,y_pred,eps=1e-7):
"""cross entropy function :param y_true:真实标签 :param y_pred:神经网络预测标签 :param eps:默认极小正数,保证对数真数不为0,增强log函数数值稳定性 :return:交叉熵,保留到小数点后4位 """
y_true=jnp.array(y_true)
y_pred=jnp.array(y_pred)
res=-jnp.sum(y_true*jnp.log(y_pred+eps),axis=-1)
return jnp.round(res,4)
# 预测概率分布
y_pred=[0.1,0.05,0.6,0.0,0.05,0.1,0.0,0.1,0.0,0.0]
# 真实概率分布
y_true=[0,0,1,0,0,0,0,0,0,0]
# 交叉熵为0.5108
print(cross_entropy(y_true,y_pred))
边栏推荐
- 系统可用性:SRE口中的3个9,4个9...到底是个什么东西?
- 【Verilog刷题篇】硬件工程师从0到入门1|基础语法入门
- 解决 win10 下 ISE14.7的 iMPACT 崩溃问题 - FPGA 笔记
- 小程序毕设作品之微信体育馆预约小程序毕业设计成品(4)开题报告
- 浅析多服务在分布式系统下多事务通信处理机制方案
- [Recommended books] The first self-driving technology book
- seaborn笔记:可视化统计关系(散点图、折线图)
- JS prototype hasOwnProperty in Add method Prototype end point Inherit Override parent class method
- 使用分类权重解决数据不平衡的问题
- xctf attack and defense world web master advanced area webshell
猜你喜欢
随机推荐
浅析多服务在分布式系统下多事务通信处理机制方案
萍不回答
Prufer sequence
联邦学习的框架搭建
(翻译)按钮的对比色引导用户操作的方式
Postman batch test interface detailed tutorial
excel vertical to horizontal
文件查询匹配神器 【glob.js】 实用教程
Codeforces CodeTON Round 2 (Div. 1 + Div. 2, Rated, Prizes!) A-D 题解
字符串——Trie
Mini Program Graduation Works WeChat Food Recipe Mini Program Graduation Design Finished Product (8) Graduation Design Thesis Template
【C补充】链表专题 - 单向链表
NgRx Selector 的 Memoization 特性学习笔记
将vim与系统剪贴板的交互使用
AQS
小程序容器+自定义插件,可实现混合App快速开发
华为无线设备配置双链路冷备份(AP指定配置方式)
Ten years after graduation, financial freedom: those things that are more important than hard work, no one will ever teach you
visual studio code multiple editing
深度学习Course2第一周Practical aspects of Deep Learning习题整理









