Open-AutoGLM手机自动化实战(从入门到精通)

Open-AutoGLM:让普通手机秒变豆包手机 体验下来,这种Agent手机能够免除很多重复性的步骤,但有一点是很难达到的,那就是人的感受。以点外卖这个场景为例,我告诉他:“我想点一个猪肝炒饭”,它会智能打开外卖平台,搜索类目,选择距离近且评分高的店铺,点击品类,最终让人来确认支付。但是,如果我自己点外卖,我可能会在打开外卖平台的时候,看到新开的推荐店铺,亦或者在打开店铺的时候,看到了新品,然后就改变想法,想试试新品。这一点,AI很难做到,AI只是严格遵循用户的命令,不达目的不罢休。达到终点固然很好,但丧失了沿途的风景,这是否值得呢? 阅读详情

第一章:Open-AutoGLM手机自动化入门

Open-AutoGLM 是一款基于大语言模型驱动的手机自动化工具,能够通过自然语言指令控制安卓设备完成各类操作,如应用启动、文本输入、页面滑动等。其核心优势在于无需编写传统脚本,用户只需描述任务目标,系统即可自动生成可执行的操作序列。

环境准备

使用 Open-AutoGLM 前需确保以下条件满足:
  • 一台已开启开发者模式并启用 USB 调试的安卓手机
  • 通过 USB 数据线连接至运行主控程序的计算机
  • Python 3.8 或更高版本环境

快速开始示例

安装 Open-AutoGLM Python 包并启动基础会话:
# 安装依赖
pip install open-autoglm

# 启动自动化会话
from open_autoglm import AutoDevice

device = AutoDevice()  # 自动识别连接的设备
device.interact("打开设置,进入关于手机页面")  # 使用自然语言下发指令
上述代码将触发设备解析语义,并逐步执行“启动设置应用”和“滑动至关于手机”的操作链。

支持的操作类型

以下是常见支持的指令类别及其行为说明:
指令类型示例执行效果
应用控制“打开微信”启动指定应用
文本交互“在搜索框输入‘天气’”定位输入框并填充文本
导航操作“返回上一页”模拟返回键行为

工作流程图

graph TD A[用户输入自然语言指令] --> B{模型解析意图} B --> C[生成操作动作序列] C --> D[通过ADB执行设备操作] D --> E[反馈执行结果]

第二章:Open-AutoGLM核心控制原理

2.1 Open-AutoGLM的架构与通信机制

Open-AutoGLM采用分层式微服务架构,核心由推理引擎、任务调度器与分布式通信总线构成。各组件通过gRPC实现高效远程调用,并利用Protobuf进行数据序列化,保障低延迟与高吞吐。
通信协议配置示例
// 定义gRPC服务端点
service Inference {
  rpc Forward (TensorRequest) returns (TensorResponse);
}

message TensorRequest {
  repeated float data = 1;    // 输入张量数据
  string model_id = 2;        // 模型唯一标识
  int32 timeout_ms = 3;       // 请求超时时间(毫秒)
}
上述接口定义了推理请求的基本结构,其中model_id支持多模型动态路由,timeout_ms确保系统在高负载下仍具备响应可控性。
组件交互流程
发起方动作接收方
客户端提交推理请求API网关
API网关负载均衡转发推理节点
推理节点执行模型计算返回结果

2.2 手机设备连接与权限配置实战

在移动开发与自动化测试中,正确连接手机设备并配置相应权限是关键前提。本节以 Android 平台为例,介绍通过 ADB(Android Debug Bridge)建立物理或模拟器连接的具体流程。
启用开发者模式与USB调试
首先需在手机设置中连续点击“版本号”7次以开启“开发者选项”,随后进入该选项并启用“USB调试”。连接电脑后执行以下命令验证设备状态:
adb devices
若终端输出类似 XYZ123 device 的信息,则表示设备已成功识别。
常见权限配置
为确保应用可访问必要资源,需在 AndroidManifest.xml 中声明权限,例如:
  • android.permission.CAMERA:摄像头访问
  • android.permission.READ_EXTERNAL_STORAGE:读取存储文件
  • android.permission.ACCESS_FINE_LOCATION:精确定位
