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

深度学习Dropout实现

深度学习中的 Dropout 技术在代码层面上的实现通常非常直接。其核心思想是在训练过程中,对于网络中的每个神经元(或者更精确地说,是每个神经元的输出),以一定的概率 p 随机将其输出置为 0。在反向传播时,这些被“drop out”的神经元也不会参与梯度更新。

以下是 Dropout 在代码层面上的一个基本实现逻辑,以 Python 和 NumPy 为例进行说明,然后再展示在常见的深度学习框架(如 TensorFlow 和 PyTorch)中的实现方式。

1. NumPy 实现(概念演示)

假设我们有一个神经网络的某一层输出 activation,它是一个形状为 (batch_size, num_neurons) 的 NumPy 数组。我们可以通过以下步骤实现 Dropout:

Python

import numpy as npdef dropout_numpy(activation, keep_prob):"""使用 NumPy 实现 Dropout。Args:activation: 神经网络层的激活输出 (NumPy array).keep_prob: 保留神经元的概率 (float, 0 到 1 之间).Returns:经过 Dropout 处理的激活输出 (NumPy array).mask: 用于记录哪些神经元被 drop out 的掩码 (NumPy array)."""if keep_prob < 0. or keep_prob > 1.:raise ValueError("keep_prob must be between 0 and 1")# 生成一个和 activation 形状相同的随机掩码,元素值为 True 或 Falsemask = (np.random.rand(*activation.shape) < keep_prob)# 将掩码应用于激活输出,被 drop out 的神经元输出置为 0output = activation * mask# 在训练阶段,为了保证下一层的期望输入不变,需要对保留下来的神经元输出进行缩放output /= keep_probreturn output, mask# 示例
batch_size = 64
num_neurons = 128
activation = np.random.randn(batch_size, num_neurons)
keep_prob = 0.8dropout_output, dropout_mask = dropout_numpy(activation, keep_prob)print("原始激活输出的形状:", activation.shape)
print("Dropout 后的激活输出的形状:", dropout_output.shape)
print("Dropout 掩码的形状:", dropout_mask.shape)
print("被 drop out 的神经元比例:", np.sum(dropout_mask == False) / dropout_mask.size)

代码解释:

  • keep_prob: 这是保留神经元的概率。Dropout 的概率通常设置为 1 - keep_prob
  • 生成掩码 (mask): 我们使用 np.random.rand() 生成一个和输入 activation 形状相同的随机数数组,其元素值在 0 到 1 之间。然后,我们将这个数组与 keep_prob 进行比较,得到一个布尔类型的掩码。True 表示对应的神经元被保留,False 表示被 drop out。
  • 应用掩码 (output = activation * mask): 我们将掩码和原始的激活输出进行逐元素相乘。由于布尔类型的 TrueFalse 在数值运算中会被转换为 1 和 0,所以掩码中为 False 的位置对应的激活输出会被置为 0。
  • 缩放 (output /= keep_prob): 这是一个非常重要的步骤。在训练阶段,由于一部分神经元被随机置为 0,为了保证下一层神经元接收到的期望输入与没有 Dropout 时大致相同,我们需要对保留下来的神经元的输出进行放大。放大的倍数是 1 / keep_prob

需要注意的是,在模型的评估(或推理)阶段,通常不会使用 Dropout。这意味着 keep_prob 会被设置为 1,或者 Dropout 层会被禁用。这是因为 Dropout 是一种在训练时使用的正则化技术,用于减少过拟合。在评估时,我们希望模型的所有神经元都参与计算,以获得最准确的预测。

2. TensorFlow 实现

在 TensorFlow 中,Dropout 是一个内置的层:

Python

import tensorflow as tf# 在 Sequential 模型中添加 Dropout 层
model = tf.keras.models.Sequential([tf.keras.layers.Dense(128, activation='relu', input_shape=(784,)),tf.keras.layers.Dropout(0.2), # Dropout 概率为 0.2 (即 keep_prob 为 0.8)tf.keras.layers.Dense(10, activation='softmax')
])# 或者在函数式 API 中使用
inputs = tf.keras.Input(shape=(784,))
x = tf.keras.layers.Dense(128, activation='relu')(inputs)
x = tf.keras.layers.Dropout(0.2)(x)
outputs = tf.keras.layers.Dense(10, activation='softmax')(x)
model_functional = tf.keras.Model(inputs=inputs, outputs=outputs)# 训练模型
# model.compile(...)
# model.fit(...)

