从巴比馒头的“洗菜流水线”,来看“telemetry pipeline”工具的火热兴起

mall 电商项目完整部署---实战 mall 后端 SpringBoot,mall‑admin‑web 后台管理 Vue 前端,mall‑app‑sc 移动端 uni‑app 前端;修改数据库、redis、minio、logstash 地址,容器之间 link 别名:mysql 容器别名。🔔排坑:登录报跨域 / 接口报错,检查 prod.env.js 地址,确认 8080 后端服务正常运行。能打开页面,接口列表展示出来,后端部署完成。,所以打包的时候会自动构建镜像,很慢而且你暂时不需要。,容器数据持久化,删除容器数据不会丢失。 阅读详情

原文地址:https://databuff.com/resourceDetail/blog102

一、从一家馒头公司说起

2020年10月12日,中饮巴比食品股份有限公司在上海证券交易所敲钟上市,作为“中国包子第一股”登陆A股主板,这就是大街小巷随处可见的巴比馒头公司。截止目前,巴比馒头全国门店达到5600家,一年卖出18亿个馒头,日均生产500万个馒头,而全国只有5个集中工厂。

image.png

小编写到这,并不是眼馋巴比公司赚了多少米,而是困惑:5个大工厂一天如何加工500万个馒头。尤其是其中一个环节如何解决 —— 洗菜。

青菜、白菜、胡萝卜、香菇、荠菜……品类繁多,规模庞大。新鲜蔬菜从田间地头到工厂,面临最大的一个难题就是清洗。蔬菜表面残留泥沙、农药,夹杂烂叶、虫卵,按照传统的老奶奶 “纯手搓洗菜法”,一天的产能可能需要5万个老奶奶,这些老奶奶的衣食住行、眼药水。。。不敢想象

1-2-水印.webp

图:老奶奶纯手搓洗数据

如果全靠人工处理,不仅效率低下,而且难以保证每家门店的蔬菜都能达到统一的安全标准。更棘手的是,不同蔬菜的清洗方式还不一样:叶菜需要浸泡去农残,根茎类要用高压水枪冲洗,菌菇则需轻柔漂洗——​手工操作根本无法应对如此复杂的标准化需求​​。

二、自动化洗菜流水线

带着这些疑惑,我们走进巴比馒头的中央厨房,会看到这样的场景:​一筐筐蔬菜(原始数据)从田间运来,经过自动清洗机(数据清洗层)去除泥沙、烂叶和农药残留(脏数据),再由分拣流水线(转换层)按品类切分、称重、包装(结构化处理),最终变成标准化净菜(高质量数据),直供门店制作包子馅料(业务应用)。

在这里插入图片描述

三、“洗数据” 能不能像 “洗菜” 一样简单 ?

当前IT 团队需要面对数百万个容器或数千个微服务,而不再是数百个VM或几十个服务。云原生环境会产生大量机器数据,比传统基于 VM 的环境多 100 到 1000 倍。当日志量从GB增长到TB级,传统的手工排查(如SSH登录、grep日志)就像老奶奶洗菜一样力不从心。

因此我们在构思,在运维领域,能不能像巴比馒头的“洗菜流水线”一样,打造一套“洗数据流水线”,​自动化采集、智能过滤、实时路由、可视化操作编排​​,让数据像清洗后的蔬菜一样“开箱即用”,支撑监控、告警、分析、可视化、巡检等核心业务场景。

在运维领域,我们将这种洗数据的技术,称之为“Telemetry Pipeline” 遥测管道技术。

3-1-水印.webp

图:telemetry pipeline 示意图

四、市场在召唤 telemetry pipeline 工具,让监控真正实现统一

客户的生产现场从来不是一无所有,他们的现状可能是这样的:

  1. **现场已经有大量数据。**客户的生产系统已经运行多年,产生了大量的机器数据,这些数据分散在各地。

  2. **现场已经有各式样的工具。**为保障系统的运行,客户已经投入建设了不少工具,这些工具各司其职,根据相互独立的数据构建自有的场景能力。每家公司使用的工具各式各样。

  3. **客户已经形成了习惯体系。**长时间的工具使用与磨合,一线人员已经形成了一套工作习惯,不希望推翻重来、打破既有的工作习惯。

  4. **可观测为云而生,但不只为云服务。**可观测技术是随着云原生而来,但可观测工具在现场投产后、并不只是用来为云原生业务服务,客户希望它覆盖一切机器数据,覆盖多云、非云环境。

  5. **AIOps 止步不前。**没有好的蔬菜、做不出好的包子;没有好的数据、出不了好的AIOps落地效果。