运行时还需通过代码动态请求敏感权限,避免应用崩溃或功能失效。

2.3 指令解析与动作映射理论详解

指令解析的基本流程
指令解析是将用户输入的自然语言或结构化命令转换为系统可识别的操作指令的过程。该过程通常包括词法分析、语法解析和语义映射三个阶段。通过构建抽象语法树(AST),系统能够准确识别指令中的主语、谓语和宾语,进而触发相应动作。
动作映射机制
动作映射负责将解析后的指令绑定到具体的执行函数。这一过程依赖于预定义的映射表,如下所示:
指令模式对应动作执行函数
开启服务 X启动服务start_service(x)
查询状态获取运行状态get_status()
代码实现示例

def parse_command(cmd):
    # 简单模式匹配示例
    if "开启" in cmd:
        service = cmd.split("开启")[1].strip()
        return "start", service
    elif "查询" in cmd:
        return "status", None
该函数通过关键词匹配提取指令意图与参数,返回的动作类型将被调度器转发至对应处理器。虽然此实现较为基础,但为更复杂的NLP驱动解析提供了扩展基础。

2.4 基于AI模型的操作决策流程实现

在自动化系统中,AI模型输出需转化为具体操作指令。该流程首先接收模型推理结果,结合业务上下文进行阈值判断与置信度评估。
决策逻辑处理
  • 解析模型输出的结构化数据
  • 根据预设策略匹配操作动作
  • 执行前进行安全校验与权限验证
代码示例:决策分支控制
func decideAction(confidence float64, label string) string {
    if confidence > 0.8 && label == "ANOMALY" {
        return "BLOCK"
    } else if confidence > 0.5 {
        return "MONITOR"
    }
    return "ALLOW"
}
上述函数依据置信度与标签决定操作动作为阻断、监控或放行,阈值设定支持动态配置,提升策略灵活性。
执行反馈闭环
感知 → 推理 → 决策 → 执行 → 反馈

2.5 控制延迟优化与稳定性调优实践

动态调整心跳间隔
在高并发场景下,固定的心跳机制易引发网络拥塞。通过引入动态心跳算法,根据连接质量自动调节发送频率:
// 动态心跳计算逻辑
func calculateHeartbeat(rtt time.Duration, failedCount int) time.Duration {
    base := 30 * time.Second
    if failedCount > 0 {
        return time.Max(base/2, 10*time.Second) // 失败时缩短至10秒
    }
    if rtt < 50*time.Millisecond {
        return base * 2 // 网络良好时延长至60秒
    }
    return base
}
该函数依据RTT和失败次数动态调整心跳周期,在保障连接活性的同时降低无效通信开销。
队列积压监控策略
为避免消息处理延迟累积,需对内部任务队列实施分级告警机制:
  • 当队列长度超过阈值的70%,触发一级预警并扩容消费者
  • 达到90%时强制启用降级模式,丢弃低优先级任务
  • 持续超限则自动重启异常实例,防止雪崩效应

第三章:自动化脚本编写与执行

3.1 使用自然语言生成控制指令

现代自动化系统越来越多地依赖自然语言理解技术,将人类可读的指令转化为机器可执行的命令。通过语义解析与意图识别,系统能够将“关闭服务器A的网络连接”这类语句映射为具体操作。
指令转换流程
  • 接收自然语言输入
  • 进行分词与词性标注
  • 提取关键动词与目标对象
  • 匹配预定义动作模板
代码示例:简单指令解析
def parse_command(text):
    if "关闭" in text and "网络" in text:
        return {"action": "disable_network", "target": extract_target(text)}
    elif "重启" in text:
        return {"action": "reboot", "target": extract_target(text)}
    return {"error": "未知指令"}
