【一】TensorFlow神经网络模型构建之神经元函数及优化方法

TensorFlow神经网络模型构建主要涉及如下几块:神经元函数、卷积函数、池化函数、分类函数、优化方法。下面分别对这几块进行展开说明:

神经元函数及优化方法

神经网络之所以能解决非线性问题(如语音、图像识别等),本质上就是激活函数加入了非线性因素,弥补了线性模型的表达力,把“激活的神经元的特征”通过函数保留并映射到下一层

激活函数会更改输入数据的维度(输入和输出的维度是相同的)。TensorFlow中有如下激活函数,输入均为需要计算的x(Tensor),输出均为与x数据类型相同的张量(Tensor)。常见的激活函数有Sigmoid,Tanh,ReLU、softplus。

1、Sigmoid函数使用方法
import tensorflow as tf
data=tf.constant([[1.0,2.0],[1.0,2.0],[1.0,2.0]])
with tf.compat.v1.Session() as sess:print(sess.run(tf.sigmoid(data)))

运行结果是如下:
在这里插入图片描述
Sigmoid函数的优点在于它的输出映射在(0,1)内,单调连续,非常适合于用作输出层,并且求导比较容易。缺点在于其软饱和性

软饱和性:指激活函数 h ( x ) h(x) h(x)在取值趋于无穷大时,它的一阶导数趋于0
硬饱和性:指当 ∣ x ∣ > c |x|>c x>c时,其中c为常数, f ′ ( x ) = 0 f^{'}(x)=0 f(x)=0

一旦落入软饱和区, f ′ ( x ) f^{'}(x) f(x)就会变得接近于0,容易产生梯度消失。

梯度消失指在更新模型参数时采用链式求导法则反向求导,越往梯度越

最终的结果是达到一定深度后梯度对于模型的更新就没有任何贡献。

2、ReLU函数使用方法

ReLU函数定义为 f ( x ) = m a x ( x , 0 ) f(x)=max(x,0) f(x)=max(x,0)。softplus函数定义为 f ( x ) = l o g ( 1 + e x p ( x ) ) f(x)=log(1+exp(x)) f(x)=log(1+exp(x)),可以看作是ReLU函数的平滑版本。Relu和softplus函数代码示例及图形如下:

import numpy as np
import matplotlib.pyplot as plt
def relu_tugrp():x=np.arange(-100, 100, 1)softplus=np.log(1+np.exp(x))relu=np.maximum(0,x)plt.subplot(221)plt.plot(x,softplus,label='softplus')#显示图像的labelplt.legend()#创建一个子图plt.subplot(222)plt.plot(x,relu,label='relu')#显示图像的labelplt.legend()#画网格线plt.grid(True)relu_tugrp()

在这里插入图片描述
使用TensorFlow中的relu、reluu6、crelu、softplus函数示例如下:

import tensorflow as tf
data=tf.constant([[-1.0,2.0],[1.0,-2.0],[1.0,2.0]])
with tf.compat.v1.Session() as sess:print(sess.run(tf.nn.relu(data)))print(sess.run(tf.nn.softplus(data)))print(sess.run(tf.nn.relu6(data)))print(sess.run(tf.nn.crelu(data)))

在这里插入图片描述

3、dropout函数使用方法

一个神经元将以概率keep_prob决定是否被抑制。如果被抑制,则该神经元的输出为0;如果不被抑制,那么该神经元的输出值将被放大到原来的 1 k e e p p r o b \frac{1}{keep_prob} keepprob1倍。
在默认情况下,每个神经元是否被抑制是相互独立的。但是否被抑制可以通过noise_shape来调节。当noise_shape[i]==shape(x)[i]时,x中的元素是相互独立的。如果shape(x)=[k,l,m,n],x中的维度顺序分别为批、行、列和通道;如果noise_shape(x)=[k,l,m,n],那么每个批和通道相互独立,行与列相互关联,要么都是0,要么都是原来的值。示例代码:

import tensorflow as tf
data=tf.constant([[-1.0,2.0,3.0,4.0]])
with tf.compat.v1.Session() as sess:print(sess.run(tf.nn.dropout(data,0.5,noise_shape=[1,4])))print(sess.run(tf.nn.dropout(data,0.5,noise_shape=[1,1])))

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/775938.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

google第三方登录接入

资料 ​​​​​​​How to do Google sign-in with Go | Ramblings of a cloud engineer

CentOS常用功能命令集合

1、删除指定目录下所有的空目录 find /xxx -type d -empty -exec rmdir {} 2、删除指定目录下近7天之前的日志文件 find /xxx -name "*.log" -type f -mtime 7 -exec rm -f {} \; 3、查询指定目录下所有的指定格式文件(比如PDF文件) find…

互联网公司裁员现象调查:探寻背后原因与应对策略

近年来,随着互联网行业的快速发展,裁员现象日益引起广泛关注。本文通过对互联网公司裁员现象的调查,分析背后原因,探讨应对策略,以期为互联网企业和求职者提供参考。 近年来,我国互联网行业历经高速发展&am…

Uibot6.0 (RPA财务机器人师资培训第4天 )批量开票机器人案例实战

类似于小北之前发布的一篇博客(不能说很像,只能说是一模一样) Uibot (RPA设计软件)财务会计Web应用自动化(批量开票机器人)-CSDN博客https://blog.csdn.net/Zhiyilang/article/details/136782171?spm1001.2014.3001.…

软考中级——软件设计师真题中的一些知识总结

2023年5月考过了软考中级——软件设计师,一次通过,两科成绩分别是入下。 做上午真题的时候积累了一些易错题,分享一下~~ 2014年5月 1、木马程序:是一种寻找计算机后门,伺机窃取被控计算机中的密码和重要文件等&#…

Apache Hive的基本使用语法

一、数据库操作 创建数据库 create database if not exists myhive;查看数据库 use myhive; desc database myhive;创建数据库并指定hdfs存储 create database myhive2 location /myhive2;删除空数据库(如果有表会报错) drop database myhive;…

[STM32] Keil 创建 HAL 库的工程模板

Keil 创建 HAL 库的工程模板 跟着100ASK_STM32F103_MINI用户手册V1.1.pdf的第7章步骤进行Keil工程的创建。 文章目录 1 创建相关文件夹2 创建“main.c/h”和“stm32f1xx_clk.c/h”3 复制CMSIS和HAL库4 创建新的Keil工程5 添加组文件夹和工程文件6 配置Keil设置 1 创建相关文件…

Vue常用命令

v-for 元素需要多次出现,将v-for添加到元素上 例: <tr v-for "(article,index) in articleList"><td>{{article.title}}</td><td>{{article.title}}</td><td>{{article.category}}</td><td>{{article.time}}</…

Python处理文件系统路径库之pathlib使用详解

概要 Python的pathlib库提供了一种面向对象的方法来处理文件系统路径。它使得路径操作更加直观和易于管理,相比于传统的os.path模块,pathlib提供了更为丰富和灵活的API。 pathlib库 pathlib模块在Python中用于处理文件系统路径。通过使用面向对象的方法,它允许路径表示为P…

蓝桥杯刷题--python-32

4964. 子矩阵 - AcWing题库 from collections import deque n, m, a, b map(int, input().split()) mod 998244353 nums [] for _ in range(n): nums.append(list(map(int, input().split()))) rmin [[0 for i in range(m)] for i in range(n)] rmax [[0 for i in ran…

MySQL高级SQL2

一、表连接 二、视图 三、null值和空值区别 四、存储过程 五、函数 六、字符串函数 七、日期时间函数

Elastic 8.13:Elastic AI 助手中 Amazon Bedrock 的正式发布 (GA) 用于可观测性

作者&#xff1a;来自 Elastic Brian Bergholm 今天&#xff0c;我们很高兴地宣布 Elastic 8.13 的正式发布。 有什么新特性&#xff1f; 8.13 版本的三个最重要的组件包括 Elastic AI 助手中 Amazon Bedrock 支持的正式发布 (general availability - GA)&#xff0c;新的向量…

大数据分布式事务的深入理解?

在一个大数据系统内部分布式事务无处不在&#xff0c;但凡一个任务分布到多台机器上执行就会涉及到分布式事务的场景&#xff0c;分布式事务一直以来都是分布式系统比较难以解决的问题。 事务的理解&#xff0c;比如你要将账户A转1块钱到账户B中&#xff0c;那么这个行为在执行…

东方博宜 1553. 数列求和

东方博宜 1553. 数列求和 #include<iostream> using namespace std; int main() {int n ; cin >> n ;int sum ;sum 0 ;for(int i 1 ; i < n ; i){sum i*i ;}cout << sum ; }

Spring-ThreadLocal内存泄漏原因及解决办法

ThreadLocal原理回顾 ThreadLocal的原理&#xff1a;每个Thread内部维护着一个ThreadLocalMap&#xff0c;它是一个Map。这个映射表的Key是一个弱引用&#xff0c;其实就是ThreadLocal本身&#xff0c;Value是真正存的线程变量Object。 也就是说ThreadLocal本身并不真正存储线…

Vastbase编程利器:PL/pgSQL原理简介

PL/pgSQL是Vastbase提供的一种过程语言&#xff0c;在普通SQL语句的使用上增加了编程语言的特点&#xff0c;可以用于创建函数、存储过程、触发器过程以及创建匿名块等。 本文介绍Vastbase中PL/pgSQL的执行流程&#xff0c;包括PL/pgSQL的编译与运行。 1、编译 PL/pgSQL的编译…

基于深度学习的心律异常分类算法

基于深度学习的心律异常分类系统——算法设计 第一章 研究背景算法流程本文研究内容 第二章 心电信号分类理论基础心电信号产生机理MIT-BIH 心律失常数据库 第三章 心电信号预处理心电信号噪声来源与特点基线漂移工频干扰肌电干扰 心电信号读取与加噪基于小波阈值去噪技术的应用…

如何简单的复制dataframe列

今天在做项目的时候无意中发现了dataframe的一个特性&#xff0c;就是批量复制列的功能&#xff0c;而且列名是一样的&#xff0c;一般情况下&#xff0c;如果用df[xxx] xxx的方式&#xff0c;是没办法复制多个列名一样的列的&#xff0c;操作一次只会覆盖上次的赋值&#xff…

金三银四-探秘银行科技部:稳定职业背后的挑战 | 不敢跳槽啦 | 好慌

小伙伴们好&#xff0c;我是「 行走的程序喵」&#xff0c;感谢您阅读本文&#xff0c;欢迎三连~ &#x1f63b; 【Java基础】专栏&#xff0c;Java基础知识全面详解&#xff1a;&#x1f449;点击直达 &#x1f431; 【Mybatis框架】专栏&#xff0c;入门到基于XML的配置、以…

数据结构——二叉搜索树详解

一、二叉搜索树定义 二叉搜索树又称二叉排序树&#xff0c;它或者是一棵空树&#xff0c;或者是具有以下性质的二叉树: 1.非空左子树上所有节点的值都小于根节点的值。 2.非空右子树上所有节点的值都大于根节点的值。 3.左右子树也都为二叉搜索树。 如下图所示&#xff1a…