在 TensorFlow 的 tf.keras.layers.Dropout(rate) 层中,rate 参数指定的是神经元被 drop out 的概率。在训练时,这个层会随机将一部分神经元的输出置为 0,并对剩下的神经元进行缩放。在推理时,这个层不会有任何作用。TensorFlow 内部会自动处理训练和推理阶段的行为。

3. PyTorch 实现

在 PyTorch 中,Dropout 也是一个内置的模块:

代码段

import torch
import torch.nn as nnclass Net(nn.Module):def __init__(self):super(Net, self).__init__()self.fc1 = nn.Linear(784, 128)self.relu = nn.ReLU()self.dropout = nn.Dropout(p=0.2) # Dropout 概率为 0.2self.fc2 = nn.Linear(128, 10)self.softmax = nn.Softmax(dim=1)def forward(self, x):x = self.fc1(x)x = self.relu(x)x = self.dropout(x)x = self.fc2(x)x = self.softmax(x)return xmodel = Net()# 设置模型为训练模式 (启用 Dropout)
model.train()# 设置模型为评估模式 (禁用 Dropout)
model.eval()# 在前向传播中使用 Dropout
# output = model(input_tensor)

在 PyTorch 的 nn.Dropout(p) 模块中,p 参数指定的是神经元被 drop out 的概率。与 TensorFlow 类似,PyTorch 的 Dropout 在训练模式 (model.train()) 下会启用,随机将神经元置零并缩放输出。在评估模式 (model.eval()) 下,Dropout 层会失效,相当于一个恒等变换。

总结

在代码层面上,Dropout 的实现主要涉及以下几个步骤:

  1. 生成一个随机的二值掩码,其形状与神经元的输出相同,掩码中每个元素以一定的概率(Dropout 概率)为 0,以另一概率(保留概率)为 1。
  2. 将这个掩码与神经元的输出逐元素相乘,从而将一部分神经元的输出置为 0。
  3. 在训练阶段,对保留下来的神经元的输出进行缩放,通常除以保留概率。
  4. 在评估阶段,禁用 Dropout,即不进行掩码操作和缩放。

现代深度学习框架已经将 Dropout 的实现封装在专门的层或模块中,用户只需要指定 Dropout 的概率即可,框架会自动处理训练和评估阶段的不同行为。这大大简化了在模型中应用 Dropout 的过程。

相关文章:

深度学习Dropout实现

深度学习中的 Dropout 技术在代码层面上的实现通常非常直接。其核心思想是在训练过程中&#xff0c;对于网络中的每个神经元&#xff08;或者更精确地说&#xff0c;是每个神经元的输出&#xff09;&#xff0c;以一定的概率 p 随机将其输出置为 0。在反向传播时&#xff0c;这…...

IIS服务器URL重写配置完整教程

1.下载URL Rewrite Module 2.1 https://www.iis.net/downloads/microsoft/url-rewrite https://download.microsoft.com/download/1/2/8/128E2E22-C1B9-44A4-BE2A-5859ED1D4592/rewrite_amd64_zh-CN.msi 2.安装...

前后端分离博客 Weblog 项目实战

前后端分离博客 Weblog 项目实战&#xff1a;专栏介绍 - 犬小哈专栏 原文作者 http://116.62.199.48/ 功能模块 技术栈 必备环境 后端环境&#xff1a; JDK 1.8 版本&#xff08;此版本是目前企业中使用最广泛的&#xff09;;MySQL 5.7 版本 (或者 8.x 版本都可以&#…...

stm32 ADC单通道转换

stm32c8t6仅有12位分辨率 1、单次转换 非扫描 1、初始化 void Ad_Init() {RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE);//配置ADCCLK时钟分频,ADC的输入时钟不得超过14MHzRCC_ADCCLKConfig(RCC_PCLK2_Div6);G…...

万文c++继承

1、继承的概念与定义 1.1继承的概念 继承&#xff1a;是c代码复用的手段&#xff0c;允许在原有的基础上扩展&#xff0c;在此之前都是函数层次的复用&#xff0c;继承是类设计层次的复用。 下面有两个类Student和Teacher都有姓名/地址/电话/年龄等成员变量。都有identity身…...

记录一次git提交失败解决方案

问题显示: Push rejected: Push to origin/master was rejected 解决步骤: ‌拉取远程代码并合并‌ 先同步远程仓库的更新到本地&#xff0c;允许合并不相关历史记录&#xff1a; git pull origin master --allow-unrelated-histories 此操作会触发合并冲突解决流程&#xf…...

