dbops 助力 GreatSQL MGR架构安装部署

open麒麟系统安装sql的经验和步骤 麒麟、QT、mysql-5.7.37,编译mysql驱动。 阅读详情

dbops 助力 GreatSQL MGR架构安装部署

在这里插入图片描述

在上一篇中讲到了如何使用 dbops 部署 GreatSQL 主从架构,这篇中将介绍如何使用 dbops 部署MGR架构。

  • dbops 助力 GreatSQL 单机架构安装部署
  • dbops 助力 GreatSQL 主从架构安装部署

部署 GreatSQL MGR 架构,还可启用 GreatSQL 的动态 VIP 功能,以及仲裁节点功能。

环境介绍

本次部署所使用的操作系统为麒麟 V10 系统,以下是系统的详细信息:

$ cat /etc/*release
Kylin Linux Advanced Server release V10 (Sword)
NAME="Kylin Linux Advanced Server"
VERSION="V10 (Sword)"
ID="kylin"
VERSION_ID="V10"
PRETTY_NAME="Kylin Linux Advanced Server V10 (Sword)"
ANSI_COLOR="0;31"
Kylin Linux Advanced Server release V10 (Sword)

$ uname -a
Linux gip 4.19.90-24.4.v2101.ky10.x86_64 #1 SMP Mon May 24 12:14:55 CST 2021 x86_64 x86_64 x86_64 GNU/Linux
  • 环境 Glibc 版本信息为
$ ldd --version
ldd (GNU libc) 2.28
  • 使用的 dbops 版本为
dbops.1.10.20250329 release

在此文章撰写时,芬达老师对 dbops 进行了更新,所以此篇采用新版本安装部署。

  • 使用的 GreatSQL 版本为
GreatSQL-8.0.32-27 minimal
  • 架构如下:

在这里插入图片描述

下载 dbops

从 gitee 下载最新版本 dbops

  • dbops:https://gitee.com/fanderchan/dbops/releases
$ cd /usr/local
$ wget https://gitee.com/fanderchan/dbops/releases/download/dbops.1.10.20250329/dbops.1.10.20250329-Linux-x86_64.tar.gz

下载完成后,对 dbops 进行解压:

$ tar -xvzf dbops.1.10.20250329-Linux-x86_64.tar.gz 

安装 Ansible

dbops 自带绿色版 Ansible,dbops 的核心依赖于 Ansible,执行此命令用于注册:

$ cd dbops/portable-ansible-v0.5.0-py3
$ sh setup_portable_ansible.sh
$ source ~/.bashrc

最后检查下 Ansible 是否安装成功:

$ ansible --version
ansible 2.10.5

自动下载 GreatSQL 安装包

dbops 默认会自动下载 GreatSQL 安装包,所以本篇采用自动下载方式。

在公共配置文件common_config.yml中可以看到,只要选择了 GreatSQL 版本后,默认自动下载安装包。

# 此处默认设置 true 会自动下载安装包
fcs_auto_download_mysql: true     # only support mysql. percona, greatsql pls download yourself first.

但由于 dbops 限制,只能下载 GreatSQL-8.0.32-27-Linux-glibc2.17-x86_64-minimal* 这个 Linux Generic 通用包。

minimal版本是对二进制文件执行strip操作,所以文件尺寸较小,功能上与正常版本一样

编辑配置清单

$ vim /usr/local/dbops/mysql_ansible/inventory/hosts.ini 

修改内容如下:

[dbops_mysql]
192.168.139.37 ansible_user=root ansible_ssh_pass="'****'"
192.168.139.38 ansible_user=root ansible_ssh_pass="'****'"
192.168.139.39 ansible_user=root ansible_ssh_pass="'****'"
# IP地址 ansible_user=root ansible_ssh_pass="'你的密码'"
[all:vars]
#ansible_python_interpreter=/usr/bin/python3

注意!密码需要单引号包围,修改时不要漏掉。

验证服务器的连通性:

$ cd /usr/local/dbops/mysql_ansible/playbooks
$ ansible all -m ping
192.168.139.37 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    },
    "changed": false,
    "ping": "pong"
}

配置公共参数文件

$ vim /usr/local/dbops/mysql_ansible/playbooks/common_config.yml

修改数据库版本以及端口:

## In most cases, just adjust these two parameters.
mysql_version: "8.0.32-27"
mysql_port: 3306

修改数据库类型为 “greatsql”:

## DB TYPE,suport mysql,percona,greatsql
db_type: greatsql

采用自动下载安装包,此处默认为 true ,不做修改即可

fcs_auto_download_mysql: true     # only support mysql. percona, greatsql pls download yourself first.

若有需要修改的,例如 my.cnf 配置文件,数据库初始密码、初始用户,都可在 common_config.yml 公共参数文件中修改。

修改 Playbook 参数

$ vim /usr/local/dbops/mysql_ansible/playbooks/vars/var_master_slave.yml

修改主从库IP以及主从复制账号可信网段:

# vars loading order: common_config -> this file
mysql_binlog_format: row
mysql_mgr_port: "{{ mysql_port * 10 + 1 }}"
sub_nets: 192.168.139.%
mysql_mgr_hosts:
  - '192.168.139.37'
  - '192.168.139.38'
  - '192.168.139.39'

# If you have installed MySQL instead of GreatSQL, the following parameters will have no effect.
greatsql_vip: 192.168.139.250
greatsql_net_work_interface: "ens3"
greatsql_netmask: "255.255.255.255"
greatsql_group_replication_arbitrator: true
greatsql_group_replication_arbitrator_hosts:
  - '192.168.139.39'
  • mysql_binlog_format:因为 MGR 架构,需要 binlog 为 row 格式,所以这里不能修改,为的是覆盖common_config.yml文件中的 binlog 格式。
  • mysql_mgr_port:mgr 的通讯端口,采用原本端口 * 10 + 1 设置。
  • sub_nets:可信网段、可信域、可信IP。
  • mysql_mgr_hosts:MGR 实例的 IP 地址列表,部署后会按照字符串列表第一个IP设置为 Primary 节点。
  • greatsql_vip:GreatSQL HA绑定的VIP地址,只有部署GreatSQL HA时才会生效。
  • greatsql_net_work_interface:GreatSQL HA绑定的VIP地址所在的网卡号,只有部署GreatSQL HA时才会生效
  • greatsql_netmask:GreatSQL HA绑定的VIP地址使用的netmask,一般使用"32"即可,无需修改,只有部署GreatSQL HA时才会生效
  • greatsql_group_replication_arbitrator:是否开启仲裁节点功能
  • greatsql_group_replication_arbitrator_hosts:GreatSQL 的仲裁节点列表。和 greatsql_group_replication_arbitrator 搭配使用,greatsql_group_replication_arbitrator 为 true 此参数才生效。

dbops 支持直接部署 GreatSQL 的 VIP 和仲裁节点功能特性,两个功能特性可详见 GreatSQL 用户手册:

  • MGR 内置动态VIP:https://greatsql.cn/docs/8.0.32-27/5-enhance/5-2-ha-mgr-vip.html
  • MGR 仲裁节点:https://greatsql.cn/docs/8.0.32-27/5-enhance/5-2-ha-mgr-arbitrator.html

执行 GreatSQL 安装

执行安装 GreatSQL MGR 架构

$ cd /usr/local/dbops/mysql_ansible/playbooks
$ ansible-playbook mgr.yml

等待一会儿会打印如下信息

    "msg": [
        "Hosts to be affected by Deploy MGR cluster using binary installation: 172.17.140.136, 172.17.138.215, 172.17.139.159",
        "DB type: mysql",
        "MySQL port: 3306",
        "MySQL version: 8.0.32-27",
        "Server specs: auto",
        "Roles to be executed: ../roles/pre_check_and_set, ../roles/mysql_server, ../roles/make_mgr",
        "mycnf_dir: /database/mysql/etc/3306",
        "datadir: /database/mysql/data/3306",
        "tmpdir: /database/mysql/tmp/3306",
        "binlog_dir: /database/mysql/log/binlog/3306",
        "relaylog_dir: /database/mysql/log/relaylog/3306",
        "redolog_dir: /database/mysql/log/redolog/3306",
        "socket_dir: /database/mysql/data/3306",
        "mysqlx_socket_dir: /database/mysql/data/3306"
    ]

可以看到上面的信息,安装时请确认无误后,输入 “confirm” 确认安装。如果想修改,可按 Ctrl+C 退出安装,再修改文件 common_config.yml稍等片刻,GreatSQL 就部署完成。

[Prompt user for confirmation]
This will perform Deploy MGR cluster using binary installation on the displayed hosts. Please type 'confirm' to continue or press Ctrl+C to cancel.:

部署 MGR 架构可能会等待久一些

登入 GreatSQL 检查

$ mysql -uadmin -h127.0.0.1 -P3306 -pDbops@8888 -e "select @@version"
+-----------+
| @@version |
+-----------+
| 8.0.32-27 |
+-----------+

若没有修改安装密码,初始为Dbops@8888,请用户在安装后自行修改默认密码。

也可以使用快速登录,db+设置的端口号:

$ su mysql
$ db3306
(gip:3306)admin@localhost-14:42:33 [(none)]>SELECT @@VERSION;
+-----------+
| @@VERSION |
+-----------+
| 8.0.32-27 |
+-----------+
1 row in set (0.00 sec)

检查下 MGR 情况:

-- PRIMARY 节点
(gip:3306)admin@localhost-14:41:39 [(none)]>SELECT * FROM performance_schema.replication_group_members;
+---------------------------+--------------------------------------+----------------+-------------+--------------+-------------+----------------+----------------------------+
| CHANNEL_NAME              | MEMBER_ID                            | MEMBER_HOST    | MEMBER_PORT | MEMBER_STATE | MEMBER_ROLE | MEMBER_VERSION | MEMBER_COMMUNICATION_STACK |
+---------------------------+--------------------------------------+----------------+-------------+--------------+-------------+----------------+----------------------------+
| group_replication_applier | 62855999-24cc-11f0-ae0a-00163e859dfb | 172.17.139.159 |        3306 | ONLINE       | ARBITRATOR  | 8.0.32         | XCom                       |
| group_replication_applier | 62987ed2-24cc-11f0-aa6d-00163e554220 | 172.17.138.215 |        3306 | ONLINE       | SECONDARY   | 8.0.32         | XCom                       |
| group_replication_applier | 62ab3b6d-24cc-11f0-a65a-00163e85a203 | 172.17.140.136 |        3306 | ONLINE       | PRIMARY     | 8.0.32         | XCom                       |
+---------------------------+--------------------------------------+----------------+-------------+--------------+-------------+----------------+----------------------------+
3 rows in set (0.00 sec)

-- SECONDARY 节点
(gip:3306)admin@localhost-15:41:50 [(none)]>SELECT * FROM performance_schema.replication_group_members;
+---------------------------+--------------------------------------+----------------+-------------+--------------+-------------+----------------+----------------------------+
| CHANNEL_NAME              | MEMBER_ID                            | MEMBER_HOST    | MEMBER_PORT | MEMBER_STATE | MEMBER_ROLE | MEMBER_VERSION | MEMBER_COMMUNICATION_STACK |
+---------------------------+--------------------------------------+----------------+-------------+--------------+-------------+----------------+----------------------------+
| group_replication_applier | 62855999-24cc-11f0-ae0a-00163e859dfb | 172.17.139.159 |        3306 | ONLINE       | ARBITRATOR  | 8.0.32         | XCom                       |
| group_replication_applier | 62987ed2-24cc-11f0-aa6d-00163e554220 | 172.17.138.215 |        3306 | ONLINE       | SECONDARY   | 8.0.32         | XCom                       |
| group_replication_applier | 62ab3b6d-24cc-11f0-a65a-00163e85a203 | 172.17.140.136 |        3306 | ONLINE       | PRIMARY     | 8.0.32         | XCom                       |
+---------------------------+--------------------------------------+----------------+-------------+--------------+-------------+----------------+----------------------------+
3 rows in set (0.01 sec)

-- ARBITRATOR 节点
(gip:3306)admin@localhost-15:40:26 [(none)]>SELECT * FROM performance_schema.replication_group_members;
+---------------------------+--------------------------------------+----------------+-------------+--------------+-------------+----------------+----------------------------+
| CHANNEL_NAME              | MEMBER_ID                            | MEMBER_HOST    | MEMBER_PORT | MEMBER_STATE | MEMBER_ROLE | MEMBER_VERSION | MEMBER_COMMUNICATION_STACK |
+---------------------------+--------------------------------------+----------------+-------------+--------------+-------------+----------------+----------------------------+
| group_replication_applier | 62855999-24cc-11f0-ae0a-00163e859dfb | 172.17.139.159 |        3306 | ONLINE       | ARBITRATOR  | 8.0.32         | XCom                       |
| group_replication_applier | 62987ed2-24cc-11f0-aa6d-00163e554220 | 172.17.138.215 |        3306 | ONLINE       | SECONDARY   | 8.0.32         | XCom                       |
| group_replication_applier | 62ab3b6d-24cc-11f0-a65a-00163e85a203 | 172.17.140.136 |        3306 | ONLINE       | PRIMARY     | 8.0.32         | XCom                       |
+---------------------------+--------------------------------------+----------------+-------------+--------------+-------------+----------------+----------------------------+
3 rows in set (0.05 sec)

检查 MGR 动态读写 VIP 功能

登入 PRIMARY 节点查看

(gip:3306)admin@localhost-15:43:38 [(none)]>SHOW GLOBAL VARIABLES LIKE "%vip%";
+---------------------------------------+------------------------------------------------------+
| Variable_name                         | Value                                                |
+---------------------------------------+------------------------------------------------------+
| greatdb_ha_enable_mgr_vip             | ON                                                   |
| greatdb_ha_force_change_mgr_vip       | OFF                                                  |
| greatdb_ha_mgr_read_vip_floating_type | TO_PRIMARY                                           |
| greatdb_ha_mgr_read_vip_ips           |                                                      |
| greatdb_ha_mgr_vip_broad              | 255.255.255.255                                      |
| greatdb_ha_mgr_vip_ip                 | 172.17.140.250                                       |
| greatdb_ha_mgr_vip_mask               | 255.255.255.255                                      |
| greatdb_ha_mgr_vip_nic                | ens3                                                 |
| greatdb_ha_vip_tope                   | 62ab3b6d-24cc-11f0-a65a-00163e85a203::172.17.140.250 |
+---------------------------------------+------------------------------------------------------+
9 rows in set 

使用 VIP 链接,查看是否链接 PRIMARY 节点

$ mysql -urepl -h172.17.140.250 -P3306 -pRepl@8888 

greatsql> SELECT uuid();
+--------------------------------------+
| uuid()                               |
+--------------------------------------+
| 8366c691-24cf-11f0-aa2b-00163e85a203 |
+--------------------------------------+
1 row in set (0.00 sec)

至此,麒麟系统下 GreatSQL MGR架构安装已顺利完成:D

GreatSQL安装篇 操作系统:CentOS7 CPU:X86_64架构 数据库:GreatSQL-8.0.32-26-Linux-glibc2.17-x86_64.tar.xz。 阅读详情

相关推荐

GreatSQL数据库8.0快速安装部署

本文介绍了GreatSQL数据库在Linux系统上的安装配置流程。主要内容包括:1)系统兼容性检查和环境准备;2)关闭SELinux和防火墙;3)安装依赖包;4)创建安装目录并上传安装包;5)解压和安装RPM包;6)配置数据目录权限;7)初始化数据库并获取临时密码;8)修改配置文件;9)启动服务并修改密码;10)创建远程访问用户。最后还说明了如何使用Navicat客户端连接数据库。整个流程详细说明了从安装到配置的完整步骤。

m0_61389590的博客 707

高级运维工程师手把手教你全网最详细麒麟V10服务器SP2版本离线安装MYSQL8.0数据库方法

国产操作系统麒麟V10SP2服务器版本安装MYSQL8.0教程国产化技术全网最详细

nasen512的博客 1万+

dbops:EaseBase数据库自动化运维平台

一、概述 Easebase 数据库自动化运维平台,基于python3.6+tornado+bootstrap开发 说明:该平台依赖dbapi平台接口服务,需要在部署后再部署dbapi服务。 功能: 1.1 用户管理、角色管理、功能管理、菜单管理、系统设置 1.2 数据源管理、服务器管理、数据库库管理、慢日志管理、数据库监控 1.3 数据库备份、数据库同步、数据库传输、数据库归档、大数据同步 1.4 工单管理、图片管理、端口管理 二、安装部署 2.1 安装python3环境 yum -y install python3 2.2 安装python3及依赖 pip3 install -r requirements.txt -i https://pypi.douban.com/simple 2.3 数据库连接配置 vi /config/confi

Kylin V10(麒麟)VNC Server配置

麒麟Linux服务器VNC服务配置摘要 本文介绍了在麒麟Linux高级服务器V10(Sword)系统上配置VNC服务的步骤。首先配置YUM源,关闭防火墙,然后安装图形化桌面环境和TigerVNC服务器。安装完成后设置VNC密码并启动服务。文中提供了详细的YUM源配置文件示例,以及安装过程中可能出现的警告提示信息,最后通过查看进程确认VNC服务已成功启动。整个配置过程适用于需要通过远程桌面访问麒麟Linux服务器的情况。

zhasir的专栏 1229

HackRF实战:用Portapack扩展板玩转GPS信号模拟(附固件刷写教程)

本文详细介绍了如何使用HackRF与Portapack扩展板进行GPS信号模拟,包括固件刷写、信号生成与发射配置等实战操作。通过专业工具和优化技巧,读者可以掌握软件无线电的高级应用,解决手机定位难题,同时强调安全合规使用的重要性。

weixin_28717431的博客 363

(UE5 5.2)HISM Mobile DrawInstance在渲染层的实现浅分析

在 (UE4 4.27) UHierarchicalInstancedStaticMesh(HISM)原理分析 这篇博客大致介绍HISM组件从游戏线程到渲染线程的重建KD-Tree和剔除并提交DrawCall逻辑,但是没有分析渲染层的大致数据结构和实现. 可以看出FHierarchicalStaticMeshSceneProxy 实际存储Instance数组数据来自于FInstancedStaticMeshSceneProxy FHierarchicalStaticMeshSceneProxy只是以FClu

qq_29523119的博客 2725

Linux服务器版安装VNC桌面远程连接

下载vnc客户端,新建连接,连接方式为IP:PORT方式,最后输入vnc的密码就可以连上了。1、查看系统版本(不同的系统查看命令不一样,此处为银河麒麟V10系统)5、重载systemctl配置,启动vnc服务。3、复制配置文件模板,并编辑配置文件。2、yum安装vnc-server。4、创建VNC登录密码。6、查看VNC服务端口。7、vnc客户端连接。

weixin_63125636的博客 916

Java8动态生成SFunction:基于字段名的Lambda表达式实践

本文深入探讨了在Java8中如何基于字段名动态生成SFunction,以解决MyBatis Plus的LambdaQueryWrapper在动态查询场景下的局限性。通过核心原理LambdaMetafactory的解析和手把手的代码实现,展示了如何将字符串字段名转换为类型安全的Lambda表达式,从而实现真正动态、类型安全的查询条件构建与通用数据处理,显著提升代码的灵活性与安全性。

sss66的博客 953

麒麟v10系统重启网卡命令

麒麟服务器网络服务默认使用的是NetworkManager而不是network。查看操作系统的描述文件为麒麟v10。

Nefertari___的博客 1万+

Chipyard------介绍与环境搭建

Chipyard是一个开源的、可扩展的、集成化的芯片设计平台,旨在帮助芯片设计人员快速、高效地开发自己的定制芯片。由伯克利大学架构研究小组开发,它基于Chisel语言和Scala编程语言,提供了一整套硬件设计工具和流程,包括RTL设计、验证、物理布局、仿真等,以及支持多种芯片体系结构的库和模块。

qq_38798111的博客 9479

全国排污许可证数据

from tkinter import * # 导入窗口控件 import tkinter.filedialog import requests from lxml import etree from tkinter import ttk from bs4 import BeautifulSoup import webbrowser # 调用浏览器打开网页 from tkinter import messagebox # 弹出提示框 from openpyxl import Workbook imp.

Newnotes的博客 3385

麒麟OS和龙芯环境编译安装GreatSQL

之前测试过GreatSQL安装,基本上和MySQL无差异,《GreatSQL配置到系统systemd服务》《GreatSQL单机环境安装》《国产数据库之-GreatSQL》但是测试用的操作系统都是CentOS,非xc,碰巧看到GreatSQL社区推了这篇文章《麒麟OS+龙芯环境编译GreatSQL》,在xc环境安装GreatSQL,借鉴一下。本次介绍如何在麒麟OS + 龙...

bisal的专栏 1201

Python白色飘雪(完整代码)

Python绘制白色飘雪动画的完整代码。

AIGC 3万+

国产系统:麒麟之人大金仓数据库部署

(7)如果这里出现可执行文件执行出错,说明选用的 cpu 对应的型号是错误的。我的 cpu 型号是鲲鹏系列的,因此重新下载并挂载了鲲鹏的镜像。(9)新开一个 shell 窗口执行命令,执行完成按 enter 退出安装程序即可。(10)到此服务已安装完成,查看服务状态。(6)按照如下过程进行配置和安装。(3)选择授权文件路径。(8)直至提示安装成功。

予挚之的博客 5081

livox雷达斜装修改

指的是,使用外部的陀螺仪的话,雷达到外部陀螺仪的转换,而mid360的陀螺仪是内置在360里面的,且方向和点云方向是一致的,所以不能通过修改此处去改变陀螺仪方向。同时livox_ros_driver2中的MID360_config.json里面的。这里面的外参,只能改变点云相对陀螺仪的位姿,而不能将陀螺仪映射到你期望的倾斜角度。fast_lio中的mid360.yaml中的外参。

z1872385的博客 2711

166、Sim2Real中的强化学习:域随机化与鲁棒策略

第二,训练时监控每个随机化维度对策略梯度的贡献,如果某个维度对loss的方差贡献极小,说明策略已经忽略它了,要么加大范围,要么删掉。第四,如果条件允许,用真实数据来校准随机化分布——采集真机上的传感器数据,拟合出参数分布,再把这个分布作为随机化的采样依据,这比拍脑袋定范围靠谱得多。动态随机化是很多人忽略的维度。域随机化的核心思想说白了就一句话:别去精确建模现实,而是把仿真环境本身变成一个随机分布的集合,让策略在“各种乱七八糟的物理参数”里都见过世面,这样到了真机上,不管现实落在哪个参数区间,策略都能兜住。

sundong_81的博客 27

如何快速安装GreatSQL:RPM包与源码编译两条路径全解析

**快速安装GreatSQL**其实并不复杂,只需要掌握两条核心路径即可:一条是适合绝大多数用户的 **RPM 包安装**,一条是适合有定制化需求的 **源码编译安装**。GreatSQL 是一款开源免费数据库,可在普通硬件上满足金融级应用场景,具备高可用、高性能、高兼容、高安全等特性,可作为 MySQL 或 Percona Server for MySQL 的理想可选替换。本文就以 GreatS

gitblog_00415的博客 376

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

KylinV10通过二进制码安装GREATSQL数据库

这个步骤的作用是加载 GreatSQL 自带的动态依赖库文件,这样在运行 mysql/mysqld 等二进制文件时可能需要用到,避免报错。一般修改 basedir/datadir/innodb_buffer_pool_size 等几个选项就可以,修改完后保存退出。(个别Kylin系统中默认的umask是0077,需要修改一下,否则新建的文件、目录权限控制太严格,可能导致启动异常:)查看错误日志/data/GreatSQL/error.log。5、创建/etc/my.cnf文件。

jishuji的博客 438

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

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

如何查看KylinOS银河麒麟操作系统版本?

企业实践 | 国产操作系统之光?银河麒麟KylinOS-V10(SP3)高级服务器操作系统基础安装篇。企业实践 | 如何在阿里云裸金属服务器上使用UEFI模式实践安装国产银河麒麟V10操作系统入门篇。

未来在这儿的专栏 107万+

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

高危工业场景人员定位系统设计:四类场景的架构选型与部署要点

本文由航飞光电一线工程团队整理,重点讨论高危工业场景下人员定位系统的架构选型思路。覆盖危化、矿山、港口、电力四类场景,拆解技术路线分工、融合引擎跨区切换实现,以及私有化/本地化部署中的工程难点,供架构师与技术负责人参考。

HF17513371855的博客 368

热管理系列之八:终局判断 - 浸没式冷却、混合架构与技术路线图

动力电池热管理三条路径的终局判断:液冷极致优化守住基盘,直冷在中高端渗透,浸没式冷却从概念到量产。附2026-2030技术路线图与关键产业信号分析。

weixin_54917114的博客 1155

【STM32】 ADC 完全指南:从模拟信号采样量化到五大架构原理

本文系统介绍ADC核心概念与五大主流架构。模拟信号具时间与幅值连续性,需经采样(满足奈奎斯特准则防混叠)、量化(引入±1/2LSB误差,SNR≈6.02N+1.76dB)、编码三步转为数字信号。重点解析Flash(并行高速但受限于比较器数量)、SAR(逐次逼近,低功耗适合MCU如STM32)、双积分(高精度抗工频,用于万用表)、流水线(高速吞吐)及Σ-Δ(高分辨率,靠过采样与噪声整形)五类架构原理、优缺点与应用场景。强调分辨率≠精度,选型本质是速度、精度、功耗与面积的权衡。

专注后端与底层技术,分享实战干货与学习笔记,梦想进入字节跳动,步履不停,热爱不止。 500

零信任架构实战:基于天远运营商三要素详版V即时版构建自动化线上授信身份核验网关

破解线上信贷身份核验痛点:从离散证件图片审查到运营商三要素详版数据穿透直连 在互联网消费金融、小额循环信用贷款以及各类纯线上数字化授信平台的业务演进过程中,移动端进件的身份真实性校验是构筑整体合规风控体系的第一道关键屏障。随着移动互联网的高度普及,个人信贷申请全面向移动端 App、微信小程序以及轻量级 Web 门户迁移,“秒级审批、免抵押、纯线上放款”成为了

2501_94041864的博客 161

AI高密度算力推动冷却架构升级,全球数据中心高功率CDU市场CAGR达23.0%

QYResearch调研显示,2025年全球数据中心高功率CDU市场规模大约为2.04亿美元,预计2032年将达到9.97亿美元,2026-2032期间年复合增长率(CAGR)为23.0%。未来几年,本行业具有很大不确定性,本文的2026-2032年的预测数据是基于过去几年的历史发展、行业专家观点、以及本文分析师观点,综合给出的预测。

QYR_11的博客 194

政务知识库AI架构选型:强合规约束下的架构决策与落地路径

政务知识库是典型的强合规导向场景,架构选型的第一原则是「合规一票否决」:安全优先级高于效果,可控性优先级高于体验,所有技术决策必须先通过等保、密评、信创、数据不出域四大硬性红线校验,再在此基础上优化检索准确率与用户体验。对应部署在互联网政务服务域、政务外网办公域、涉密内网核心域,三域物理隔离,数据仅能通过审批流程单向摆渡,禁止跨网调用模型与流转数据。• 放弃通用文档加载器,基于公文格式标准开发定制化结构化解析器,自动提取文号、标题、发文机关、成文日期、生效日期、密级、主题词等元数据,与分片内容绑定入库。

2401_89363342的博客 369

零信任架构实战:基于天远单人婚姻查询构建自动化智慧住房资格核验网关

破解公租房资格核查痛点:从传统纸质婚姻凭证抽检到权威民政数据穿透直连 在智慧城市公共租赁住房(公租房)、保障性租赁住房以及共有产权房等民生保障工程中,保障房资源的公平精准分配是住房保障管理中台的核心职责。按照现行住房保障准入政策,申请主体的家庭结构直接决定了配租资格准入与面积配给标准:单身家庭申请人通常享有特定的单人保障配额与独立的财产评估标准,要求申请人具

2501_94042197的博客 195
上一篇: GreatSQL连接数被打满的3种紧急解决方案
下一篇: 工具分享-从ibd文件中恢复数据的神器ibd2sql
GreatSQL社区
博客等级 码龄5年 1210粉丝 390原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值