该函数通过关键词匹配判断用户意图。若文本中包含“关闭”和“网络”,则生成禁用网络的操作指令;若含“重启”,则触发重启动作。extract_target 需进一步分析主语或宾语实体。

3.2 脚本结构设计与可复用组件封装

在自动化脚本开发中,合理的结构设计是提升维护性与扩展性的关键。将通用逻辑抽象为可复用组件,能显著降低重复代码量。
模块化目录结构
推荐采用分层组织方式:
  • scripts/:主执行脚本入口
  • lib/:封装核心工具函数
  • config/:环境配置分离
  • tests/:单元测试覆盖
组件封装示例
#!/bin/bash
# lib/logger.sh - 日志组件
log_info() {
  echo "[$(date +'%Y-%m-%d %H:%M:%S')] INFO: $1"
}
log_error() {
  echo "[$(date +'%Y-%m-%d %H:%M:%S')] ERROR: $1" >&2
}
该日志组件统一输出格式,便于追踪执行流程,支持重定向错误流,提升调试效率。通过 source 引入即可在多脚本间复用。

3.3 多场景自动化任务实战演练

数据同步机制
在分布式系统中,定时同步数据库与缓存是常见需求。以下为基于 Cron 和 Go 实现的自动化任务示例:

// 每日凌晨2点执行数据同步
cronJob := cron.New()
cronJob.AddFunc("0 2 * * *", func() {
    log.Println("开始执行用户数据同步")
    SyncUserDataToCache(db, redisClient)
})
cronJob.Start()
该代码使用 cron 包设定定时任务,"0 2 * * *" 表示每天2:00触发。函数 SyncUserDataToCache 负责将 MySQL 中的用户数据刷新至 Redis 缓存,保障数据一致性。
任务调度策略对比
  • 定时触发:适用于周期性任务,如日志清理
  • 事件驱动:基于消息队列,响应实时性高
  • 混合模式:结合二者优势,提升系统灵活性

第四章:典型应用场景深度剖析

4.1 自动化测试中的点击与滑动手势模拟

在移动应用自动化测试中,手势操作是模拟用户交互的核心环节。点击与滑动作为最基础的手势,直接影响测试的真实性和覆盖率。
点击操作的实现
通过坐标定位或元素选择器触发点击事件,适用于按钮、菜单等控件。
driver.findElement(By.id("login_btn")).click();
该代码通过ID定位登录按钮并执行点击,逻辑清晰且稳定,适用于大多数静态界面。
滑动手势的参数控制
滑动需定义起点、终点、持续时间三个关键参数,常用于列表滚动或页面切换。
new TouchAction(driver)
    .press(PointOption.point(100, 500))
    .waitAction(WaitOptions.waitOptions(Duration.ofMillis(500)))
    .moveTo(PointOption.point(100, 100))
    .release()
    .perform();
上述代码模拟从屏幕底部向上滑动,实现刷新操作。其中 waitAction 确保动作连贯,避免系统响应延迟导致失败。
  • 点击:快速触发元素事件
  • 滑动:支持长距离交互与动态加载

4.2 智能识别与元素定位技术应用

在自动化测试与RPA领域,智能识别与元素定位是实现高精度操作的核心。传统基于XPath或CSS选择器的定位方式在动态页面中易失效,因此引入图像识别、OCR及AI模型辅助定位成为趋势。
多模态定位策略
现代框架融合多种技术提升鲁棒性:
  • DOM树分析结合属性匹配
  • 基于卷积神经网络的视觉定位
  • OCR文本识别用于按钮或标签抓取
代码示例:使用OpenCV进行图像定位
import cv2
import numpy as np

# 模板匹配定位UI元素
def locate_element(screen, template):
    result = cv2.matchTemplate(screen, template, cv2.TM_CCOEFF_NORMED)
    _, _, _, max_loc = cv2.minMaxRect(result)
    return max_loc  # 返回坐标