uni-app vue3版本打包h5后 页面跳转报错(uni[e] is not a function)

先看问题 解决方案 在HBuilderX项目中&#xff0c;若需在Web配置中显式关闭摇树优化&#xff08;Tree Shaking&#xff09;&#xff0c;可以通过以下步骤实现&#xff1a;首先&#xff0c;在配置中打开摇树优化&#xff0c;然后再将其关闭。这样操作后&#xff0c;配置文件中会…...

数字住建:助推智慧工地创新发展

近年来&#xff0c;国家和地方政府陆续出台了一系列政策措施&#xff0c;推动建筑业的智能化高质量发展。通过明确智慧工地的发展方向和目标定位&#xff0c;鼓励建筑业企业采用先进的信息化技术和管理模式&#xff0c;开展智能建造试点城市、资金扶持、税收优惠、智慧工地建设…...

libmemcached库api接口讲解二

我们来学一下怎么存数据 &#x1f4d8; libmemcached 数据写入函数详解&#xff08;set / add / replace&#xff09; ✅ 一、三个函数的作用与区别 函数作用key 存在时key 不存在时常见用途memcached_set()写入&#xff08;新增或覆盖&#xff09;✅ 覆盖✅ 创建默认推荐memc…...

【数据分析】从TCGA下载所有癌症的多组学数据

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍加载R包组学数据类型下载函数运行并行运行使用建议总结系统信息介绍 TCGA(The Cancer Genome Atlas)是一个庞大的癌症基因组数据库,包含多种癌症类型的多组学数据,如基因表达、…...

K8S redis 部署

在Kubernetes 1.26.14中部署Redis单实例/集群的步骤如下&#xff08;结合NFS持久化存储与认证配置&#xff09;&#xff1a; 一、部署Redis单实例&#xff08;StatefulSet模式&#xff09; 1. 创建配置文件 redis-statefulset.yaml # ConfigMap存储Redis配置 apiVersion: v1 …...

Android学习总结之kotlin篇(二)

扩展函数转成字节码的原理&#xff08;源码级别&#xff09; Kotlin 扩展函数在编译时会被转换为静态方法&#xff0c;这一过程涉及到以下几个关键步骤&#xff1a; 首先&#xff0c;Kotlin 编译器会为包含扩展函数的包生成一个特定的类。这个类的命名通常是基于包名和文件名的…...

QMK RGB矩阵灯效配置详解:从理论到实践(实操部分)

QMK RGB矩阵灯效配置详解:从理论到实践 引言 RGB灯效是现代机械键盘中一个非常吸引人的特性,通过QMK固件,我们可以实现丰富多彩的灯光效果。本文将详细讲解如何在QMK中配置RGB矩阵灯效,从基础理论到实际实现,帮助键盘爱好者打造专属的RGB键盘。无论你是刚开始接触QMK,还…...

知识图谱重构电商搜索:下一代AI搜索引擎的底层逻辑

1. 搜索引擎的进化论 从雅虎目录式搜索到Google的PageRank算法&#xff0c;搜索引擎经历了三次技术跃迁。而AI搜索引擎正在掀起第四次革命&#xff1a;在电商场景中&#xff0c;传统的「关键词匹配」已无法满足个性化购物需求&#xff0c;MOE搜索等新一代架构开始融合知识图谱…...

解密企业级大模型智能体Agentic AI 关键技术:MCP、A2A、Reasoning LLMs-强化学习算法

解密企业级大模型智能体Agentic AI 关键技术&#xff1a;MCP、A2A、Reasoning LLMs-强化学习算法 现在我们的核心问题是有一些同学会知道要才能强化学习。为什么才能强化学习&#xff1f;是实现AGI。例如从这个其实你从第一阶段开始以后&#xff0c;就是chatbot&#xff0c;这…...

嵌入式学习笔记 - SystemCoreClock/1000000

SystemClock 顾名思义就是系统时钟&#xff0c;位于时钟树如下中间位置&#xff0c;是PLL倍频后的部分&#xff0c;它不同于HCLK(SystemCoreClock), SystemCoreClock为系统内核时钟&#xff0c;也就是HCLK始终&#xff0c;也就是总线时钟&#xff0c;就是芯片内核运行的最终时…...

密西根大学新作——LightEMMA:自动驾驶中轻量级端到端多模态模型

导读 目前将自动驾驶与视觉语言模型&#xff08;VLMs&#xff09;结合的研究越来越火热&#xff0c;VLMs已经证明了其对自动驾驶的重要作用。本文引入了一种用于自动驾驶的轻量级端到端多模态模型LightEMMA&#xff0c;它能够集成和评估当前的商业和开源模型&#xff0c;以研究…...

