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

news2024/11/17 7:45:28

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')
 #显示图像的label
 plt.legend()
 
 #创建一个子图
 plt.subplot(222)
 plt.plot(x,relu,label='relu')
 #显示图像的label
 plt.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.coloradmin.cn/o/1550583.html

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

相关文章

共建数治政务,共赢数智未来——锐捷网络召开2024政府行业全国核心合作伙伴大会

在我国不断推进现代化产业体系建设,新质生产力正进入跃迁式发展的今天,加速政府的数字化转型,促进数字技术与政府应用深度融合,也正成为越来越多地方政府的共识。为了更好地携手合作伙伴共同把握数智政务建设新契机、聚力提升数智政务建设新能力,3月22日,以“共建数治政务,共赢…

C++第十三弹---内存管理(下)

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C详解】 目录 1、operator new与operator delete函数 1.1、operator new与operator delete函数 2、new和delete的实现原理 2.1、内置类型 2.2、自定义类型 …

星光/宝骏/缤果/长安 车机CarPlay手机操作破解教程V2.0版本(无需笔记本、无需笔记本、无需笔记本)

之前写了个1.0版本,由于太局限,需要用到笔记本才能操作,很多车友反馈不方便。特此出个手机版教程,简单easy,妈妈再也不用担心我搞不定啦 一、准备工作 先卸载车机上的autokit 或者 智能互联 app,这步很关…

使用Qt生成图片

Qt之生成png/jpg/bmp格式图片_qt生成图片-CSDN博客 (1)使用QPainter 示例关键代码: QImage image(QSize(this->width(),this->height()),QImage::Format_ARGB32);image.fill("white");QPainter *painter new QPainter(&image);painter->…

详解 WebWorker 的概念、使用场景、示例

前言 提到 WebWorker,可能有些小伙伴比较陌生,不知道是做什么的,甚至不知道使用场景,今天这篇文章就带大家一起简单了解一下什么是 webworker! 概念 WebWorker 实际上是运行在浏览器后台的一个单独的线程&#xff0…

[PCL] PCLVisualizer可视化的应用

[PCL] PCLVisualizer可视化的应用 通常情况下 PCL的可视化 是非常方便. 但是 #include<pcl/io/io.h> #include<pcl/io/pcd_io.h> #include<pcl/io/ply_io.h> #include<pcl/visualization/cloud_viewer.h>#include<iostream> #include<threa…

【函数修改的重要问题】想要增加C++函数返回值,选择结构体?OR 额外参数?

作为一个程序员&#xff0c;我们经常会遇到这样的情况&#xff1a; 别人写的C项目&#xff0c;需要我们来进行 ”修改&#xff0c;或者增加功能“。 举个例子 我们需要对于一个已有的C函数&#xff0c;增加它的返回值信息&#xff0c;通常有两条路可走&#xff1a; 用结构体…

只用一部手机,为你的吉利车机安装第三方软件(支持大部分车型)

&#x1f4a1; 文中使用的方法为DNS重定向&#xff0c;需要你具备一定的动手能力&#xff0c;否则将无法达到最终目的。 &#x1f4a1; 阅读本文&#xff0c;视为你有一定电脑基础&#xff0c;难以理解时&#xff0c;请寻求百度帮助&#xff0c;百度就是最好的老师&#xff01;…

“大模型+机器人”的现状和未来,重磅综述报告来了!

基础模型(Foundation Models)是近年来人工智能领域的重要突破&#xff0c;在自然语言处理和计算机视觉等领域取得了显著成果。将基础模型引入机器人学&#xff0c;有望从感知、决策和控制等方面提升机器人系统的性能&#xff0c;推动机器人学的发展。由斯坦福大学、普林斯顿大学…

红队笔记8-CTF5打靶流程-CMS漏洞-多用户信息泄露(vulnhub)