该方法通过模板匹配计算屏幕截图与目标元素图像的相似度,TM_CCOEFF_NORMED算法对光照变化具有较强适应性,适用于静态UI组件定位。
性能对比表
技术准确率响应时间
XPath85%200ms
图像识别93%500ms
混合模式97%350ms

4.3 批量操作与定时任务调度实现

在高并发系统中,批量操作能显著降低数据库连接开销。通过合并多个写入请求为单个批次,可提升吞吐量并减少事务竞争。
使用定时器触发批量处理
借助 Quartz 或 Go 的 time.Ticker 可实现周期性调度:

ticker := time.NewTicker(5 * time.Second)
go func() {
    for range ticker.C {
        ProcessBatch(queue.Drain()) // 每5秒处理一次积压任务
    }
}()
该机制每 5 秒触发一次队列清空操作,Drain() 原子性获取所有待处理项,避免数据遗漏。
批量插入性能对比
操作方式10,000 条耗时CPU 使用率
逐条插入28.4s92%
批量提交(batch=500)3.6s41%
批量提交将执行时间压缩至原来的 12.7%,同时显著降低系统负载。

4.4 跨App流程自动化协同控制

在现代企业级应用架构中,跨App流程自动化协同控制成为提升系统集成效率的关键环节。通过统一的调度中枢,多个独立应用程序可在业务逻辑层面实现无缝协作。
事件驱动的消息机制
采用消息队列实现松耦合通信,确保各应用间流程触发的实时性与可靠性:
// 发布流程触发事件
func publishEvent(appID, action string) {
    payload := map[string]string{
        "target_app": appID,   // 目标应用标识
        "operation":  action,  // 操作类型
        "timestamp":  time.Now().Format(time.RFC3339),
    }
    mq.Publish("workflow.trigger", payload)
}
该函数将操作指令封装为标准消息,发送至“workflow.trigger”主题,由订阅方异步处理,避免阻塞主流程。
协同控制策略对比
策略适用场景一致性保障
同步调用强依赖流程高
异步消息松耦合系统最终一致
分布式事务金融级操作最高

第五章:未来发展方向与生态展望

云原生与边缘计算的深度融合
随着物联网设备数量激增,边缘节点对实时性处理的需求推动了云原生架构向边缘延伸。Kubernetes 的轻量化版本 K3s 已广泛应用于边缘场景。例如,在智能工厂中,通过在边缘网关部署 K3s 集群,实现对 PLC 数据的低延迟采集与分析:
# 在边缘设备上快速部署 K3s
curl -sfL https://get.k3s.io | sh -
sudo systemctl enable k3s-agent
开源生态的协作创新模式
现代基础设施依赖于高度协同的开源项目群。CNCF 项目间的集成能力显著提升开发效率。以下为关键项目在生产环境中的典型组合:
功能领域代表项目集成方式
服务发现etcdKubernetes 原生存储后端
可观测性Prometheus + GrafanaSidecar 模式嵌入应用 Pod
AI 驱动的自动化运维实践
AIOps 正在重构传统监控体系。某金融企业采用 Prometheus 收集指标,并通过 LSTM 模型预测服务异常:
  • 每秒采集 50,000+ 时间序列指标
  • 使用 TensorFlow 训练周期性行为模型
  • 提前 8 分钟预警数据库连接池耗尽风险

数据流:Metrics → Feature Extraction → Model Inference → Alerting Engine

