CentOS最佳替代——BC-Linux V8.2正式发布!

国产化操作系统改造实践 而这些广泛使用的系统都是美国控制范围之内,停服之后,我国将面临产品中断、安全漏洞、运维困难、生态缺失等问题。为降低非自主可控OS对网络安全及供应链的影响,国家及中移集团要求各单位要积极推进CentOS、RedHat及其衍生版本以及SUSE操作系统迁移,提前准备其他品牌非国产操作系统的迁移;目标系统采用基于国内开源社区欧拉社区和龙蜥社区发布的版本。1)上传商业版BCLinux 8.6或社区版Anolis 8.6 镜像到目标主机。2)部署配置FTP服务。 阅读详情
AI摘要

移动云推出BC-Linux V8.2,作为CentOS 8的替代品,提供双内核、内存优化、安全增强和热升级功能,与RHEL 8、CentOS 8兼容,支持KATA安全容器和自动化部署工具,旨在为企业提供高可用、高安全、高稳定的操作系统。

作者:中国移动云能力中心  ——  胡雯心

概要:移动云大云操作系统团队基于国内开源社区深度定制,推出了企业定制版操作系统BC-Linux V8.2版本

概述

2020年12月CentOS项目组宣布CentOS 8将于2021年12月31日结束支持,这意味着从2022年开始,使用CentOS 8的用户,将无法得到来自官方的新硬件支持、bug修复和安全补丁。针对这一情况,移动云大云操作系统团队基于国内开源社区深度定制,推出了企业定制版操作系统BC-Linux V8.2版本。

本次发布的BC-Linux V8.2是基于龙蜥社区Anolis OS 8.2版本深度定制的X86服务器通用版操作系统,与RHEL 8、CentOS 8软硬件生态100%兼容。BC-Linux V8.2版本搭载了双内核,分别为标准内核4.19和BEK(BigCloud Enterprise Kernel)内核5.10,支持TCP层跟踪功能、离线调度算法、KATA安全容器、OS迁移工具、自动化部署工具等,在系统的性能、稳定性和安全性方面都做了深度优化和特性增强,具有高可用、高安全、高稳定等商业发行版本特点,为用户提供高效、专业的技术支持和服务。

特色功能介绍

双内核技术

BC-Linux V8.2支持双内核技术,增加了BEK内核,BEK内核基于内核社区长期支持版本5.10进行定制化开发及增强,满足客户对于高版本内核的使用需求,同时支持默认内核4.19版本,满足多场景需求;

ML/LT内核

提供对ML内核(mainline)及LT内核(longterm)的支持,并定期维护更新。

功能增强及系统性能优化

  • 启动时间优化:完成内核启动时间深度优化,同环境下内核启动时间相比CentOS提升30%以上,系统启动时间相比CentOS提升10%以上;

  • 内存使用率优化,提升物理机可用内存大小7%;
  • 支持page owner特性,可用于定位内核内存泄漏和驱动使用大量内存等问题;
  • 完整支持cgroup v2,提供多种 IO 隔离方案,包括buffer IO 限流(cgroup writeback),blk-iocost 权重控制等,解决长期以来IO不能彻底隔离的难题;
  • 支持XDP(eXpress Data Path)高性能内核网络协议,绕开了传统TCP/IP内核协议栈,UDP性能提升1倍以上,近于DPDK等用户态网络方案的性能;
  • 支持随机化空闲列表,提高了直接映射内存侧缓存的性能和利用率;
  • 引入CPU离线调度算法框架,有效提升系统CPU利用率,支持离线在线业务混布;
  • 新增实现TCP层服务监控功能,支持内核态采集TCP服务状态,可用于定位网络问题发现性能瓶颈;
  • IO性能增强:根据fio测试结果,BC-Linux V8.2相比CentOS 8.2在随机写性能方面增强15%左右,顺序读性能增强4%左右;

  • 内存增强:根据ramspeed 和stream测试结果,BC-Linux V8.2内存综合性能较CentOS 8.2提升6%左右。