在这里插入图片描述

因此,市场亟需一套接纳用户现有环境、包容用户现有建设的数据清洗解决方案,这就是telemetry pipeline的诞生背景。通过telemetry pipeline 不仅仅是对用户现有运维习惯的继承与分析能力的拓展,也要出于成本考虑、不用推倒重建。

遥测数据管道是一种解决方案,提供统一且全面的机制,用于管理从数据源到目标位置的机器数据(遥测)的收集、摄取、丰富化、转换和路由

——Gartner《Hype Cycle for Monitoring and Observability, 2024》

随着可观测需求的广泛发生,可观测的市场在迫切的召唤telemetry pipeline 工具。除了传统的可观测巨头(dynatrace、datadog、splunk等等)开发了自己的pipeline工具之外,催生了一批该业务领域的创业公司与产品出现:Chronosphere(Calyptia)、Cribl、Edge Delta、Mezmo、observIQ、Onum,并获得了大量投资。

image.png

图:telemetry pipeline vendors

**observIQ** :较早推出Bindplane ,目标是降低数据处理成本,简化大规模管理。目前获取EdisonPartners,eLab等众多投资机构投资。

**Cribl :**2024年8月份获得了3.19亿美元的E轮融资,其年度收入突破2亿美元。Cribl为2017年成立,主要目的为提供与供应商无关的解决方案,使 IT 和安全团队能够灵活地转变数据策略,从任何来源或目的地收集、处理、路由和分析遥测数据。

**Edge Delta:**2022 年 5 月 获得获得 6300 万美元的 B 轮融资。 Edge Delta 是一家领先的可观测性平台,使用分布式流处理和联合机器学习分析和提取数据见解。

Vector: 2021年被Datadog收购。是市场知名的开源pipeline项目。

五、乘云为什么还要造一个新的telemetry pipeline轮子

5.1 常见 Pipeline 工具存在的问题

  • LogStash: 资源消耗大,自定义配置学习成本高,不易编排,只处理Log,是一份通用的日志处理工具、非运维场景专用。

  • Opentelemetry Collector:无法自定义编排,缺少灵活性,使用门槛高,主要在国外社区维护、国内缺乏维护公司。

  • Datadog Vector:产品编排存在局限性,拓扑结构固定,复杂处理流程支持有限,无可视化界面、上手难。

5.2 Datahub 能否解决上面这些问题?它的核心设计目标是什么?

基于上述的困扰,乘云要推出一款适合国人的telemetry pipeline专用工具——DataHub “数据路由器”,datahub 致力于成为可观测方案体系中的数据路由,让用数据像用水一样方便,企业通过DataHub这样的“数据流水线”,将原始信息的“泥沙俱下”,转化为决策洞察的“清流”。

  1. 性能优越开销小:DataHub使用Go语言技术栈开发,对资源消耗较小,即使在2核1G的资源情况下,也可以处理10000 tps的Skywalking Trace数据接入,并支持多集群多节点横向扩容,满足各种高性能场景。

  2. 可视化编排:DataHub提供一套容易编排的拓扑结构,并根据各种场景沉淀出不同模版,用户可以根据模版直接创建Pipeline,使用托拉拽的方式,编排流程。可以实现多流关联,合并,聚合,等复杂操作。

  3. 上手简单:DataHub提供多个单一功能算子,可以根据处理场景,自定义组装流程,学习成本低,使用简易。

  4. **统一处理:**Datahub支持日志,指标,调用链,事件等常见数据类型,不只是单一类型的数据处理,并支持Sky walking,Opentelemetry ,Prometheus,Zipkin ,Jaeger,Fluentd等不同协议的数据源直接对接。

DataHub的技术核心在于“可视化编排+自动化处理”:用户可通过拖拉拽的界面设计数据流转路径(如从Zabbix接入指标数据,经过归一化处理后转发至DataBuff平台),系统自动完成元数据清洗、衍生指标计算、数据模型统一等操作,无需手动编写复杂脚本,大幅降低多源数据整合的技术门槛。

5-2-水印.webp

六、Datahub 介绍

6.1 产品功能架构:

6-1-水印.png

  1. 拓扑编排:DataHub在DataBuff平台提供了可以拖拉的拓扑编排,使用者可以轻松的构建数据处理 Pipeline,拓扑结构更加清晰的展示数据处理流向和处理细节。

  2. 内置模版:针对于常见的Skywalking,Opentelemetry,Zabbix等开源组件的日志、指标、调用链数据,提供内置模版,可以直接根据模版一键创建Pipeline,启动后直接对接数据。

  3. 功能算子:

    1. 提供重命名,hash,过滤,映射等轻量算子,可以自定义组合处理数据。

    2. 提供转换算子,根据语法和内置函数编写复杂处理流程。内置上百种函数,满足文本,数字,数组,日期等多种操作。

    3. 提供批处理,分组等性能算子,对于输出可以根据需要进行攒批发送操作,可以使用内置压缩算法进一步对数据进行压缩。

  4. 性能扩容:DataHub可以划分集群,每个集群下多节点运行,内置自监控,上报服务自监控指标到DataBuff平台,实时提供服务性能,处理数据,异常丢弃等指标。

  5. 调试和数据预览:通过Extension扩展机制,针对于Receiver提供实时数据预览,截取服务接收到的数据样例,并允许对数据和指定算子进行调试。

  6. 多种格式:支持Open telemetry,Prometheus,Kafka,Zipkin ,Jaeger,Fluentd等多种开源组件通过Http/GRPC 方式推送数据。对于接收和发送数据,DataHub也同时支持多种数据压缩格式(gzip,zstd,snappy,deflate等)。

6.2 技术架构:

6-2-水印.webp

DataHub Pipeline使用工厂模式 + 接口抽象 实现高度可扩展的架构,支持自定义组件接入,核心是 “基于接口的插件化体系”。

  1. Factory:对于Pipeline中常见的Receiver,processor,Exporter有对应Factory工厂进行实例化,并对声明的Extension进行实例化。

  2. **Parser:**DataHub内置语法和函数,这些语法函数使用对应的Parser builder进行构建,语法会解析成简单的语法树,函数会解析成一个代理函数对象。

  3. **Graph:**根据构建好的receiver,processor 还有exporter这些组件,根据边和点的关系,使用Graph builder构建一个拓扑图,构建过程中同时会对拓扑结构是否有环进行校验。

  4. **Event Notice:**事件通知,DataHub内置全局事件通知,整理管理Pipeline以及Extension的生命周期,当遇到配置变更,资源受限,服务异常等情况,会通过事件通知,合理安全的关闭Pipeline所持有的一些资源,并允许exporter发送完已经处理完成的数据。

  5. **Pipeline:**处理流程运行的对象,会注册自己运行过程中产生的自监控指标给DataHub service,监听事件通知,允许Extension扩展功能,合理关闭每个processor,receiver,exporter组件。

  6. Service :DataHub Service 会初始化配置加载,自监控和事件通知渠道,管理服务生命周期。Service保持高度的抽象,确保了DataHub 的高扩展性和分层解偶。

七、经典使用场景

7.1 场景1:一键接入skywalking链路数据

7.1.1 数据接入
  1. 首先创建管道,选择要接入的数据类型-调用链,使用内置的Skywalking接入模版。

Datahub-skywalking-trace-1.gif

  1. 创建完成后,复制监听URL(该地址为SkywalkingAgent推送数据的地址),然后回到列表中启用这个管道。

Datahub-skywalking-trace-2.gif

  1. 切换到要监控的Demo服务后台命令行,使用Skywalking Agent采集Trace数据,配置SkywalkingAgent 中collector.backend_service

在这里插入图片描述

  1. 使用SkywalkingAgent采集服务链路,并命名服务名称:SKRPCCONSUMER,然后启动demo

Datahub-skywalking-trace-4.gif

7.1.2 数据处理流程解析

image.png

上面步骤中创建的管道使用了三个算子完成数据处理和标准化:

  • 输入:Skywalking 算子

接收并解析Skywalking的Trace数据。

  • 批处理 算子 //把这个处理的算子配置打开,看一下里面到底配的是什么,把配置截图贴出来解释解释 @白露(沈玉芬)\color{#0089FF}{@白露(沈玉芬)}@白露(沈玉芬)

截屏2025-07-15 09.31.16.png

用于将传入的观测数据(跟踪、指标、日志)进行批量聚合和缓冲,减少数据处理的频率和资源消耗。其核心功能包括:

批量聚合:将单个数据项累积到指定数量或时间阈值后,以批量形式传递给下游组件(如导出器)。

缓冲控制:通过配置队列大小和超时时间,平衡内存占用与数据传输延迟。

兼容性:支持跟踪(Traces)、指标(Metrics)、日志(Logs)三种信号类型,可与任意上游接收器(如 OTLP Receiver)和下游导出器组合使用。

  • 输出:DataBuff 算子

将数据统一转换为DataBuff平台数据格式(包括Trace以及Metric)

7.1.3 数据展示效果
  1. 回到DataBuff平台,访问应用性能->链路追踪,查看上报的Trace数据

Datahub-skywalking-trace-5.gif

  1. 此时DataBuf平台已对Trace数据自动完成清洗,获取到了服务调用、请求耗时等信息.

Datahub-skywalking-trace-6.gif

7.2 场景2:一键接入Zabbix事件数据

7.2.1 数据接入
  1. 首先同样是创建管道,选择Zabbix接入模版

zabbix-event-1.gif

  1. 复制监听URL,并启用该管道

zabbix-event-2.gif

  1. 打开zabbix,并在报警媒介中找到datahub,粘贴刚才复制的监听URL并更新

zabbix-event-3.gif

  1. 触发zabbix事件(这里以确认并关闭问题为例),然后等待Zabbix问题关闭并触发报警媒介,同时向DataHub发送事件。

zabbix-event-4.gif

7.2.2 数据处理流程解析

image.png

上面步骤中管道使用的三个算子:

  • Webhook 算子

接受通过webhook 方式发送过来的数据。

  • 批处理 算子

截屏2025-07-15 09.32.00.png

用于将传入的观测数据(跟踪、指标、日志)进行批量聚合和缓冲,减少数据处理的频率和资源消耗。其核心功能包括:

批量聚合:将单个数据项累积到指定数量或时间阈值后,以批量形式传递给下游组件(如导出器)。

缓冲控制:通过配置队列大小和超时时间,平衡内存占用与数据传输延迟。

兼容性:支持跟踪(Traces)、指标(Metrics)、日志(Logs)三种信号类型,可与任意上游接收器(如 Receiver)和下游导出器组合使用。

  • Kafka 算子

将数据发送到DataBuff内置的事件渠道,便于后期告警压缩合并。

7.2.3 数据展示效果

登录DataBuff平台-智能告警,查看zabbix发送的事件

zabbix-event-5.gif

其他接入

  • DataHub还支持符合Open telemetry,Prometheus,Kafka,Zipkin ,Jaeger,Fluentd,RabbitMQ等各平台和组件的数据推送,以及内置Pipeline处理模版,可以快速平滑对接到DataBuff 平台。

八、结语

在数据驱动的时代,企业的竞争力越来越依赖于数据的“实时性、准确性、关联性”。DataHub通过重构数据Pipeline,让分散的数据“可汇聚、可关联、可复用”,为企业的监控告警、业务分析、故障诊断提供坚实的数据基础。

从0玩转Mamba神经网络:理论+实战的保姆级教程 Mamba神经网络是一种基于状态空间模型(SSM)的高效序列处理架构,相比Transformer具有更快的推理速度和更低的内存消耗。本文提供从理论到实践的完整指南,详细讲解Mamba的工作原理、与Transformer的差异,并给出基于PyTorch的文本分类实战示例。教程包含环境配置、数据处理、模型搭建、训练评估全流程,展示了Mamba在IMDb情感分析任务中的应用。文章还探讨了Mamba的性能优势及进阶方向,为开发者提供了探索这一新兴技术的实用指南。通过阅读本文,读者可以快速掌握Mamba的核心概念并上 阅读详情

相关推荐

一个AI Agent顶十个软件,toB赛道正在大洗牌

一个AI Agent顶十个软件,toB赛道正在大洗牌

ith321的博客 1331

ElasticSearch(一)API的使用

elasticsearch的API使用

qq_40358025的博客 201

STM32平台下FreeModbus TCP协议栈集成指南

深入讲解在STM32平台如何移植和配置freemodbus协议栈,实现TCP通信功能。结合嵌入式开发细节,帮助开发者快速掌握freemodbus的应用与调试技巧。

weixin_36001279的博客 1144