3小时部署Open-AutoGLM:基于AutoGLM大模型的手机自动化AI助手实战 在移动应用自动化领域,传统脚本依赖固定的UI元素标识,维护成本高且适应性差。其原理是通过模拟用户操作,实现重复任务的自动执行,技术价值在于提升效率与解放人力,广泛应用于自动化测试、数据采集和日常任务处理等场景。随着多模态大模型的发展,AI具备了理解屏幕视觉信息的能力,使得自动化操作不再依赖底层代码,而是通过“看”和“想”来规划步骤。本文聚焦的Open-AutoGLM项目,正是这一趋势的工程实践,它结合了AutoGLM视觉语言大模型和ADB工具,构建了一个能理解自然语言指令并操作手机的智能体。通过本教程,你可 阅读详情

相关推荐

基于视觉语言模型的手机自动化操作:Open-AutoGLM实战指南

UI自动化测试是提升软件质量和开发效率的关键技术,传统方法依赖代码定位元素,在界面频繁变更时维护成本高昂。其核心原理是通过脚本模拟用户操作,实现应用功能的自动验证。随着人工智能技术的发展,视觉语言模型为自动化领域带来了新的范式。这类模型能够直接理解屏幕的视觉信息,通过“看”和“点”的方式执行操作,显著提升了自动化的泛化能力和适应性。其技术价值在于降低了对应用内部结构的依赖,使自动化脚本更加健壮,并能处理更复杂的交互场景。Open-AutoGLM正是这一技术的实践项目,它结合了视觉语言模型与分层代理架构,支持

weixin_30500105的博客 543

3种方式自动化控制APP

自动化控制APP不管是在工作还是生活方面,都可以帮助我们高效地完成任务,节省时间和精力。本文主要介绍自动化控制APP的3种常用方式。

程序员半支烟,wechat:yclxiao 3096

UBUNTU使用RTL8811CU网卡(包含树莓派)

下载驱动 从绿联中下载:链接 下载解压后,chmod Linux文件夹 sudo chmod -R 777 ./Linux/ 修改系统的BOOT Secure为disable,参考链接:链接 sudo apt install mokutil sudo mokutil --disable-validation 重启电脑后,按照提示选择change secure boot state,并输入对应的字母(并不是全部密码,而是第几个),选择disable即可 进入Linux文件夹,运行命令 ..

Hot_Ant的博客 6246

python+Appium实现手机移动端自动化 - 模拟器 或 真机【有线】

python+Appium实现手机移动端自动化 - 模拟器 或 真机【有线】

qq_21689457的博客 7980

基于MicroBlaze与LWIP的FPGA以太网通信实战指南

本文详细介绍了基于MicroBlaze软核处理器与LWIP协议栈的FPGA以太网通信实现方案。通过Vivado工具链配置硬件设计,结合LWIP轻量级TCP/IP协议栈优化,提供高效、低成本的嵌入式网络解决方案,适用于工业控制等场景。文章包含硬件设计、软件配置及常见问题排查等实战指南。

weixin_29290863的博客 532

Appium手机Android自动化

APPium是一个开源测试自动化框架,适用于原生、混合或移动Web应用程序的自动化测试工具。 APPium使用WebDriver协议驱动iOS、Android等应用程序。

我的身体只需要很少的粮食就能养活;而我的灵魂却非常地贪婪,需要日月星辰、山川湖泊和大自然的滋养。 3521

基于Dijkstra算法的共享单车调度优化系统设计与实现

根据最新统计数据,全球共享单车市场规模已超过300亿美元,中国作为最大的共享单车市场,日订单量超过5000万次。Dijkstra算法由荷兰计算机科学家Edsger W. Dijkstra于1956年提出,用于解决带权有向图中的单源最短路径问题。本文详细介绍了基于Dijkstra算法的共享单车调度优化系统的设计与实现。本文将详细介绍基于Dijkstra算法的共享单车调度优化系统的设计与实现,采用Java 17、Spring Boot 3.x等最新技术栈。

2201_76125393的博客 618

教程分享:手机应用自动化

手机应用程序的自动化通常涉及使用专门设计的自动化框架和工具。

weixin_55102248的博客 1576

Dify 第 3 篇 Dify 入门示例 - 聊天助手