BC-Linux V8.2提供从CentOS 8系统到BC-Linux 8的迁移工具,帮助系统及应用的顺滑迁移,主要有以下优点:

  • 支持用户从CentOS 8平滑迁移到BC-Linux 8,业务不受影响;
  • 操作简单,执行单指令后工具自动化完成,无需人工干预;
  • 帮助客户解决CentOS 8停服的烦恼,实现系统平稳过渡。

BC-Linux V8.2版本采用多种安全增强的手段提升系统的安全性。

可信计算

BC-Linux V8.2将TPM2.0模块和ACM作为可信根,对服务器进行可信启动静态度量,实现从服务器上电到操作系统启动之间的信任链,使用IMA(完整性度量框架),实现对可执行文件进行运行时动态完整性度量。

安全加固

BC-Linux V8.2集成安全加固功能,为BC-Linux操作系统提供了安全加固、系统软件包漏洞检测、rootkit入侵检测等功能,提供系统安全基线的一键化配置、回退、生成检测报告,快速系统漏洞扫描、报告输出等操作。

双因子认证

BC-Linux V8.2集成双因子认证功能,采用基于时间、事件和密钥三变量而产生的一次性密码来代替传统的静态密码,实现更加安全的用户认证。

BC-Linux V8.2版本通过内核热升级、进程热升级技术,分别从内核级、进程级实现了单节点的不停服升级,实现了全栈热升级,业务零中断。

进程热升级

进程热升级可以在无需重启应用程序,即可进行重要安全更新,实现秒级在线热修复,有效提高业务的高可用性。同时适用于所有进程热升级,操作简单方便,可靠性高;可多次重入,支持可持续的版本迭代热升级;支持反向操作,随时可选择恢复原始状态。

内核热升级

内核热升级能够动态的修复操作系统内核和模块的缺陷函数,无需重启系统即可升级内核,最大程度减少了系统宕机时间;可快速应用重要的以及安全相关的内核补丁,缩短漏洞修复时间;支持回滚操作,可快速恢复至升级前状态;不会造成系统任何性能损失。

为了更好地保障BC-Linux系统订阅用户得到全方位商业化的服务(如软件包安装及升级服务,技术支持和维护等),并使这些服务可以被授权和跟踪。BC-Linux V8.2默认集成授权管理工具,增加了DNF的授权管理插件,操作系统需要向DNF服务器进行授权认证才可以进行软件升级。

BC-Linux V8.2支持新一代容器-KATA安全容器,完成了KATA安全容器性能优化,首次在移动云内网镜像源场景应用上线。同时针对docker-ce及其组件进行了增强,具体包括:

  • 完成了KATA安全容器性能优化,启动时间达到秒级,性能损耗不超过3%;
  • 安全性增强,修复了CVE-2019-14271、CVE-2020-13401、CVE-2021-30465;
  • 更新了containerd版本到1.5.2,提升稳定性和性能;
  • 修复了部分漏洞,提升docker容器的稳定性。

BC-Linux V8.2提供了自动化部署工具bclinuxManTool,该工具基于PXE技术实现了无人值守、同时批量、灵活配置地部署多台服务器操作系统的功能。工具通过web界面与用户交互,提供灵活、便捷的配置功能,实现了远程、快速部署服务器集群的能力,具有以下特点:

  • 支持同批次不同服务器,选择安装多种不同的Linux发行版镜像;
  • 支持根据服务器角色,选择多种操作系统预装应用软件集;
  • 支持灵活地预定义不同的磁盘分区,及各分区大小;
  • 支持灵活的定制化脚本,实现操作系统安装后的系统配置(包括主机名、IP地址,应用软件配置等)。

BC-Linux 8与BC-Linux 7系列主要区别

BC-Linux 8系列操作系统相对于BC-Linux 7系列带来了诸多改进,主要有以下几点:

名称

BC-Linux 8

