当前位置: 首页 > news >正文

吴恩达深度学习复盘(8)神经网络中激活函数的建模

激活函数的建模原理

        到目前为止,在隐藏层等一直使用激活函数,最初通过逻辑回归建立新网络,组合多个逻辑回归单元。这表明激活函数在神经网络构建中一直存在,且最初的网络构建方式与逻辑回归相关。实际上,激活函数的种类很多,使用其他激活函数可以使神经网络具备多样性,所以探索不同激活函数是很有必要的。

        以需求预测为例,如根据价格、运输成本、营销材料等预测产品是否畅销,假设意识可能是二元的(要么意识到,要么没意识到),但实际上对产品(如T恤)的意识程度可能并非二元,可能存在不同程度的意识,如一点点意识到、非常意识到甚至完全随机扩散。所以不应简单将意识建模为二进制或估计意识概率,而应建模为介于0和1之间的数字,甚至可以是任何非负数,因为意识程度可以有各种非负取值。

        以隐私相关为例,第二个隐藏单元的激活使用sigma函数,其值在0到1之间。若想让取值更大,可以换用不同的激活函数。 常见的激活函数是ReLU(修正线性单元)。若输入为Z,其函数特点是在Z小于等于0时,函数值为0;在Z大于0时,函数是一条45度的直线,即函数值等于Z,数学方程为GMZ = max(0, Z)。使用该函数后,激活值可以取零或任何非负值。虽然其名称(修正线性单元)的具体含义无需过于担心,这只是提出该函数的作者所起的名字,大多数深度学习领域的人更多参考GMZ这个表达式。

        常用的激活函数除了ReLU,还有线性激活函数,即GMZ = Z。当使用线性激活函数时,若A是G-f-z(G-f-z 等于Z),那么A就等于W导 X加B,就好像没有激活函数的作用一样。所以有时人们会说不使用任何激活函数,但在课程中会表述为使用线性激活函数,而不是没有激活函数,若听到别人说不使用激活函数,通常指的就是线性激活函数。

        利用这些激活函数可以构建丰富多样且强大的新网络。在为每个神经元构建新网络时,面临着选择使用哪种激活函数(如病态激活函数、ReLU激活函数、线性激活函数等)的问题,选择时候一定要注意分析。

如何选择激活函数

  1. 选择激活函数的概述:神经网络中的不同神经元可以选择不同的激活函数,上层(输出层)有上曾的激活函数,隐藏层有隐藏层的激活函数。
  2. 输出层激活函数的选择
    • 二元分类问题:如果是二元分类问题,即标签 y 只能取 0 或 1,通常最自然的选择是 sigmoid 激活函数。因为这样神经网络可以学习预测 y 等于 1 的概率,就如同在传统处理中所做的那样。所以建议在二元分类问题的输出层使用 sigmoid 激活函数。
    • 回归问题:当处理回归问题时,例如预测明天地铁的情况与今天相比的变化,y 值可以是正也可以是负。在这种情况下,建议使用线性激活函数。因为对于线性激活函数,神经网络的输出 FX(经过激活函数处理后)可以取正值或负值,符合回归问题中 y 值可正可负的特点。
    • 非负预测问题:若预测的值 y 只能取非负值,比如预测房子的价格(不会为负),最自然的选择是 ReLU(value)激活函数。因为 ReLU 激活函数的取值范围是非负的,即要么为 0,要么为正,能满足这类问题的需求。
    • 总结:选择输出层的激活函数通常取决于想要预测的标签的性质,上述是选择输出层激活函数的常用指导方法。
  3. 隐藏层激活函数的选择
    • 现状:目前许多实践者在训练新网络时,隐藏层最常用的激活函数是 ReLU 激活函数。尽管最初描述新网络时使用的是 sigmoid 激活函数,在新网络发展早期,sigmoid 激活函数使用较多,但现在领域发展趋势是更多使用 ReLU,只有在二元分类问题的输出层才会使用 sigmoid 激活函数。
    • 原因
      • 计算效率:ReLU 激活函数计算速度更快,它只需要计算 Max (0, Z),而 sigmoid 函数需要进行指数运算等,效率较低。
      • 梯度问题:sigmoid 函数在曲线的两边(左边和右边)都是平坦的,当使用梯度下降法训练神经网络时,函数平坦的地方梯度很小,这会导致学习速度非常慢。虽然是对代价函数 J (W, b) 进行优化,但激活函数是计算的一部分,sigmoid 函数会使代价函数 J (W, b) 中有更多平坦且梯度小的地方,从而减慢学习速度。而 ReLU 函数只在左边部分平坦,使用 ReLU 激活函数可以使新网络学习速度更快一些。所以对于大多数从业者来说,隐藏层选择 ReLU 激活函数已成为最常见的选择。
  4. 总结激活函数选择建议
    • 输出层:二元分类问题用 sigmoid;y 值可能取负值的回归问题用线性激活函数;y 值只能取非负(正值或零)的情况用 ReLU。
    • 隐藏层:建议将 ReLU 作为默认激活函数。例如在实现网络时,隐藏层的第一层、第二层等可以使用 ReLU 激活函数,而输出层根据具体问题选择合适的激活函数(如上述提到的 sigmoid、线性或 ReLU 等)。
  5. 其他激活函数:除了上述常用的激活函数,研究文献经常有,如 tanh 激活函数、Leaky ReLU 激活函数、Swish 激活函数等。每隔几年研究人员会提出一些有趣的新激活函数,有时它们能有更好的表现。例如在某些工作中,Leaky ReLU 激活函数的效果会比 ReLU 激活函数更好。但对于大多数应用场景,本视频中介绍的激活函数已经足够使用。如果想了解更多其他激活函数的信息,可以在互联网上查阅,在少数情况下,其他激活函数可能会更强大。所以做数据和模型研究的需要更多的研究数学和算法。