本文介绍了如何使用Dify平台快速搭建一个聊天助手。首先通过创建空白应用并选择"聊天助手"模板完成基础设置,然后安装配置通义千问等大语言模型(LLM)并设置API密钥。进阶部分演示了如何创建支持编程语言选择的代码解释器,包括添加提示词约束、插入变量、设置开场白等功能。最后展示了运行效果:用户可选择编程语言后输入代码,系统会给出相应解释。文章还提到应用支持发布共享,并附有Dify官方文档参考链接。

甘蓝的专栏 863

QT上位机开发(掌握一点c++基础)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 c++是c语言的补充和扩展,本身的语法构成也是在一直迭代中。相信很多同学上大学读书的时候,或多或少对c语言有所了解,对它的变量、指针、函数也应该不陌生。既然大家都有c语言基础的话,那么在这方面稍微拓展一下的话,就可以学会c++了。当然c++本身的内容很多,很多方面还很琐碎,但我们学习的时候还是应该把精力放在那些经常使用到的语法上面。

嵌入式-老费,一个分享专业嵌入式知识的blog 1131

一个完整的Appium手机自动化测试实例

实现过程:1.使用环境,appium 、安卓SDK 、python,本文重点是自动化实例,环境搭建过程省略。

软件测试小dao 1794

软考中级-软件设计师 23种设计模式(最详细解析!!)

软考中级-软件设计师 23种设计模式

片言可决讼,半纸能缚龙 2万+

Android 手机自动化测试工具有哪几种?

Android手机自动化测试工具

技术专家 3789

【100%通过率】2024华为OD机试真题E卷 C++语言 实现【流浪地球】

流浪地球计划在赤道上均匀部署了N个转向发动机,按位置顺序编号为0~N-1。 1) 初始状态下所有的发动机都是未启动状态; 2) 发动机起动的方式分为“手动启动”和“关联启动”两种方式; 3) 如果在时刻1一个发动机被启动,下一个时刻2与之相邻的两个发动机就会被“关联启动”; 4) 如果准备启动某个发动机时,它已经被启动了,则什么都不用做; 5) 发动机0与发动机N-1是相邻; 地球联合政府准备挑选某些发动机在某些时刻进行“手动启动”,当然最终所有的发动机都会被启动。 哪些发动机最晚被启动呢?

MISAYAONE的博客 4210

OV9734 DATASHEET,完整规格书

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

手机自动化操作:uiautomator

UiAutomator框架提供了一组API,可以与设备上的UI元素进行交互,并提供了丰富的功能来执行测试用例和获取测试结果。这样,通过一步步点击操作,你就能得到各个步骤的代码。就可以形成一个完整的自动化点击代码。然后执行python -m uiautomator2 init 安装包含httprpc服务的apk到手机+atx-agent, minicap, minitouch。在右边的coding界面可以看到对应的python连接代码。Uiautomator的原理是通过查找手机上的元素定位,然后点击。

1800

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

智谱Open-AutoGLM手机自动化实战(从零到精通的5个关键步骤)

掌握智谱Open-AutoGLM怎么控制自己的手机,实现自动化操作零门槛。适用于日常任务批量处理、智能提醒与应用联动场景,通过自然语言指令驱动设备控制,支持语音交互与流程自定义。安全稳定,提升效率,值得收藏。

InitFlow的博客 1030

VC中sqlite的使用

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

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

小白必看!Open-AutoGLM手机自动化实战入门指南

本文介绍了如何在星图GPU平台上自动化部署Open-AutoGLM – 智谱开源的手机端AI Agent框架镜像,实现自然语言驱动的安卓手机自动化操作。用户可通过语音或文本指令,让AI自动完成App启动、搜索、内容提取与跨平台发送等任务,典型应用于自媒体批量发稿、电商比价及远程助老等真实场景。

weixin_42298164的博客 554

Open-AutoGLM实战指南(手机操作自动化新纪元)