BC-Linux 7

内核版本采用4.19-x版本内核,增加了诸如:5级内存页表、全面支持Cgroup V2、MD集群、内核early kdump等新功能采用3.10-x版本内核
软件包管理工具

DNF(YUMv4),相比YUM v3有以下优点:

  • 优化性能
  • 支持模块化内容
  • 设计良好的稳定 API,用于与工具集成
YUM v3
编程语言版本

Python 3

PHP 7.2

Ruby 2.5

Node.js 10

Python 2

PHP 5.4

Ruby 2.0.0

主要的软件仓库(Yum源)

BaseOS --提供操作系统功能的核心组件,为所有安装提供基础操作系统的基础。

AppStream --包括额外的用户空间应用程序、运行时语言和数据库来支持各种工作场景。

os -- 操作系统的基础软件仓库,包含大部分软件和工具

updates -- os里面更新的软件包

网络配置
  • 网络相关服务管理已经转移到NetworkManager不再是network;
  • 网络脚本已弃用,且不再默认提供,如果要使用可以安装“network-scripts”包;
  • 系统提供新的 ifup 和 ifdown命令行,后台通过nmcli工具调用NetworkManager;
  • dhcp默认使用使用NetworkManager的internal插件而不是dhclient
network和NetworkManager
时间同步协议chronyd,不再支持NTPchronyd与NTP都支持
TCP协议栈拥有4.19版本的TCP协议栈,可以提供更高的性能、更好的可伸缩性和更稳定的性能;此外还有两种新的TCP拥塞算法。3.10版本的TCP协议栈
网络数据包过滤(netfilter)

nftables相比iptables数据包过滤工具有以下改进:

  • 查找表而不是线性处理
  • IPv4 和 IPv6 使用同一个协议框架
  • 规则自动应用
  • 支持在规则集(nftrace)和监控追踪事件中调试和追踪
     
iptables

总结

此次BC-Linux V8.2版本发布,带来了诸多的改进,加入了新的特性与功能,提升了性能和稳定性,也是应对CentOS停止更新的举措之一。本次发布的x86_64版本镜像除了支持常见的x86服务器之外,还支持采用海光CPU、兆芯CPU的服务器以及大云磐石服务器。后续BC-Linux会继续与国内自主可控开源社区进行合作,持续推出Linux服务器操作系统,为移动云及各项目提供自主可控、安全稳定的统一操作系统技术底座。

 原文内容来自移动云公众号:https://mp.weixin.qq.com/s/ZZOg6CULFh4ACcFshzitZQ

版权声明 (原创):本文内容由移动云用户自发贡献,版权归原作者所有,移动云开发者社区不拥有其著作权,亦不承担相应法律责任。如果您发现本社区有涉嫌抄袭的内容,可填写举报信息,一经查实,本社区将立刻删除涉嫌侵权内容。

BCLinux-for-Euler配置本地yum源 之前使用的Centos7的系统,现在都要求统一换成BCLinux-for-Euler。说实话换了之后不太适应,好多用习惯了的命令都不好用了,比如最常用的刷新网络服务的那个命令service networking restart或者systemctl restart network,到了BCLinux-for-Euler之后要改成nmcli c reload或nmcli c reload [网卡名],与Centos8一致。 言归正传,配置一个本地yum的方法其实和我之前写过的一个配置Centos7本地源的过程 阅读详情

相关推荐

CentOS 6 下 FFmpeg 视频转码实战:老旧系统兼容部署指南

FFmpeg 是最主流的开源音视频处理工具,其核心能力在于基于编解码器(如 libx264、libmp3lame)实现跨格式转换与流处理。原理上依赖 GCC 工具链、glibc 运行时及静态/动态库链接机制,在低版本 Linux 系统中易因 ABI 不兼容、C++ 标准支持不足或缺失构建依赖而失败。技术价值体现在无需升级操作系统即可复用现有硬件,支撑教育录播、安防视频转码、工控媒资入库等关键场景。本文聚焦 CentOS 6 这一典型老旧环境,详解如何绕过 glibc 2.12 限制、规避 -std=c++1