目录 开头: 1.主机发现和端口扫描&#xff1a; 2.80端口-NanoCMS哈希密码信息泄露-后台getshell 3.提权-用户过多信息泄露 4.总结&#xff1a; 开头: 学习的视频是哔哩哔哩红队笔记&#xff1a; 「红队笔记」靶机精讲&#xff1a;LAMPSecurityCTF5 - 标准攻击链&#xff…

【Java程序设计】【C00392】基于(JavaWeb)Springboot的校园生活服务平台(有论文)

基于&#xff08;JavaWeb&#xff09;Springboot的校园生活服务平台&#xff08;有论文&#xff09; 项目简介项目获取开发环境项目技术运行截图 博主介绍&#xff1a;java高级开发&#xff0c;从事互联网行业六年&#xff0c;已经做了六年的毕业设计程序开发&#xff0c;开发过…

有趣的css - 多弧形加载动画

大家好&#xff0c;我是 Just&#xff0c;这里是「设计师工作日常」&#xff0c;今天分享的是用纯css实现多双弧线加载动画。 《有趣的css》系列最新实例通过公众号「设计师工作日常」发布。 目录 整体效果核心代码html 代码css 部分代码 完整代码如下html 页面css 样式页面渲…

MySQL数据库基础--约束

约束 约束是作用于表中字段上的规则&#xff0c;用于限制在表中的数据 目的&#xff1a;保证数据库中数据的正确&#xff0c;有效性和完成性。 分类&#xff1a; 注意&#xff1a;约束是作用于表中字段上的&#xff0c;可以在创建表/修改表的时候哦添加约束 外键约束 外键用…

心理治疗聊天机器人的调查

摘要 这项调查旨在调查、分析和比较现有聊天机器人在心理治疗中的可行性和缺陷。调查指出了未来心理治疗聊天机器人所需的一系列任务。我们在公共数据库中检索了约1200篇相关文献&#xff0c;并选择了五种典型的和最先进的心理治疗聊天机器人。大多数最先进的心理治疗聊天机器人…

AndroidStudio中一些实用插件

1.RainbowBrackets插件为圆括号、方括号和花括号内的代码添加了漂亮的彩虹色 2.CodeGlance类似于Sublime或Xcode&#xff0c;CodeGlance插件在编辑器中嵌入了代码迷你图。滚动条也有所增大。在CodeGlance预览文件的代码模式下&#xff0c;用户可以快速导航到目标处。 3.ADBWifi…

机器人是怎么计时的(通用定时器 - 时基单元)

目录 一&#xff0c;引言 二&#xff0c;机器人的“大脑” 三&#xff0c;时基单元介绍 1&#xff0c;定时器框图 2&#xff0c;时基单元 &#xff08;1&#xff09;预分频器 &#xff08;2&#xff09;CNT计数器 &#xff08;3&#xff09;自动重装载寄存器 四&#…

如何在vue中使用echarts,与jquery中有啥不同。

一、vue中使用echarts的步骤 在 Vue 中使用 ECharts 可以按照以下步骤进行&#xff1a; 安装 ECharts&#xff1a;使用 npm 或 yarn 安装 ECharts&#xff1a; npm install echarts 在 Vue 组件中引入 ECharts&#xff1a; import echarts from echarts 在 Vue 组件的 mou…

BUUCTF-Misc15

[SWPU2019]我有一只马里奥1 1.打开附件 是一个可执行文件 2.执行 双击可执行文件生成一个1.txt的文件 文件提示ntfs,需要一个工具ntfsStreamsEditor 3.ntfsStreamsEditor “ntfsStreamsEditor” 是一个用于管理 Windows 操作系统中 NTFS&#xff08;新技术文件系统&#xff…

node的安装

官网下载&#xff08;建议使用预编译包安装&#xff09; 地址&#xff08;https://nodejs.org/en/download/prebuilt-binaries&#xff09; 解压包&#xff0c;并将 bin下面的 node npm npx加入到环境变量中或者建立软连接 ln -s 安装位置/bin/node PATH下面的路径 npm配置…