企业如何同时管理用电安全、电能质量和节能降碳?从异常溯源看施耐德电气EEO的协同管理价值

通过整合电力运行信息,并结合EEO资产健康模块、EEO电能质量模块与EEO能碳管理模块,企业可以围绕设备、回路和负荷建立更连续的分析流程,使不同专业人员能够基于相互关联的数据开展判断。企业需要进一步核对异常出现的时间、涉及的配电回路、生产负荷变化以及设备运行状态,才能判断问题来自正常的生产调整、设备运行异常,还是需要采取措施的电能质量问题。从关键回路的异常排查入手,逐步完善设备数据、专业分析和治理验证流程,企业可以让用电安全、电能质量与节能降碳从分散的管理任务,转变为相互关联的日常运营工作。

科技,技术,行业类博主 180

3U 与 SV630A 伺服实现 CANLINK 通讯

SD410这组参数特别重要,这个32位特别重要,是防止数值乱码的关键。

weixin_42714122的博客 2699

从Microchip SDK到STM32实战:手把手教你移植LAN9252 EtherCAT从站驱动(含EEPROM配置避坑)

本文详细介绍了如何将Microchip SDK中的LAN9252 EtherCAT从站驱动移植到STM32F407平台,包括FSMC接口配置、中断处理适配和EEPROM配置等关键步骤。通过实战指南和避坑技巧,帮助开发者快速实现高性能EtherCAT从站设备的开发,适用于工业自动化领域。

weixin_29197835的博客 446

京东 Apache Doris 湖仓查询优化实践:从多引擎统一到百万级查询

京东基于 Apache Doris 构建统一湖仓查询引擎,支撑日均百万级查询与 PB 级数据扫描。深入解析 Presto、StarRocks 迁移、分区裁剪、Split 调度、向量化执行及 AI Agent 混合负载优化实践。

SelectDB 422

WSL基础环境配置方案

通过以上步骤,您已经在 Windows 的 WSL 环境中成功搭建了一个完整的基础开发环境,包含 Docker、Kubernetes、Helm、kubectl、yq、Git 等工具。这套环境特别适用于在国内使用阿里云镜像服务部署和管理 Tekton,提升了开发和运维的效率和稳定性。

落魄书生的职业学习生涯 8876

Day3 - Flink 窗口与时间语义:从滚动窗口到迟到数据处理

水位线是一个特殊的时间戳,代表"小于这个时间戳的数据都已经到齐了比如水位线推进到 10:00:05,就告诉 Flink:10:00:05 之前的数据应该都到了,如果还有晚于这个时间到达但时间戳小于 10:00:05 的数据,就是"迟到数据"。窗口大小固定,窗口之间不重叠,数据只属于一个窗口。时间线: 0 10 20 30 40 50 60窗口1: [--------)窗口2: [--------)窗口3: [--------)窗口4: [--------)

YEEMOLY的博客 266

RK3588 InsightFace人脸识别移植及精度测试全解析

本文详细介绍了如何在RK3588平台上移植InsightFace人脸识别模型并进行精度验证。通过PyTorch转ONNX、ONNX转RKNN量化模型的关键步骤,实现了INT8量化模型的部署。测试数据显示,该模型在LFW数据集上达到99.43%的准确率(接近官方99.52%),推理时间仅14.23ms。ROC曲线和相似度分布图表明模型区分能力优秀,AUC超过0.99,满足实际应用需求。文中还详解了量化原理、环境搭建和测试方法,为边缘设备部署人脸识别提供了完整解决方案。

Hi20240217的博客 3673

ROM和RAM在单片机程序运行理解

ROM和RAM是电子设备中两种核心存储组件,主要区别在于:ROM用于长期存储系统程序、用户文件等固定数据,断电后数据不丢失,但写入速度较慢;RAM则用于临时存储运行中的程序和数据,读写速度快但断电后数据会清空。在单片机中,ROM存储程序代码和常量,RAM存储运行时的变量和数据。两者协同工作,ROM如同"永久档案库"保存必要信息,RAM则像"临时工作台"支持高速运算,共同确保设备正常运行。

qq_37999850的博客 1622

智能问诊的流程

本文介绍基于FastAPI构建的医疗多Agent系统MediAgent,通过症状分析、诊断推理与治疗建议等模块协同,实现从问诊到报告生成的完整工作流。系统采用前后端分离架构,结合MySQL、RabbitMQ与Docker实现工程化部署,支持异步化验结果接入。虽当前状态暂存于内存,但已具备可扩展性,未来可通过Redis持久化、消息队列联动及医疗安全机制完善,应用于慢病管理、辅助决策等场景,推动AI在医疗流程中的落地应用。