MobiPDF:安卓设备上的专业PDF阅读与编辑工具

MobiPDF是一款专为安卓设备设计的PDF阅读和编辑工具&#xff0c;提供了丰富的功能&#xff0c;帮助用户在移动设备上轻松打开、阅读、批注和编辑PDF文件。无论是学生、专业人士还是普通用户&#xff0c;MobiPDF都能满足他们在移动设备上处理PDF文件的需求&#xff0c;提升工作效…...

印度尼西亚数据源对接技术指南

一、数据源全景概述 印度尼西亚作为东南亚最大经济体&#xff0c;其数据生态覆盖金融、产业、人口等多个维度。StockTV提供全链路印尼数据解决方案&#xff0c;涵盖以下核心领域&#xff1a; 数据类型覆盖范围更新频率典型应用场景金融市场数据IDX交易所股票/债券/衍生品实时…...

Apache Pulsar 消息、流、存储的融合

Apache Pulsar 消息、流、存储的融合 消息队列在大层面有两种不同类型的应用&#xff0c;一种是在线系统的message queue&#xff0c;一种是流计算&#xff0c;data pipeline的streaming高throughout&#xff0c;一致性较低&#xff0c;延迟较差的过程。 存算分离 扩容和缩容快…...

从零实现一个高并发内存池 - 2

上一篇https://blog.csdn.net/Small_entreprene/article/details/147904650?fromshareblogdetail&sharetypeblogdetail&sharerId147904650&sharereferPC&sharesourceSmall_entreprene&sharefromfrom_link 高并发内存池 - thread cache 一、基本结构与原…...

promise