为什么不能仅使用线性激活函数

以需求预测为例,如果在神经网络的每个神经元都使用线性激活函数,那么这个大的神经网络本质上和线性回归没有区别。这就失去了使用神经网络的意义,因为它无法拟合比线性回归模型更复杂的关系和数据特征。

- 具体神经网络示例分析:

- 构建一个简单的神经网络示例,输入X是一个数字,有一个隐藏单元(参数为W_1b_1,输出a_1),第二层即输出层也只有一个单元(参数为W_2b_2,输出a_2,也就是网络的输出F(X))。

- 当使用线性激活函数G(Z)=Z时,计算a_1,根据公式a_1 = G(W_1\times X + b_1),由于G(Z)=Z,所以a_1 = W_1\times X + b_1

- 接着计算a_2a_2 = W_2\times a_1 + b_2,将a_1的表达式代入可得a_2 = W_2\times (W_1\times X + b_1) + b_2

- 进一步化简得到a_2 = W_2W_1\times X + W_2b_1 + b_2。令W = W_2\times W_1B = W_2b_1 + b_2,则a_2 = W\times X + B,这表明a_2是输入X的线性函数。

这就说明这个神经网络和直接使用线性回归模型是一样的。

- 从线性代数角度解释,一个线性函数的线性函数本身还是一个线性函数,所以即便神经网络有多个层,如果都使用线性激活函数,也不能计算更复杂的特征或学习更复杂的内容。

- 推广到一般情况:一般情况下,若神经网络有多层,隐藏层和输出层都使用线性激活函数,那么该模型的输出等同于线性回归;若隐藏层使用线性激活函数,输出层使用逻辑激活函数(如sigmoid函数),可以证明这个模型等价于逻辑回归。这意味着这样的神经网络无法实现比线性回归或逻辑回归更强大的功能,也就失去了使用神经网络的优势。

- 激活函数的选择建议:基于上述原因,不建议在神经网络的隐藏层使用线性激活函数,建议使用ReLU(value)激活函数,这样能使神经网络更好地工作,避免出现仅使用线性激活函数带来的局限性。

常用的几种激活函数公式

Sigmoid函数

- 表达式:

f(x)=\frac{1}{1 + e^{-x}}

- 特点:

- 函数的值域在(0, 1)之间,能将任意实数映射到0到1的区间,可用于表示概率。

- 函数具有平滑性,处处可导,其导数为f'(x)=f(x)(1 - f(x))

- 应用场景:常用于二分类问题的输出层,将输出值转换为概率,以表示属于某一类别的可能性。

Tanh函数(双曲正切函数)

- 表达式:

f(x)=\frac{e^{x}-e^{-x}}{e^{x}+e^{-x}}

- 特点:

- 值域在(-1, 1)之间,输出以0为中心,具有对称性。

- 也是平滑可导的,导数为f'(x)=1 - f^{2}(x)