Joey 的工作空间~ 783

Codev与Zemax相互转化

Codev与Zemax相互转化

weixin_72050316的博客 1046

行业研究报告采购避坑指南:从需求拆解到机构选型的实操逻辑

先说结论:买行业研究报告这件事,坑不在“哪家便宜”,而在“你拿到的数据能不能回答你的问题”。作为一个经常帮企业做采购决策的顾问,我见过太多花了几万块买回一堆PDF却用不上的案例。这篇文章把采购流程拆成五步,每一步告诉你该看什么、该避什么,尽量帮你少交学费。

2601_96585642的博客 230

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

大数据与审计专业哪些证书企业比较认可?

大数据与审计专业选证书,首先要明确就业方向:是进入会计师事务所做财务审计,还是进入企业从事内部审计、风险控制,或向数据审计、信息系统审计发展。不同岗位看重的专业能力不同,证书的价值也应放在具体招聘要求中判断。面向2027年的求职与备考规划,值得重点考虑的有六类:初级会计专业技术资格、注册会计师、审计专业技术资格、CDA数据分析师、国际注册内部审计师和国际注册信息系统审计师。选择时,宜采用“财审基础+数据能力+岗位专长”的组合,而不是单纯追求持证数量。

YangYang9YangYan的博客 312

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

深入浅出聊聊 Linux 的 PageCache 与系统极致性能

本文深入浅出解析了 Linux PageCache 的核心机制,揭示其如何通过“延迟写、预读读”提升系统性能。以监控告警为切入点,阐明 free -h 中 buff/cache 并非真正占用,真正可用内存由 available 决定。结合 Kafka、Elasticsearch、MySQL 等实战场景,说明中间件如何依赖 PageCache 实现极致性能。强调不可手动清理缓存,并建议合理调优脏页参数,避免卡顿。最终指出:内存满≠危机,而是系统高效运行的体现。

小小默:进无止境 513

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

数据科学与大数据技术大一到大三考证顺序怎么排?

数据科学与大数据技术专业的考证安排,适合跟着课程和求职方向走,而不是跟着证书数量走。大一还在学高等数学、程序设计,大二逐步接触概率统计、数据库,大三开始进入机器学习、大数据平台和专业实习。证书与这些课程衔接起来,备考才容易转化为实际能力。下文推荐6项证书,其中既有基础性考试,也有职业方向认证,不需要全部考完。安排考证顺序的关键,是让每次备考都留下两项成果:一张能够说明学习经历的证书,以及一份能够展示实际能力的作品。

2501_93367079的博客 77

CentOS7-Elasticsearch8.15.3-Kibana8.15.3-安装部署笔记

Token 有效期只有 30 分钟,请保存好输出的 base64 字符串并尽快完成 Kibana 对接;本文整理自单机离线部署实践,适用于 CentOS 7 + Elasticsearch/Kibana 8.15.3 场景。只对新登录的会话生效,修改后需重新连接 SSH。结尾,其中包含 elastic 用户初始密码、HTTP 层证书等信息。等字段的集群 JSON 信息,即说明账号、HTTPS、证书均正常。安装成功后,终端会打印安全自动配置结果,以。按交互提示输入两次自定义密码。,保存后重启服务器生效。

遇见bug的博客 181

【一次 Elasticsearch 高基数聚合慢查询的定位与优化】

当Elasticsearch聚合查询首次执行慢、后续迅速恢复正常时,问题往往不在数据量本身,而在于全局词典构建开销。通过Profile分析发现,虽聚合耗时仅几十毫秒,但首次请求整体耗时达1秒以上,表明瓶颈在初始化阶段。结合keyword字段使用Doc Values的特性,可推断为首次访问时需加载全局词典(global ordinals),导致延迟。开启eager_global_ordinals可将词典预加载至内存,显著降低首次查询延迟,尤其适用于高基数聚合场景。此案例揭示了“首次慢、后续快”问题的典型根因及

大雪冬至的博客 310

Day2 - Flink DataStream API 与转换算子:从 Source 到 Sink

