【一】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,一经查实,立即删除!

相关文章

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

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

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

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

MySQL高级SQL2

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

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

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

东方博宜 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 心律失常数据库 第三章 心电信号预处理心电信号噪声来源与特点基线漂移工频干扰肌电干扰 心电信号读取与加噪基于小波阈值去噪技术的应用…

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

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

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

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

浏览器扩展程序增加 vue_dev_tools 调试工具

1、引言 在做 Vue 项目的开发时&#xff0c;我们经常需要在页面上调试&#xff0c;接下来介绍如何在浏览器扩展程序增加 vue_dev_tools 调试工具。 Download the Vue Devtools extension for a better development experience 翻译&#xff1a;下载Vue Devtools扩展以获得更好…

1.6.1 变换

我们要想改变物体的位置&#xff0c;现有解决办法是&#xff0c;每一帧改变物体的顶点并且重配置缓冲区从而使物体移动&#xff0c;但是这样太繁琐&#xff0c;更好的解决方式是使用矩阵&#xff08;Matrix&#xff09;来更好的变换&#xff08;Transform&#xff09;一个物体。…

数据结构——快速排序的三种方法和非递归实现快速排序

数据结构——快速排序的三种方法和非递归实现快速排序&#xff08;升序&#xff09; 快速排序的单趟排序hoare法挖坑法前后指针法 快速排序的实现key基准值的选取快速排序代码快速排序的优化 快速排序&#xff08;非递归&#xff09; 快速排序的单趟排序 hoare法 思路:从给定…

后端前行Vue之路(二):模版语法之插值与指令

1.概述 Vue.js的模板语法是一种将Vue实例的数据绑定到HTML文档的方法。Vue的模板语法是一种基于HTML的扩展&#xff0c;允许开发者将Vue实例中的数据绑定到HTML元素&#xff0c;以及在HTML中使用一些简单的逻辑和指令。Vue.js 基于 HTML 的模板语法允许开发者声明式地将 DOM 绑…

Windows11系统缺少解决办法

一.缺少msvcp120.dll 下载Mircrosoft Visual C 2015等系统关键组件 Microsoft Visual C 2015-2022 Redistributable (x86) - 14.34.31931 Installation Error etc.. - Microsoft Q&A 二.缺少python27.dll 重新下载python2.7进行安装(选择Windows x86-64 MSI installer)…

三级等保建设技术方案-Word

1信息系统详细设计方案 1.1安全建设需求分析 1.1.1网络结构安全 1.1.2边界安全风险与需求分析 1.1.3运维风险需求分析 1.1.4关键服务器管理风险分析 1.1.5关键服务器用户操作管理风险分析 1.1.6数据库敏感数据运维风险分析 1.1.7“人机”运维操作行为风险综合分析 1.2…