- 应用场景:在一些需要将数据归一化到-1到1区间的场景中较为常用,例如在循环神经网络(RNN)和长短时记忆网络(LSTM)中有时会作为激活函数。

ReLU函数(修正线性单元)

- 表达式:f(x)=\max(0, x)

- 特点: - 计算简单高效,只需要判断输入是否大于0。

- 能有效缓解梯度消失问题,当x>0时,导数恒为1。

- 缺点是当输入为负数时,导数为0,可能会导致神经元“死亡”,即该神经元在训练过程中不再更新。

- 应用场景:在多层感知机(MLP)、卷积神经网络(CNN)等各种神经网络中被广泛应用于隐藏层。

Leaky ReLU函数

- 表达式:f(x)=\begin{cases}x, & x>0 \\ \alpha x, & x\leq0\end{cases},其中alpha是一个较小的常数,通常取0.01左右。

- 特点:

- 解决了ReLU函数在负半轴导数为0的问题,当x为负数时,仍有一个较小的梯度,避免神经元死亡。

- 与ReLU函数相比,计算量增加不大。

- 应用场景:在一些对ReLU函数改进的场景中使用,尤其是当模型出现神经元死亡现象时,Leaky ReLU可能会有更好的表现。

Softmax函数

- 表达式:对于一个n维向量x=(x_{1}, x_{2}, \cdots, x_{n})Softmax(x_{i})=\frac{e^{x_{i}}}{\sum_{j = 1}^{n}e^{x_{j}}}

- 特点:

- 将n维向量映射为一个概率分布,即输出的每个元素都在(0, 1)之间,且所有元素之和为1。

- 可以用于多分类问题,将模型的输出转换为每个类别的概率。

- 应用场景:常用于多分类问题的输出层,例如在图像分类任务中,用于表示图像属于各个类别的概率。

相关文章:

吴恩达深度学习复盘(8)神经网络中激活函数的建模

激活函数的建模原理 到目前为止,在隐藏层等一直使用激活函数,最初通过逻辑回归建立新网络,组合多个逻辑回归单元。这表明激活函数在神经网络构建中一直存在,且最初的网络构建方式与逻辑回归相关。实际上,激活函数的种类…...

1-linux的基础知识

一.linux的文件系统结构 windows文件系统 微软windows系统将硬盘上的几个分区,用A: B: C: D:等符号标识。存取文件时一定要清楚放在那个磁盘的那个目录下。 linux文件系统 linux文件系统的组织模式犹如一颗倒置的树,这与windows文件系统有很大的差别…...

docker 常用命令

文章目录 一、帮助启动类命令启动docker停止docker重启docker查看docker状态开机自启查看docker概要信息 二、镜像命令列出本地主机上的镜像搜索镜像拉取镜像查看镜像所占空间删除镜像 三、容器命令新建运行容器交互式启动容器守护进程式启动容器列出当前所有的容器进入容器之后…...

使用docker搭建redis镜像时云服务器无法访问到国外的docker官网时如何解决

下载redis镜像 docker redis:版本号 此时截图中无法访问到国外的docker官网 解决方案&#xff1a; 通过更换镜像源来正常下载redis镜像 sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<EOF {"registry-mirrors": ["https://docker.1…...

基于Python的人脸识别校园考勤系统

【Python】基于Python的人脸识别校园考勤系统 &#xff08;完整系统源码开发笔记详细部署教程&#xff09;✅ 目录 一、项目简介二、项目界面展示三、项目视频展示 一、项目简介 &#x1f31f; 该系统主要分为前端和后端两个部分&#xff0c;前端&#x1f440;负责人脸采集、人…...

微信小程序学习实录11:startLocationUpdateBackground:fail auth deny

startLocationUpdateBackground:fail auth deny 表明小程序在尝试开启后台位置更新时&#xff0c;用户授权被拒绝。以下是可能的原因及解决方法&#xff1a; 原因分析 缺少必要的用户授权&#xff1a; 使用 wx.startLocationUpdateBackground 接口需要用户授予 scope.userLo…...

DAPP实战篇:规划下我们的开发线路

前言 在DApp实战篇&#xff1a;先用前端起个项目一文中我们起了一个前端项目&#xff0c;在后续开发中笔者将带领大家一步步完成这个DAPP&#xff0c;为了方便后续讲解&#xff0c;本篇将完整说明后续我们要进行的开发和思路。 主打前端 实际上一个完整的DAPP是由前端和智能…...