weixin_30596735的博客 365

信创操作系统Linux(Bclinux、龙蜥、欧拉、Rocky、Alma)

linux

qyq88888的专栏 7万+

Regresshion漏洞本质:glibc 2.39+与OpenSSH信号竞态原理及防御

Regresshion(CVE-2024-6387)并非传统远程代码执行漏洞,而是一种由用户态信号处理逻辑退化引发的条件型竞态缺陷。其核心在于OpenSSH特权分离机制与glibc 2.39+中__pthread_kill_internal优化之间的时序冲突,导致SIGALRM触发下子进程栈损坏与内存重用。该漏洞不依赖堆溢出或类型混淆,而是利用信号投递、线程创建与资源清理间的微秒级窗口,具备高隐蔽性与低可检测性。技术价值体现在对Linux系统安全模型的深层挑战——它揭示了C库演进与上层服务兼容性之间被长期忽

weixin_34216107的博客 555

CentOS Linux的替代品(六)_BigCloud Enterprise Linux R8 U2 基础安装教程

BC-Linux借助中国移动应用产业链及上下游发展优势 ,开展常态化生态认证,全面兼容飞腾、鲲鹏、海光、龙芯、兆芯、申威6大国产芯片,与国内主流服务器、中间件、数据库、安全组件等厂商互认证,已完成百款软硬件产品的适配,可以应用于业务全场景,打造更安全、更广泛、更丰富的基础软件底座。

超哥的博客 3508

Linux Swap 分区 vs 文件性能对比:dd 与 fallocate 创建 1G 空间耗时实测

本文深入对比了Linux系统中使用dd与fallocate命令创建1G Swap空间的性能差异。实测数据显示,fallocate平均耗时仅0.002秒,比dd快约1000倍,且不受文件大小影响。文章还分析了两种方法的底层机制、文件系统兼容性及生产环境最佳实践,为系统管理员提供Swap配置的优化建议。

weixin_33910385的博客 451

Linux 中的 bc 命令:用于精度计算的利器

bc是一款用于计算的命令行工具,其名字代表"Basic Calculator"。它支持浮点数和高精度计算,可以执行各种数学运算,如加减乘除、指数运算、取模、求平方根等。bc命令的输入和输出方式类似于C语言,使用表达式进行计算,并将结果输出到标准输出。由于bc是一个单独的可执行文件,所以它可以在终端中直接使用,也可以在bash脚本中作为计算工具。

网络技术联盟站 1133

Linux系统启动原理及Shell编程

固件按配置的启动顺序搜索启动设备,读取磁盘主启动记录(MBR)中的引导加载器(CentOS 7 默认为 GRUB2),并将系统控制权移交 GRUB2。计算机接通电源后,系统固件(UEFI 或传统 BIOS)首先执行开机自检(POST),检测 CPU、内存、硬盘等核心硬件是否正常。双小括号 (()) 的作用是进行数值运算与数值比较,它的效率很高,用法灵活,是企业场景运维人员经常采用的运算操作符。作用:获取当前执行的 Shell 脚本的进程号(PID),这个变量不常用,了解即可。

Kismet_nvi的博客 418

逆向学习:从已上线微信小游戏反推Cocos工程结构(以切水果跑酷为例)

本文以“切水果跑酷”为例,详细介绍了如何通过逆向分析已上线的微信小游戏,反推其基于Cocos Creator的原始工程结构。文章深入拆解了编译后的目录骨架、资源加载逻辑与依赖关系,并重点解析了微信平台API的调用特征,为开发者提供了一种高效学习游戏架构与设计模式的实用方法。

kk1234的博客 1070

Linux 运维实战笔记(六):系统启动原理、SELinux 与 Shell 条件判断