handleFileChange(event) {var that this;// 处理文件上传并传递回调函数this.$commonJS.handleFileUpload(event, function (tables) {console.log(tables at line 786:, tables);// 使用 Promise.all 等待所有表格解析完成Promise.all(tables.map((table) > {return new …...

Django + Celery 打造企业级大模型异步任务管理平台 —— 从需求到完整实践(含全模板源码)

如需完整工程文件(含所有模板),可回复获取详细模板代码。 面向人群:自动化测试工程师、企业中后台开发人员、希望提升效率的 AI 业务从业者 核心收获:掌握 Django 三表关系设计、Celery 异步任务实践、基础 Web 交互与前后端分离思路,源码可直接落地,方便二次扩展 一、系…...

从零开始完成“大模型在牙科诊所青少年拉新系统中RAG与ReACT功能实现”的路线图

项目核心目标&#xff1a; 构建一个智能系统&#xff0c;利用大型语言模型&#xff08;LLM&#xff09;、检索增强生成&#xff08;RAG&#xff09;和推理与行动&#xff08;ReACT&#xff09;技术&#xff0c;通过七个专门的知识向量库&#xff0c;为牙科诊所精准吸引青少年客…...

c# 倒序方法

在C#中&#xff0c;有几种方法可以对List进行倒序排列&#xff1a; 1. 使用List的Reverse()方法&#xff08;原地反转&#xff09; List<int> numbers new List<int> { 1, 2, 3, 4, 5 };numbers.Reverse(); // 直接修改原列表// 结果&#xff1a;5, 4, 3, 2, 1 …...

【!!!!终极 Java 中间件实战课:从 0 到 1 构建亿级流量电商系统全链路解决方案!!!!保姆级教程---超细】

终极 Java 中间件实战课&#xff1a;电商系统架构实战教程 电商系统架构实战教程1. 系统架构设计1.1 系统模块划分1.2 技术选型 2. 环境搭建2.1 开发环境准备2.2 基础设施部署 3. 用户服务开发3.1 创建Maven项目3.2 创建用户服务模块3.3 配置文件3.4 实体类与数据库设计3.5 DAO…...

HarmonyOs开发之———使用HTTP访问网络资源

谢谢关注&#xff01;&#xff01; 前言&#xff1a;上一篇文章主要介绍HarmonyOs开发之———Video组件的使用:HarmonyOs开发之———Video组件的使用_华为 video标签查看-CSDN博客 HarmonyOS 网络开发入门&#xff1a;使用 HTTP 访问网络资源 HarmonyOS 作为新一代智能终端…...

Java Queue 接口实现

Date: 2025.05.14 20:46:38 author: lijianzhan Java中的Queue接口是位于java.util包中&#xff0c;它是一个用于表示队列的接口。队列是一种先进先出&#xff08;First-In-First-Out, 简称为FIFO&#xff09;的数据结构&#xff0c;其中元素被添加到队列的尾部&#xff0c;并从…...

【IDEA】注释配置

1. IDEA注释调整&#xff0c;去掉默认在第一列显示 修改为如下&#xff1a; 2. IDEA中修改代码中的注释颜色...

day25 python异常处理

目录 Python 的异常处理机制 核心概念 常见的异常处理结构 try-except try-except-else 常见异常类型 SyntaxError&#xff08;语法错误&#xff09; NameError&#xff08;名称错误&#xff09; TypeError&#xff08;类型错误&#xff09; ValueError&#xff08;值…...

【测试】BUG

目录 1、描述BUG的要素&#xff1a; 2、BUG的级别 3、BUG的状态的流转 4、与开发产⽣争执怎么办&#xff08;⾼频考题&#xff09; 什么是BUG&#xff1f;&#xff1f;&#xff1f; 程序与规格说明之间的不匹配才是错误 1、描述BUG的要素&#xff1a; 问题出现的版本、问…...

Java面向对象三大特性深度解析

Java面向对象三大特性封装继承多态深度解析 前言一、封装&#xff1a;数据隐藏与访问控制的艺术1.1 封装的本质与作用1.2 封装的实现方式1.2.1 属性私有化与方法公开化1.2.2 封装的访问修饰符 二、继承&#xff1a;代码复用与类型扩展的核心机制2.1 继承的定义与语法2.2 继承的…...

C 语言学习笔记(8)

内容提要 数组 数组的概念一维数组 数组 数组的概念 什么是数组 数组是相同类型&#xff0c;有序数据的集和 数组的特征 数组中的数据被称之为数组的元素&#xff08;所谓的元素&#xff0c;其实就是数组的每一个匿名的变量空间&#xff09;&#xff0c;是同构。数组中的…...

Screen Mirroring App:轻松实现手机与电视的无缝投屏

Screen Mirroring App 是一款由2kit consulting发行的电视投屏软件&#xff0c;专为用户提供便捷的投屏解决方案。它支持将手机和平板屏幕上的内容实时投射到大电视上&#xff0c;无论是观看影视作品、玩游戏、浏览照片还是阅读电子书&#xff0c;都能提供清晰、稳定的画质和流…...

html js 原生实现web组件、web公共组件、template模版插槽

在现代浏览器中&#xff0c;通过 class 继承 HTMLElement 可以轻松创建原生 Web Components&#xff08;自定义元素&#xff09;&#xff0c;并能享受与普通 HTML 元素同等的语义和性能优势。下面将从核心概念、生命周期方法、Shadow DOM、表单关联、自定义属性、以及与 Vue 3 …...

【爬虫】DrissionPage-2

之前的三个对象是4.0版本&#xff0c;看到的是网上大佬们网上的文章&#xff0c;因为看到官网更新了4.1&#xff0c;我觉得有必要了解一下&#xff1a;文档地址&#xff1a;&#x1f4a5; 4.1 功能介绍 | DrissionPage官网 点击链接看官网就行&#xff0c;下面一样的。 4.1 的…...

鸿蒙OSUniApp 制作个人信息编辑界面与头像上传功能#三方框架 #Uniapp

UniApp 制作个人信息编辑界面与头像上传功能 前言 最近在做一个社交类小程序时&#xff0c;遇到了需要实现用户资料编辑和头像上传的需求。这个功能看似简单&#xff0c;但要做好用户体验和兼容多端&#xff0c;还是有不少细节需要处理。经过一番摸索&#xff0c;总结出了一套…...

系统漏洞扫描服务:维护网络安全的关键与服务原理?

系统漏洞扫描服务是维护网络安全的关键措施&#xff0c;能够迅速发现系统中的潜在风险&#xff0c;有效预防可能的风险和损失。面对网络攻击手段的日益复杂化&#xff0c;这一服务的重要性日益显著。 服务原理 系统漏洞扫描服务犹如一名恪尽职守的安全守护者。它运用各类扫描…...

[原创](现代C++ Builder 12指南): 在界面开发中, 如何利用C++高级特性“折叠表达式“?.

[序言] 在现代C++编程中, 现代C++引入的折叠表达式(Fold Expressions)是一项极具价值的特性, 它为模板编程带来了更高的灵活性和简洁性. 折叠表达式允许在参数包上执行简洁的折叠操作, 从而减少冗余代码, 提升代码的可读性与维护性. 在界面开发领域, 特别是使用C++ Builder 12进…...

KUKA机器人中断编程3—暂停功能的编程

在KUKA机器人的使用过程中&#xff0c;对于调试一个项目&#xff0c;当遇到特殊情况时需要暂停机器人&#xff0c;等异常情况处理完成后再继续机器人的程序运行。wait for指令是等待一个输入信号指令&#xff0c;没有输入信号&#xff0c;机器人一直等待。在一定程度上程序也不…...

【LeetCode 热题 100】反转链表 / 回文链表 / 有序链表转换二叉搜索树 / LRU 缓存

⭐️个人主页&#xff1a;小羊 ⭐️所属专栏&#xff1a;LeetCode 热题 100 很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~ 目录 相交链表反转链表回文链表环形链表环形链表 II合并两个有序链表两数相加删除链表的倒数第 N 个结点两两交换链表中的…...

Seata源码—1.Seata分布式事务的模式简介

大纲 1.Seata分布式事务框架简介 2.Seata AT模式实现分布式事务的机制 3.Seata AT模式下的写隔离机制 4.Seata AT模式下的读隔离机制 5.官网示例说明Seata AT模式的工作机制 6.Seata TCC模式的介绍以及与AT模式区别 7.Seata Saga模式的介绍 8.单服务多个库的分布式事务…...

牛客——签到题

分析 我拿到题就去看了示例&#xff0c;可以发现&#xff0c;并非是让难度最小&#xff0c;或者难度系数出现次数最多的成为签到题的难度。那我就有点懵了。。。。。。 但仔细观察题目本身的特定条件和目标&#xff0c;即在满足选择 m 道题的前提下&#xff0c;尽可能多地选择…...

【idea】调试篇 idea调试技巧合集

前言&#xff1a;之前博主写过一篇idea技巧合集的文章&#xff0c;由于技巧过于多了&#xff0c;文章很庞大&#xff0c;所以特地将调试相关的技巧单独成章, 调试和我们日常开发是息息相关的&#xff0c;用好调试可以事半功倍 文章目录 1. idea调试异步线程2. idea调试stream流…...

k8s监控方案实践补充(一):部署Metrics Server实现kubectl top和HPA支持

k8s监控方案实践补充&#xff08;一&#xff09;&#xff1a;部署Metrics Server实现kubectl top和HPA支持 文章目录 k8s监控方案实践补充&#xff08;一&#xff09;&#xff1a;部署Metrics Server实现kubectl top和HPA支持一、Metrics Server简介二、Metrics Server实战部署…...

直流电机风速仪

在处理直流电机风速仪的 ADC 读取问题时&#xff0c;下面为你详细介绍实现方法。 硬件连接 风速仪的输出通常是模拟信号&#xff0c;所以需要把它连接到微控制器的 ADC 输入引脚。比如&#xff0c;在 Arduino 上可以连接到 A0 - A5 这类模拟输入引脚。 ADC 读取原理 风速仪…...

dify 连接不上ollama An error occurred during credentials validation:

三大报错 An error occurred during credentials validation: HTTPConnectionPool(hosthost.docker.internal, port11434): Max retries exceeded with url: /api/chat (Caused by NameResolutionError("<urllib3.connection.HTTPConnection object at 0x7f26fc3c00b0&…...

19、云端工业物联网生态组件 - 工厂能效与预测维护 - /数据与物联网组件/cloud-iiot-factory-analysis

76个工业组件库示例汇总 云端工业物联网生态组件 - 工厂能效与预测维护 (模拟) 概述 这是一个交互式的 Web 组件&#xff0c;旨在模拟一个云端工业物联网 (IIoT) 平台的核心界面&#xff0c;专注于工厂层面的能效分析和基于传感器数据的预测性维护概念。用户可以监控模拟的设…...

python打卡day25

python的异常处理机制 知识点回顾&#xff1a; 异常处理机制debug过程中的各类报错try-except机制try-except-else-finally机制 在即将进入深度学习专题学习前&#xff0c;我们最后差缺补漏&#xff0c;把一些常见且重要的知识点给他们补上&#xff0c;加深对代码和流程的理解。…...

Jmeter变量传递介绍

文章目录 一、Jmeter变量类型及作用域二、变量传递方式1. 用户定义变量&#xff08;User Defined Variables&#xff09;2. CSV 数据文件&#xff08;CSV Data Set Config&#xff09;3.正则表达式提取器4.后置处理器&#xff08;Post Processor)4.1BeanShell/JSR223 后置处理器…...