docker配置redis容器时配置文件docker-compose.yml示例

1.配置数据节点&#xff08;主从节点&#xff09; version: 3.7 services:master:image: redis:5.0.9container_name: redis-masterrestart: alwayscommand: redis-server --appendonly yesports:- 6379:6379slave1:image: redis:5.0.9container_name: redis-slave1restart: a…...

清晰易懂的 Jenkins 安装与核心使用教程

Jenkins 是业界领先的开源自动化服务器&#xff0c;用于实现持续集成与持续交付&#xff08;CI/CD&#xff09;。本教程将覆盖 安装部署、核心功能配置、避坑指南&#xff0c;助你快速掌握企业级自动化流水线搭建&#xff01; 一、Jenkins 安装&#xff08;全平台指南&#xff…...

anomalib—2—输入图像大小调整

三个地方 第一&#xff1a;在定义model时&#xff0c;要在pre_processor里面去定义一个前处理&#xff0c;前处理就一个功能&#xff0c;定义图像的大小 pre_processor0 Patchcore.configure_pre_processor( image_size (128, 128)) model Patchcore( backbone"wide_r…...

小型园区组网图

1. 在小型园区中&#xff0c;S5735-L-V2通常部署在网络的接入层&#xff0c;S8700-4通常部署在网络的核心&#xff0c;出口路由器一般选用AR系列路由器。 2. 接入交换机与核心交换机通过Eth-Trunk组网保证可靠性。 3. 每个部门业务划分到一个VLAN中&#xff0c;部门间的业务在C…...

编程哲学——TCP可靠传输

TCP TCP可靠传输 TCP的可靠传输表现在 &#xff08;1&#xff09;建立连接时三次握手&#xff0c;四次挥手 有点像是这样对话&#xff1a; ”我们开始对话吧“ ”收到“ ”好的&#xff0c;我收到你收到了“ &#xff08;2&#xff09;数据传输时ACK应答和超时重传 ”我们去吃…...

2024华为OD机试真题-任务最优调度(C++/Java/Python)-E卷-200分

2024华为OD机试最新E卷题库-(D卷+E卷)-(JAVA、Python、C++) 目录 题目描述 输入描述 输出描述 用例1 考点 题目解析 代码 c++ java python 题目描述 给定一个正整数数组表示待系统执行的任务列表,数组的每一个元素代表一个任务,元素的值表示该任务的类型。请计算执…...

蓝桥杯 2023省B 飞机降落 dfs

传送门 P9241 [蓝桥杯 2023 省 B] 飞机降落 - 洛谷 n<10&#xff0c;考虑dfs&#xff0c;只有当 当前飞机的到达时刻盘旋时间 < 上一个飞机降落的时刻 时&#xff0c;当前飞机才能降落 const int N 1e3 10;int n; struct Node {LL t,d,l; }a[N];bool st[N];bool dfs(in…...

Mybatis--动态SQL

动态SQL是MyBatis的重要特征之一&#xff0c;能够完成不同条件下的SQL拼接&#xff0c;参考文档&#xff1a;动态 SQL_MyBatis中文网 一、<if>标签 该标签主要适用的情况为实现必填字段和非必填字段&#xff1a; 例如下面的例子就是将用户表中的性别设置成了非必填字段…...

计算机视觉中的基于网格的卷绕算法全解析

大家好呀&#xff5e;今天给大家带来一个超级实用且有趣的计算机视觉技巧&#xff1a;基于网格的卷绕算法&#xff08;Grid Warp Algorithm&#xff09;&#xff01;如果你对图像变形、动画制作感兴趣&#xff0c;那一定不要错过这篇文章哦&#xff01;话不多说&#xff0c;直接…...

xv6 文件系统

Buffer Cache buffer Cache 结构体 bcache 存放了 NBUF 个 buf 框&#xff0c;每个框对应 disk 上某一个 block。从初始化函数 binit中可以看出&#xff0c;bcache 是一个循环双向链表。通过双链表组织这些 buf&#xff0c;以近似 LRU 的策略管理&#xff0c;大概如下图。 st…...

Python Cookbook-5.5 根据内嵌的数字将字符串排序

任务 你想将一个字符串列表进行排序&#xff0c;这些字符串都含有数字的子串(比如一系列邮寄地址)。举个例子&#xff0c;“foo2.txt”应该出现在“foo10.txt”之前。然而&#xff0c;Python 默认的字符串比较是基于字母顺序的&#xff0c;所以默认情况下&#xff0c;“foo10.…...