应用程序 httpd 打标签A,提供/usr/share/nginx/html目录给客户端,/usr/share/nginx/html目录也打上标签A。双小括号 (()) 的作用是进行数值运算与数值比较,它的效率很高,用法灵活,是企业场景运维人员经常采用的运算操作符。作用:获取当前执行的 Shell 脚本的进程号(PID),这个变量不常用,了解即可。作用:获取执行上一个指令的执行状态返回值:0为成功,非零为失败,这个变量最常用。作用:获取在此之前执行的命令或脚本的最后一个参数,这个变量不常用,了解即可。

zx7854的博客 406

【UE5】三步搞定Pixel Streaming:从零搭建Windows像素流服务

本文详细介绍了如何在Windows平台上快速搭建UE5 Pixel Streaming像素流服务,从插件安装、项目打包到服务启动的全流程操作。通过实战案例和优化配置,帮助开发者实现零客户端配置、跨设备兼容的高性能3D应用流式传输,特别适合建筑可视化和实时协作场景。

weixin_29000991的博客 318

YOLOv5 自定义模型 Android 部署完整指南

本文详细介绍了将YOLOv5模型部署到Android设备的完整流程,包含三个核心部分:首先验证官方模型测试,确保基础环境配置正确;随后进行模型转换,从PyTorch导出ONNX格式并优化,再转换为NCNN格式;最后在Android项目中集成自定义模型,包括文件替换、参数修改和代码适配。教程基于YOLOv5 6.1版本,使用NCNN框架进行移动端推理,涵盖了常见问题解决方案和关键配置要点,为开发者提供了从训练到部署的完整技术路线。

FJN110的博客 591

Linux内核源码构建指南:从环境配置到性能优化

Linux内核作为操作系统的核心组件,其源码构建是系统开发与优化的关键技术。通过源码编译可以实现硬件驱动定制、性能参数调整和安全加固等深度优化。构建过程涉及工具链配置(如gcc版本控制)、依赖管理(如libssl-dev等开发库)以及并行编译等工程实践技巧。在金融交易系统、嵌入式设备等场景中,定制化内核能显著提升系统性能与稳定性。本文以Linux 6.x内核为例,详细解析从环境准备到编译安装的全流程,特别针对eBPF等新兴技术所需的BTF格式生成提供了解决方案。

weixin_30340819的博客 317

YOLO项目部署:从Python脚本到Docker容器的企业级交付全流程

YOLO模型企业级Docker部署方案 核心挑战 环境一致性:解决"本地能跑,服务器崩掉"问题 可扩展性:支持单实例到多实例扩展 稳定性:确保99.9%可用性 部署流程 项目改造:模块化代码,分离配置 Docker镜像:支持CPU/GPU环境 API服务:封装推理逻辑 监控告警:实现自动化运维 技术方案 需求 解决方案 环境一致性 Docker镜像+依赖冻结 可扩展性 K8s+负载均衡 稳定性 健康检查+自动重启 项目结构 模块化代码组织 外部化配置管理 精确依赖版本控制 摘要重点:通过

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1229

Linux 面试宝典

Linux 面试宝典 一、计算机基础部分 1.第一台计算机诞生的时间为:1946年。 2.冯诺依曼体系体系结构。 数字计算机的数制采用二进制,bit位,byte字节 1byte=8bit 计算机应该按照顺序执行 计算机硬件由运算器、控制器、存储器、输入设备和输出设备五大部分组成。 3.二进制和十进制转换。 二进制和十进制之间转换可根据下表操作。 2^0=1=1b 2^1=2=10b 2^2=4=100b 2^3=8=1000b 2^4=16=10000b 2^5=32=100000b 2^6=64=

weixin_44295725的博客 1759

YOLOv13涨点改进| CVPR 2026 |独家创新首发、主干改进篇 |利用RIS-PiDiNet主干让YOLOv13更加强大!适合遥感目标检测、小目标检测、旋转目标检测,变化检测,图像分割涨点