掌握Open-AutoGLM手机操作,开启自动化新体验。本文详解其在日常应用、批量任务与跨平台控制中的实战技巧,基于AI指令识别实现精准操控,提升效率数倍。无需复杂编程,轻松实现智能自动化,值得收藏。

AlgoFun的博客 831

一键部署PhoneAgent,Open-AutoGLM让手机自动化落地

本文介绍了基于星图GPU平台自动化部署Open-AutoGLM – 智谱开源的手机端AI Agent框架的完整流程。该平台支持一键部署与高效运行,适用于模型微调及AI应用开发,可实现自然语言指令驱动的手机自动化操作,如跨应用比价、社交媒体管理等典型场景。

weixin_42103128的博客 1066

零基础入门Open-AutoGLM,轻松实现手机自动化操作

本文介绍了如何在星图GPU平台上自动化部署Open-AutoGLM – 智谱开源的手机端AI Agent框架镜像,实现自然语言驱动的手机自动化操作。用户可快速配置并执行如‘打开小红书搜索并截图’等任务,广泛应用于信息获取、内容管理与跨APP流程自动化场景,显著提升移动端重复操作效率。

weixin_42515392的博客 825

如何让AI操作你的手机?Open-AutoGLM保姆级教程入门必看

本文介绍了如何在星图GPU平台上自动化部署智谱开源的手机端AI Agent框架——Open-AutoGLM镜像,并利用其Phone Agent功能实现AI操控手机。通过该平台,用户可快速搭建环境,让AI助手理解自然语言指令,自动完成如打开应用、搜索内容、关注博主等日常手机操作,实现智能自动化。

weixin_28746457的博客 866

Open-AutoGLM保姆级入门指南,手机自动化就这么简单

本文介绍了如何在星图GPU平台上自动化部署Open-AutoGLM – 智谱开源的手机端AI Agent框架镜像,实现自然语言驱动的手机自动化操作。用户可通过简单指令(如‘打开高德地图搜索南京夫子庙并截图’)完成界面理解、决策规划与ADB精准执行,典型应用于旅游攻略生成、跨App信息整合等移动场景。

weixin_31776191的博客 885

无需显卡!实战 Open-AutoGLM + 智谱 API:让 AI 替我玩手机

痛点:现在的语音助手(Siri, 小爱)只能做简单的系统指令,无法深入第三方 App(比如“帮我点一杯瑞幸拿铁”)。引入: Open-AutoGLM不是简单的脚本,而是基于视觉语言模型(VLM),像人眼一样看屏幕,像人手一样点击。本文目的:分享如何使用普通电脑 + 安卓手机,配合 智谱 BigModel API,低成本体验最新的 Phone Agent 技术。

KRADDDD的博客 2120

从入门到精通Open-AutoGLM,全面掌握手机智能操控核心技术

掌握高效智能的手机操控新方式,本文深入解析Open-AutoGLM手机操作技术,涵盖自动化脚本编写、场景识别与任务调度等核心方法,适用于日常应用管理、智能提醒与无障碍辅助。全面提升操作效率与使用体验,值得收藏。

LogicGap的博客 698

零基础实战Open-AutoGLM:用自然语言操控手机,一键自动化日常任务

本文介绍了如何在星图GPU平台上自动化部署Open-AutoGLM – 智谱开源的手机端AI Agent框架镜像,实现自然语言驱动的手机自动化操作。用户无需编码即可用语音或文字指令完成App启动、搜索、输入、截图等任务,典型应用于日常效率提升与跨App流程自动化。

weixin_35982453的博客 937
上一篇: 揭秘Open-AutoGLM在线部署难题:5步实现高性能模型上线
下一篇: 智谱Open-AutoGLM电脑性能实测:对比MacBook Pro,谁才是AI开发者的终极武器?
ByteGlow
博客等级 码龄1年 149粉丝 1998原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值