EMC内参二(1-45页)学习【技术进阶】

EMC设计介入产品设计时间越早&#xff0c;成本越低。 微带线和带状线的区别&#xff1a; 微带线是PCB外层的走线&#xff0c;带状线是结余两个完整参考平面&#xff08;电源层和地层&#xff09;之间的走线。 天线效应&#xff1a; PCB上面任何悬空的金属都会积累电荷&…...

Ansible(7)——管理机密

目录 一、Ansible Vault &#xff1a; 二、ansible-vault 命令行工具&#xff1a; 1、创建加密文件&#xff1a; 2、查看加密文件&#xff1a; 3、编辑现有加密文件&#xff1a; 4、加密现有文件&#xff1a; 5、解密现有文件&#xff1a; 6、更改加密文件的密码&#…...

通俗地讲述DDD的设计

通俗地讲述DDD的设计 前言为什么要使用DDDDDD架构分层重构实践关键问题解决方案通过​​领域事件机制​​解耦服务依赖&#xff1a;防止逻辑下沉 领域划分电商场景下的领域划分 结语完结撒花&#xff0c;如有需要收藏的看官&#xff0c;顺便也用发财的小手点点赞哈&#xff0c;…...

【学Rust写CAD】34 精确 Alpha 混合函数(argb.rs补充方法)

源码 #[inline]pub fn over_exact(self, dst: Argb) -> Argb {let a 255 - self.alpha32();let t dst.rb() * a 0x80_00_80;let mut rb (t ((t >> 8) & Argb::MASK)) >> 8;rb & Argb::MASK;rb self.rb();// saturaterb | 0x1000100 - ((rb >&…...

10种电阻综合对比——《器件手册--电阻》

二、电阻 前言 10种电阻对比数据表 电阻类型 原理 特点 应用 贴片电阻 贴片电阻是表面贴装元件&#xff0c;通过将电阻体直接贴在电路板上实现电路连接 体积小、重量轻&#xff0c;适合高密度电路板&#xff1b;精度高、稳定性好&#xff0c;便于自动化生产 广泛应用于…...

SpringCloud入门及创建分布式项目

1、了解微服务 1.1 什么是微服务 微服务是一种架构风格一个应用拆分为一组小型服务每个服务运行在自己的进程内&#xff0c;也就是可独立部署和升级服务之间使用轻量级HTTP交互服务围绕业务功能拆分可以由全自动部署机制独立部署去中心化&#xff0c;服务自治。服务可以使用不同…...

xv6启动过程

entry,S -> start.c -> main.c -> proc.c中的 userinit 函数 -> initcode.S -> init.c entry.S // entry.S# qemu -kernel loads the kernel at 0x80000000# and causes each CPU to jump there.# kernel.ld causes the following code to# be placed at 0x800…...

【秣厉科技】LabVIEW工具包——OpenCV 教程(18):highgui 模块

文章目录 前言highgui 模块总结 前言 需要下载安装OpenCV工具包的朋友&#xff0c;请前往 此处 &#xff1b;系统要求&#xff1a;Windows系统&#xff0c;LabVIEW>2018&#xff0c;兼容32位和64位。 highgui 模块 尽量别用&#xff0c;要不我删了吧&#xff1f; LabVIEW…...

基于OPENCV的图像透视矫正

这段代码的主要功能是对输入的图像进行透视矫正。它会读取一张图像&#xff0c;检测图像中最大的四边形轮廓&#xff0c;然后对该四边形区域进行透视变换&#xff0c;将其矫正为正视图&#xff0c;最后保存矫正后的图像。 模块导入说明 python import cv2 import numpy as n…...

数据结构----------顺序查找,折半查找和分块查找(java实现)

import java.util.Arrays;//顺序查找法 public class Main {public static void main(String[] args) {//查找表int[] arr {4, 3, 5, 1, 2};System.out.print("5在数组中的索引:");System.out.println(SearchSeq(arr, 5));Arrays.sort(arr);System.out.print("…...

整数编码 - 华为OD统一考试(A卷、JavaScript)

题目描述 实现一种整数编码方法&#xff0c;使得待编码的数字越小&#xff0c;编码后所占用的字节数越小。 编码规则如下: 编码时7位一组&#xff0c;每个字节的低7位用于存储待编码数字的补码。字节的最高位表示后续是否还有字节&#xff0c;置1表示后面还有更多的字节&…...