🔥本文提出了一种改进的RIS-PiDiNet主干网络,通过引入几何先验构建几何一致性检测器,显著提升了模型在任意方向、结构规则目标场景下的检测性能。包含两个核心模块:S-PDC利用极谐变换的谐波核建模目标结构对称性,RIS-PDC通过SO(2)群平均实现旋转不变性。网络采用基于RIS-block的主干结构并融合轻量级LBP特征,增强了细粒度结构表达能力。实验表明,该方法特别适用于遥感和复杂几何分布场景,能有效提升目标检测的鲁棒性和精度。文章还详细介绍了如何将RIS-PiDiNet集成到YOLOv13框架

Ai缝合怪、助力小伙伴高效发论文 89

基于YOLOv8的MVTec AD缺陷检测系统设计与实现

速度快,精度高;支持 anchor-free 架构;支持实例分割和图像分类;模块化代码,易于部署与改进;完美兼容 ONNX、TensorRT 等推理框架;官方支持多平台训练和推理(CPU/GPU)。YOLOv8 是工业视觉检测落地非常理想的选择。MVTec AD(Anomaly Detection)数据集包括15类工业对象,每个对象包括多个子类缺陷(例如 “scratch”, “crack”, “hole”)及正常图像。类别缺陷子类bottlecablecapsule。

YOLO 931

VMware Workstation 8虚拟机部署与优化实战指南

虚拟机技术通过硬件虚拟化实现多操作系统并行运行,其核心原理包括CPU指令集虚拟化(VT-x/AMD-V)和内存分页管理。在开发测试、生产环境模拟等场景中,VMware Workstation凭借稳定的快照功能和网络模式配置成为工程师首选工具。本文以VMware Workstation 8为例,详细解析Windows 7和CentOS 7虚拟机的专业部署方法,涵盖镜像校验、LVM分区设计等关键技术要点,并提供内存压缩、CPU亲和性设置等性能调优方案,特别针对老旧系统兼容性和存储性能提升给出实践验证的解决方案。

weixin_30587927的博客 370

如何用matlab扫频法测考虑频率耦合的并网逆变器的序阻抗,如何实现?

🏆本文收录于 《全栈Bug调优(实战版)》 专栏,该专栏专注于分享我在真实项目开发中遇到的各类疑难Bug及其深层成因,并系统提供高效、可复现的解决思路和实操方案。无论你是刚入行的新手开发者,还是拥有多年项目经验的资深工程师,本专栏都将为你提供一条系统化、高质量的问题排查与优化路径,助力你加速成长,攻克技术壁垒,迈向技术价值最大化与职业发展的更高峰🚀!

**My Coding Family** 1192

CentOS 7部署Ollama实战:Docker容器化兼容方案

Ollama作为轻量级本地大模型运行时,依赖glibc ≥ 2.31及现代内核特性,而CentOS 7默认glibc 2.17与Linux 3.10内核构成ABI代际断层,导致直接安装失败。其核心原理在于用户空间与内核接口的二进制不兼容,而非单纯版本差异。技术价值体现在通过Docker容器提供完整、隔离的Ubuntu 22.04运行环境(含glibc 2.35),绕过宿主系统限制,实现LLM推理能力在老旧基础设施上的工程复用。典型应用场景包括离线RAG知识库、边缘车间质检、高校实验室旧服务器AI赋能等对稳定

weixin_33600816的博客 284

不会精准对比前人研究写“讨论与对比”段落?教你用ChatGPT辅助,直接让这部分提升一个档次(附提示词指令)

一个我觉得很有效的做法是,选取几篇具有代表性的文献,从研究方法、变量设置或结论方面进行对照分析,并指出本研究在哪些方面进行了补充或修正。除了简单说“提出了新的方法”或“首次应用某模型”,更需要说明这一做法在结果解读、研究设计或理论拓展上的具体意义,最好能够与现有研究进行比较,形成明确的差异化描述。段落应包含:研究结果解释、与前人研究对比、研究贡献、局限性反思,并在结尾提出未来研究的可能方向。讨论与对比部分一般位于文献综述、研究讨论或结果分析的后面,目的是对比已有研究,突出自己研究的价值与新意。