实现或@Override// 发射数据@Override// 使用用自定义逻辑聚合,比 sum/min/max 更灵活。// 求每个用户的总消费金额reduce 的输入和输出类型必须相同。Flink 会把满足条件的相邻算子合并成一个 Task,在同一个线程里执行,减少线程切换和网络开销。合并条件上下游并行度相同;分区策略是 Forward;没有被用户手动断开。

YEEMOLY的博客 201

机房温湿度传感器监控双协议方案:TCP与SNMP融合接入大数据平台

本文提出机房温湿度传感器双协议融合接入方案,通过ModbusTCP(测量面)与SNMP(管理面)协同,实现高频时序数据与设备资产、健康状态的精准采集。采集代理层完成协议归一、标签统一、源优先级合并与时钟对齐,输出统一数据模型,经Kafka流入InfluxDB时序库、CMDB、告警中心等大数据平台。方案解决单协议短板,提升数据质量与系统可扩展性,支撑实时监控、AI预测与运维自动化,实现“细得下来、管得起来”的智慧机房目标。

honsor的博客 59

如何在用户认证系统中使用 ElasticSearch 提升

本文介绍了如何在一个典型的企业级应用——用户认证与权限管理系统内引入并运用 ElasticSearch 技术来提高查找效率并降低数据库负载压力。读者可以通过了解其基础架构原理、正确配置方式以及典型应用场景从而掌握该工具的基本用法。如果你正在寻找一种更灵活高效的检索方案用于自己的项目当中,请考虑从以下几个方面入手实践: 1. 确认是否有必要引入新的全文搜索引擎;2. 设计好适用于该项目的数据模型以及索引规则;3. 持续优化你的 DSL 查询语句并监控运行状态;

wuchangjian的专栏 188

Flink SQL 窗口表值函数实战:滚动、滑动、累计与会话窗口

在 Flink SQL 中,流数据是无限的,要统计“最近一段时间”的数据,就必须把无界流切分成一个个有界窗口。Flink 1.13 之后引入了窗口表值函数(Window TVF),把窗口本身当作一张表来使用,通过TABLE(...)语法把原表转换成带窗口信息的表,再配合GROUP BY完成聚合。相比早期的语义统一:窗口是一张表,可以像普通表一样查询、过滤、关联。结果可读:窗口表会自动带上window_end三个字段,方便直接输出。性能更好:底层基于窗口聚合算子优化,支持切片共享等机制。

2401_83857914的博客 373

IM即时聊天场景中消息队列实现方案对比与选型实践

引言在当今互联网应用中,IM(即时通讯)系统是支撑用户交互的核心模块之一。无论是在社交类App、企业协作平台,还是在线客服系统中,高效、稳定的消息处理能力直接影响用户体验和系统吞吐能力。然而,IM系统在高并发、异步处理、消息持久化等方面面临诸多挑战,其中消息队列(Message Queue)的选型与实现尤为关键。本文将围绕一个典型IM场景,从算法与数据结构的视角出发,结合具体实现方案,深入分析多种消息队列机制在IM场景中的适用性,并给出选型建议。适合具有5年以上经验的工程师和技术负责人参考。

wuchangjian的专栏 241

Flink 知识大总结:从核心概念到生产实践

Flink 的知识体系可以概括为「一个核心、两大抽象、三层保障」:以流为核心,以 DataStream 和 Table/SQL 为两大编程抽象,以状态管理、Checkpoint 容错和端到端一致性为三层保障。掌握这些主干知识后,再结合具体业务场景深入调优,就能在生产环境中稳定发挥 Flink 的实时计算能力。

2401_83857914的博客 358

QGIS + PostGIS 完整实操流程

视图没有主键,图层属性 → 源 → 唯一标识字段,手动指定id字段。顶部菜单:图层 → 添加PostGIS图层 → New,填一样的参数。顶部菜单:数据库 → DB Manager(内置插件,不用额外装)优势:多人同时连同一个库编辑,不用来回传shp文件。连接成功后,点开连接,就能看到schema(默认。)下面所有空间表,直接拖拽到画布加载图层。

2501_92509118的博客 204
上一篇: 可观测领域的王者Dynatrace的故障定位体验
下一篇: 发布!乘云数字参编中国信通院《运维智能体(SRE AGENT)能力要求》正式发布 ![image.png](https://alidocs.oss-cn-zhangjiakou.aliyuncs
aiSRE工程狮
博客等级 码龄5年 423粉丝 92原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值