CompletableFuture:整合、超时、完成事件与批量处理

引言 在异步编程实践中&#xff0c;我们不仅需要处理单个任务的执行流程&#xff0c;更需要应对多个异步任务之间的复杂交互。本文将通过实际案例解析以下核心功能&#xff1a; 双任务整合&#xff1a;合并两个独立任务的结果高效超时控制&#xff1a;防止异步操作无限等待完…...

【LeetCode 热题100】45:跳跃游戏 II(详细解析)(Go语言版)

&#x1f680; 力扣 45&#xff1a;跳跃游戏 II&#xff08;全解法详解&#xff09; &#x1f4cc; 题目描述 给你一个非负整数数组 nums&#xff0c;表示你最初位于数组的第一个位置。 数组中的每个元素表示你在该位置可以跳跃的最大长度。 你的目标是使用 最少的跳跃次数 到…...

【C/C++】滑动谜题(leetcode T773)

核心考点&#xff1a;广度优先搜索 (BFS)、哈希表、字符串、状态转移 题目描述&#xff1a; 在一个 2 x 3 的板上&#xff08;board&#xff09;有 5 块砖瓦&#xff0c;用数字 1~5 来表示, 以及一块空缺用 0 来表示。一次 移动 定义为选择 0 与一个相邻的数字&#xff08;上…...

python用x08覆盖上一次输出来模拟控制台等待效果,pycharm运行sys.stdout.write在控制台无打印的解决方法

一个多进程程序&#xff0c;主进程阻塞&#xff0c;子进程不断打印等待效果直到主进程结束&#xff0c;原理是\x08在ascii中表示退格键&#xff0c;理解为打印完后立马删掉打印下一个内容。 import sys, time import multiprocessing DELAY 0.1 DISPLAY [ |, /, -, \\ …...

【嵌入式开发】使用Linux系统调用编程练习

一、进程和线程的概念及基础用法 在Linux系统中&#xff0c;进程&#xff08;Process&#xff09;和线程&#xff08;Thread&#xff09;是操作系统进行任务调度的基本单位&#xff0c;它们既有联系又有区别。 1.1 进程和线程介绍 1.1.1 进程&#xff08;Process&#xff09…...

React框架的Concurrent Mode

以下是关于 Concurrent Mode 的系统梳理: 一、Concurrent Mode 的诞生背景 传统渲染的局限性 同步阻塞:React 15 的 Stack Reconciler 无法中断渲染流程优先级缺失:用户交互与后台任务同等对待资源竞争:网络请求与渲染任务无法智能调度核心设计目标 可中断渲染:允许高优先…...

ER-图,详情和画法

一、E-R图的核心元素 1.实体 表示现实中对象或概念&#xff0c;用矩形表示 示例&#xff1a;用户、老师、学生 2.属性 描述实体的特征&#xff0c;用椭圆表示。 分为主键&#xff08;用户id&#xff09; 和非主键&#xff08;用户昵称&#xff09; 3.关系 表示实体间的…...

深度学习图像分类数据集—十种西红柿病态叶识别分类

该数据集为图像分类数据集&#xff0c;适用于ResNet、VGG等卷积神经网络&#xff0c;SENet、CBAM等注意力机制相关算法&#xff0c;Vision Transformer等Transformer相关算法。 数据集信息介绍&#xff1a;10种西红柿病态叶识别分类&#xff1a;Bacterial_spot&#xff0c;Earl…...

【Flask开发】嘿马文学web完整flask项目第3篇:2.用户认证,2.用户认证【附代码文档】

教程总体简介&#xff1a;2. 目标 1.1产品与开发 1.2环境配置 1.3 运行方式 1.4目录说明 1.5数据库设计 2.用户认证 Json Web Token(JWT) 3.书架 4.1分类列表 5.搜索 5.3搜索-精准&高匹配&推荐 6.小说 6.4推荐-同类热门推荐 7.浏览记录 8.1配置-阅读偏好 8.配置 9.1项目…...

基于Pyhon的京东笔记本电脑数据可视化分析系统

【Python】基于Pyhon的京东笔记本电脑数据可视化分析系统 &#xff08;完整系统源码开发笔记详细部署教程&#xff09;✅ 目录 一、项目简介二、项目界面展示三、项目视频展示 一、项目简介 本项目基于Python语言开发&#xff0c;通过Flask框架与Bootstrap的结合&#xff0c;实…...