智能AI让学术科研更容易 169

深度学习工具包 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")

SSH远程连接替代PuTTY的10大现代终端工具选型指南

SSH远程连接是开发者与服务器交互的基础能力,其本质是安全、可靠、可编程的加密通道协议;现代终端工具已从单纯模拟TTY演进为集成密钥管理、IDE协同、审计日志和工作流自动化的开发基础设施组件;技术价值体现在消除PuTTY式配置黑盒、支持ED25519等强算法、原生兼容OpenSSH配置与ssh-agent、实现Ctrl+Shift+V等符合直觉的操作体验;典型应用场景包括VS Code远程开发、Kubernetes集群运维、CI/CD凭证注入及金融级会话录制审计;本文聚焦真实工程约束下的十大替代方案,覆盖开

weixin_34198762的博客 386

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

KubeEdge v1.5.0 版本深度解析:Mapper 架构重构、云边 Exec 隧道与 keadm 边缘排障命令

KubeEdge v1.5.0 是 CNCF 云原生边缘计算框架 KubeEdge 在设备接入与云端调试能力上的一个关键里程碑:它重构了 Device Mapper 参考架构、提供基于新标准的 Go 版 Modbus Mapper,打通了从云端 `kubectl exec` 直达边缘 Pod 的数据隧道,并新增了整套 `keadm debug` 边缘节点排障命令。本文以仓库中的 [CHANGELO

gitblog_00058的博客 168

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

实用指南:Linux硬件监控工具lm-sensors的完整安装与配置

lm-sensors是Linux系统上最实用的硬件监控工具之一,能够实时监测CPU温度、风扇转速、电压等关键硬件参数。对于系统管理员和技术爱好者来说,掌握lm-sensors的安装与配置技巧,可以让你轻松监控服务器和桌面电脑的健康状态,预防硬件故障。 ## 快速开始:lm-sensors安装与基础使用 ### 系统要求与安装准备 在开始之前,请确保你的Linux系统满足以下要求: - **

gitblog_00123的博客 492

Linux基础指令:从零开始掌握命令行(合集)

每一行命令的执行,都是对确定性的一次祈祷。今天聊 Linux 基础指令。

kiracrimson的博客 354

MBPFan终极指南:轻松掌控你的MacBook风扇转速

还在为MacBook在Linux系统下风扇噪音大、散热效果差而烦恼吗?MBPFan正是你需要的解决方案!这款专门为Linux系统上的MacBook设计的智能风扇控制守护程序,能够根据处理器温度智能调节风扇转速,让你的设备保持最佳运行状态,同时减少不必要的噪音干扰。 ## 为什么MacBook在Linux上需要风扇控制? 当你在MacBook上运行Linux系统时,可能会发现风扇控制不如macO

gitblog_00197的博客 523

WSL2+Windows 11 GPU加速配置指南:驱动、CUDA与内核四维校准

CUDA是NVIDIA提供的并行计算平台,广泛用于深度学习与高性能计算;WSL2则是Windows 11内置的轻量级Linux子系统,支持GPU加速但需严格版本协同。其技术原理在于:Windows宿主驱动通过WSLg GPU加速层透传API,WSL2内核模块将其翻译为Linux ABI,形成跨虚拟化栈的算力通道。这一机制带来显著技术价值——无需双系统即可在Windows生态中运行PyTorch/TensorFlow等AI框架,兼顾开发便利性与GPU性能。典型应用场景包括本地模型微调、算法原型验证及教学实验环

weixin_33901641的博客 351
上一篇: 漫谈软件架构设计系列(一):可用性设计
下一篇: 最佳实践 | 如何从CentOS快速迁移至BC-Linux?
云开发者联盟
博客等级 码龄5年 546粉丝 93原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值