『不废话』之Llama 4实测小报

2025年4月5日Llama 4一开源&#xff0c;随后OpenRouter等平台就提供免费调用。对于中文社区来&#xff0c;官方的测评结果其实意义不大&#xff08;原因先按下不表&#xff09;&#xff0c;就看知乎、微博、B站、twitter上的真实感受&#xff0c;最重要的是自己的真实案例测评。…...

llama.cpp 和 vLLM 的详细对比分析

llama.cpp 和 vLLM 的详细对比分析&#xff0c;基于最新技术动态&#xff08;2025年4月&#xff09;整理&#xff1a; 1. 核心定位 维度llama.cppvLLM设计目标轻量化边缘计算&#xff0c;突破硬件限制&#xff08;如手机/树莓派&#xff09;企业级高性能推理&#xff0c;优化G…...

Windows 操作系统使用vscode 配置GTK4

本篇教程,主要介绍在vscode中如何配置使用GTK4,并运行一个简易的入门案例。 一、程序代码 1、demo.cpp #include <gtk/gtk.h>// 定义一个回调函数,用于处理按钮点击事件 static void on_button_clicked(GtkButton *button...

swift-汇编分析多态原理、init

一、结构体和类的本质区别 结构体 编译完就知道调用谁 类 &#xff08;类似c 的虚函数表&#xff09; 12 直接将对象将来要调用的函数内存地址提前放进类型信息里面&#xff0c;这些类型信息编译完就确定你将来要调用谁&#xff0c;运行过程过程中就去那块内存里面找 方法的存…...

Docker基础2

如需转载&#xff0c;标记出处 本次我们将下载一个 Docker 镜像&#xff0c;从镜像中启动容器 上一章&#xff0c;安装 Docker 时&#xff0c;获得两个主要组件&#xff1a; Docker 客户端 Docker 守护进程&#xff08;有时称为“服务器”或“引擎”&#xff09; 守护进程实…...

labelme json 标签转yolo txt【记录】

01 labelme json 转 txt&#xff08;w_convert_labelme_to_yolo.py&#xff09; #WT 将labelme json标签格式转换为YOLO txt格式 # 导入所需模块 import cv2 # OpenCV用于图像处理 import os # 操作系统路径管理 import json # JSON文件解析 import glob # 文件通配符搜索…...

Java 集合框架与 Stream 流深入剖析(重点详细讲解)

目录 引言 一、ArrayList 1. 概述 2. 特点 动态扩容 初始容量 扩容倍数 随机访问高效 插入和删除效率低 3. 代码示例 4. 分析 二、HashSet 1. 概述 2. 特点 唯一性 插入、删除和查找效率高 无序性 3. 代码示例 4. 分析 三、HashMap 1. 概述 2. 特点 键唯…...

实操(多线程特点、健壮性降低、缺乏访问控制)Linux

线程 创建两个线程 makefile&#xff08;添加原生线程库&#xff09; mythread:thread.ccg -o $ $^ -stdc11 -lpthread .PHONY:clean clean:rm -f mythreadthread.cc #include <iostream> #include <pthread.h> #include<unistd.h>using namespace std;…...

微信小程序学习实录12:掌握大数据量轨迹展示的MySQL结构设计

获取经纬度信息后&#xff0c;mysql建立数据表po_trajectory&#xff0c;字段包含tra_id、longitude、latitude、tra_time和openid。 为微信小程序创建的 po_trajectory 数据表&#xff0c;字段包含 tra_id、longitude、latitude、tra_time 和 openid&#xff0c;从结构设计上…...

语法: result=ldexp (value, exp);

LDEXP( ) 语法: resultldexp (value, exp); 参数: value是一个浮点数; exp是一个有符号的整型数; 返回值: result同value保持一致,是一个浮点数,结果是value乘以2的exp次方. 功能: ldexp( ) 该函数是用一个浮点数乘以2的多少(整数)次方. 有效性: 适合所有的CPU设备…...

STM32学习之硬件FPU(原理篇)

&#x1f4e2;&#xff1a;如果你也对机器人、人工智能感兴趣&#xff0c;看来我们志同道合✨ &#x1f4e2;&#xff1a;不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】 &#x1f4e2;&#xff1a;文章若有幸对你有帮助&#xff0c;可点赞 &#x1f44d;…...